Hi crypto lovers!
As member of teams running ICO, I always face troubles for verification of subscribers and this is a really hard and long work to process verifications.
I would like to create this thread to share best practies and some tools to help running a serious airdrop, driven by ideas of community, this post can be updated with all good ideas in answers.
Nobody wants to issue airdrop to cheaters who create multiple registrations with many different accounts, wallet address or even stolen identities but unfortunalety, this happens very often.
Airdrop registrationMost popular is to use a Google form, very easy to create and to manage verifications.
List of best practices
- Activate spreadsheet to manage answers
- In settings
- Enable
Collect email addresses - Enable
Limit to 1 response to force people being connected to their account to fill the form
- Disable
Edit after submit to avoid people change their informations if ever you ban them.
- Design of the form
- Remind airdrop rules in the 1st section of the form
- Remind people to be careful about their answers to avoid being disqualified
- Create multiple sections
- with a few questions relative to project, that will go to next section only if answer is right
- create a section in the end with message like 'sorry you can't register for this airdrop' where will be redirected all wrong answers
- make the first answer a wrong one to avoid automated answers (yes, it exists very much)
- add an anti spam question in the end like 'how much are three plus two?'
- Close answers once you reached the goal (maximum participants or time limit)
- Once you want to process check
- Identify duplicates you want to disqualify
- Disqualify wrong answers to questions (yes, some people still submit even if you told them they can't register
- Disqualify wrong answers to anti spam
Bitcointalk forum user checkMany airdrops ask people to fill their wallet address in location, it seems a good way to avoid spammers to use a real account.
Script to automate profiles check would be welcome.Twitter checksTwitter API is very restrictive to extract lists with more than 100 results.
All ideas are welcome to extract- A list of Twitter followers for your account
- A list of retweets from one Twitter post
Telegram checksTelegram users of a group can be extracted with a python script - script coming soon.
A very common problem is that people don't have a username in their profile.
Any idea to solve this problem for checking is welcome.Ethereum tokensThis section doesn't indend to give best practices for creating an Ethereum contract but only the ones to make airdrop more simple
- The airdrop function should take an array with a list of addresses to be able to drop to multiple addresses (max 100 recomanded) in a single transaction
function drop(address[] receivers, uint256 [] amount)- Add a
Transfer event every time you drop tokens to a single address, this displays correctly tokens to recipent address and more, this will allow you to retrive all token drops later
- Reduce gas price as much as you can. Most of time, a gas price of 0.1 gwei will allow to process the transaction within few minutes in a 'calm' time window.
Etherscan API is pretty simple to use and allows to retrive transactions and token dropped :
https://etherscan.io/apisA script to automate extraction would be welcome.-
Get a list of 'Normal' Transactions By Address will extract all transactions from the token contract -
https://etherscan.io/apis#accounts -
&address= your contract address
-
Even log will allow to extract every single token transfer
-
&address= your contract address
-
&topic0= your transfer log value
-
&topic0_1_opr=and -
&topic1= token sender address, most common is your contract address
This post will be updated constantly with good ideas in answers. Let's make together quality airdrops!