Problem: I'm working with two programmers to launch a 4444 NFT avatar collection. My main focus is fair distribution. There will be more than 1K wallets with varying number of claims, some will have 1 some will have 3 claims...

I'm looking for some direction to solve that problem within our contract. Doing it on UI is easier but it doesn't stop people minting from the contract. I'd appreciate any help.

What we tried:

  1. Loops, large arrays, reading json files from the contract, ChainLink VRF (for a different distribution strategy); but most of these don't work in blockchain and Chainlink is too expensive for something we're giving for free.

  2. We tried creating 4444 ERC20 tokens and distributing those first, then burning them when users interact with our ERC721 contract. That works well but many people will need to claim these ERC20 tokens and we have the claim-quota problem there as well. That requires another web application.

  3. We found an app that was developed for an Ethereum hackaton, Iroiro, it works like a charm for distributing ERC20 tokens to wallet addresses like we need. But when we go to the site it says "beta version, use at your own risk". That's not something we can work with. I tried reaching to the developer but didn't hear back from him.

Question: Are there any other practical ways to solve this problem within our contract? (I'm not a programmer, these were all I could come up with.)

If not, is there a legit ERC20 claiming platform (like Iroiro) that is known and widely used for claiming tokens per wallet addresses? I see a lot of auction platforms like Copper, but not like Iroiro.

Thank you!

3 Answers 3


You can use a merkle airdrop for it. Here is a starter kit which also includes links to other services which might help you do it.


Please specifically say which problems you are trying to solve. Fair randomization? Bot protection? Gas wars?

I wrote https://github.com/AreaWorld/ethereum-contracts which solves many of these problems and is permissively licensed.

I also host a public Community Service Hour to take questions live from the public on Twitch and walk through this contract and other NFT/Web3 topics // https://twitter.com/fulldecent/status/1475851800322453504

  • "Fair randomization? Bot protection? Gas wars?" All of these. For fair randomization I'll distribute the NFTs first, then generate the images and metadata on a live YT video. I will mint that video as an NFT for evidence, then upload the meta to IPFS. Once all these steps are completed, I'll update the BaseURI with a contract call and publish that without waiting for OpenSea to catch up. This chain of events will show that neither we nor anyone else could cheat. Dec 31, 2021 at 12:17
  • For bot protection we will have the list of wallets beforehand. If we can check the wallets during minting effectively, bots can't get around it; thus the ERC20 token distribution idea. For gas wars we will give people at least 1-2 weeks to claim their NFTs. There will be no rush, gas peaks or unnecessary congestion to the network. Thank you for the resources, I'll go through them and see if I can find other ideas. Dec 31, 2021 at 12:18

We have finally completed our "fair distribution" model and wrote an article on the whole progress. If anyone's interested in our journey, they can read the article here: https://cryptotems.medium.com/solidity-gas-a-design-for-a-fair-distribution-model-7fa45e6f282 Critique and suggestions are welcome as we will go live on Fab.16th and still have some time to work out the details.

  • 2
    Link only answers are discouraged. It is better to include the important details in the question and use the link to expand them.
    – Ismael
    Feb 6, 2022 at 2:33
  • Sure thing. I will next time, sorry about that. Feb 7, 2022 at 18:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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