---
# System prepended metadata

title: Gitcoin - Algorand Random AirDrop

---

# Gitcoin - Algorand Random AirDrop

### Hackathon: Algorand Greenhouse Hack 2
#### [Project: Create An Application Using Randomness](https://gitcoin.co/issue/29366)


[Project Profile](https://gitcoin.co/hackathon/greenhouse/projects/16871/algorand-random-airdrop)
[Github Repo](https://github.com/jpswelch/algorand-nft-airdrop)

### Purpose

One of the greatest promotional tools for NFT projects is an Airdrop.  Airdrops can generate interest and awareness for new projects, as well as provide additional value and utility to existing holders. 

Creators have been able to build and foster very passionate communities revolving around NFT collections, and airdrops are a huge part of the reason why. They are an inexpensive and fairly simple alternative to traditional marketing practices.

On Ethereum for instance, anyone can send anyone a NFT or other asset without permission. This makes the airdropping process incredibly simple, but it also leaves the door open for scammers and attackers. 

However on Algorand, traditional NFT airdrops are not possible. Only Accounts who have explicity chosen to recieve an NFT, by opting in, can be sent that NFT. 

While this improves security, it also adds a couple more steps to the process. Particularly if a creator wants to run a randomized contest. 

Random giveaways are a hugely powerful promotional tool as well. 

Our app, Algorand AirDrop, is designed to facilitate and combine the airdropping and randomization process for both the creators and the supporters.


### Workflow

When you arrive to the site you'll be able to connect your Algorand wallet. Then choose to be an NFT creator or an NFT receiver. 

If you are an NFT creator you'll be able to do the following:
a) mint an NFT
b) pick a random person that has opted in to receive an NFT.
c) send your NFT a random person 

If you are a nft receiver, you'll be able to the following:
a) see list of available NFTs that's being awarded.
b) opt in to recive an NFT
c) receive an NFT if you were randomly selected as a winner

```json
[
    {
    sender: 'ASDMAD0232MOD01',
    nft: 'WEMOWESOXKMO1309XMLZ130XMEB',
    donated: false
    }
    ...
]
```
#### Key Points

- using algorand's VRF to randomly pick a NFT owner 
- algorand's difference with etherum
- for the first draft of the site we used algosigner wallet for transactions.


### Algorand References:
[Algo Builder](https://algobuilder.dev/)
[Developer Portal](https://developer.algorand.org/)
[Discord](https://discord.gg/5KYhhs26HE)
[Twitter](https://twitter.com/devgreenhouse)
[Developer Greenhouse](https://www.algorand.foundation/developer-greenhouse)
[Upcoming Events](https://www.algorand.foundation/events)
[Randomness on Algorand - Blog Post](https://developer.algorand.org/articles/randomness-on-algorand/)
[Testnet AlgoExplorer](https://testnet.algoexplorer.io/)
[AlgoExplorer](https://algoexplorer.io/)
[Testnet GoalSeeker PureStake](https://goalseeker.purestake.io/algorand/testnet/)
[IPFS](https://gateway.ipfs.io/ipfs/QmRUPDtbBgwxs5NhLkUNZLTNzTtpKLSjx61tbJjvcFaQXL/)


### Wallets:
[MyAlgo](https://myalgo.com/)  
[Pera](https://perawallet.app/)  
[AlgoSigner](https://chrome.google.com/webstore/detail/algosigner/kmmolakhbgdlpkjkcjkebenjheonagdm?hl=en-US)  

### Helpful
[How to Polyfill Node Core Modules in WebPack 5](https://www.alchemy.com/blog/how-to-polyfill-node-core-modules-in-webpack-5)


