If I'm developing a project on EOS that will require a new custom token I might want to do an airdrop of that token to existing EOS holders.

Are there best practices on how to go about that?

Roughly the steps to do this are:

  1. Iterate over all EOS addresses
  2. Log the amount of EOS on that address
  3. Finalize that snapshot
  4. Iterate over each address in the snapshot and issue new tokens

Questions include:

  • What would one normally use to iterate over all EOS addresses? Code examples maybe?
  • How do know which EOS addresses exist and have tokens?
  • Can the snapshot be stored locally in a text file or should it be decentralized stored in a smart contract indexed table of some sorts?
  • Best practices for the permissions of issuing new tokens? Could it be okay to have one person owning the private key to be able to issue just for the snapshot? Or are there better decentralized best practices?
  • How would users best ensure that the owner of the token didn't cheat and issue themselves additional tokens across a bunch of new accounts?

Any answers to even some of these questions would be greatly appreciated. I hope this question can be the central resources for people that are looking to develop a new token and run an airdrop.

How would users best ensure that the owner of the token didn't cheat and issue themselves additional tokens across a bunch of new accounts?

This isn't really an issue, it's assumed by all involved in an airdrop that the creator isn't doing this out of benevolence. They need not cheat the system with a 'bunch of new accounts', that's a lot of unnecessary work and these things are best expressed openly or users might be suspicious of a hidden agenda.

Typically these things follow the following pattern:

  • New Coin has 1,000,000 tokens - Important to state the total amount openly, the following points will only be clear if the total is known.
  • Airdropping x% to the community
  • Keeping y% for future funding and development
  • z% reserved for the founders
  • Sometimes even i% is reserved for investors to purchase like an ICO

X, y & z in this example can be any values and the airdropped amount to users typically also have qualifiers such as "must own at least 100EOS".

You can see with the modal above there's no need for the creator to create fake accounts, they can simply allocate a large percentage of the new tokens to themselves openly.

You didn't mention this but it's also wise to plan out the ratio of your coins you will provide to the community with regards to EOS (EOS:YOURCOIN). The ratio need not be 1:1, it can be far more or less, this will depend on your total amount of tokens and the percentage you allocate to the airdrop.

Finally, something I've seen with some bitcoin hard forks (very similar concept to an airdrop) is the creators of the new coin will drop 1:1 without changing to total amount of coins (which would leave them with nothing reserved for them) but instead reallocate the genesis wallet's funds for themselves. That is to say, Satoshi's wallet (creator of BTC), which contains a significant amount of BTC is not a recipient of the airdrop, instead his 1:1 ratio is funnelled to the creators of the new coin instead.

While this raises some moral questions, it's also an interesting solution to maximize the amount distributed to the community. With regards to BTC, Satoshi's wallet has been inactive for years - and is potentially locked forever. In regards to EOS, this would mean reallocating funds away from block.one who holds 10% of all EOS. This may or may not cause controversy in the community but it's another way of handling an airdrop that I thought should be mentioned.

What would one normally use to iterate over all EOS addresses? Code examples maybe?

How do know which EOS addresses exist and have tokens?

Normally, you would download the ledger and store the accounts in a database, but you can also use https://www.eossnapshots.io/

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.