Creators in the web3 space are more empowered than ever. One point of friction that still exists though is sending out airdrops on Ethereum. It's not something that was commonly done due to the extreme costs, but with open editions becoming popular and gas prices feeling reasonable, it's coming up more often.
This post is the counterpart to our Tezos airdrops article.
Option 1 - Use Manifold
The easiest solution is to use Manifold's options for airdropping at the time of token creation. You'll be creating a new token for this, so if you're unfamiliar with the process we've broken it down for you in our earlier Manifold guide (the guide goes over music uploads, but it's interchangable with just artworks too).
Once you've got a token prepared to mint, we can select the mint button. The process is the same on testnet and mainnet. The next thing it will ask us is to choose the recipients of the tokens being created.
We have to use the Airdrop option here, because if you send the copies to yourself, you won't be able to airdrop those without using a third party tool since there is no built in function to send editions of an NFT out to different wallet addresses.
We want to use Manifold to send these out so select Airdrop.
You can add the addresses one by one, but if you've got a .CSV file that contains a list of the addresses, you can upload that instead. Manifold lets you download a CSV of the wallets that have collected NFTs from you on your collectors page. Once you're satisfied with your list, you can hit the Airdrop button and sign your transaction.
If everything went well you should see a success screen like this. We can head over to Etherscan to verify, which is the block explorer most people use to verify their transactions and check on-chain activities. I always search with my ENS name (klick.eth) or wallet address into the search bar and it'll show you the recent transactions.
I locate my most recent transaction and this looks exactly as expected - a number of mint functions for the same token, and they're going to different wallet addresses.
Using Manifold is the easiest way to send airdrops, but let's say we minted these editions to our own wallet first, and then decided later you want to airdrop them? Unfortunately, there isn't a native way to send the tokens out from your wallet in multiples, but what we can do is use Etherscan to interact with our contract and mint more copies, which would then be airdropped to specified wallets.
Option 2 - Use Etherscan
We can use Etherscan to interact with our contract directly. We'd want to do this if we've already minted our intitial batch of tokens, but decide later that we want to airdrop more of them, or forgot someone's wallet address, etc.
Navigate to the Etherscan page (Etherscan.io is mainnet, but Goerli.Etherscan.io is tesnet), and paste your wallet address into the search bar.
Find the transaction that shows when you created your contract, and then select that transaction hash. In the screenshot, you can see the Create: TESTING in the To column is the one we want since that's the name of our smart contract.
After selecting the transaction hash, you'll see a page similar to this. Click on the Contract link as highlighted above and it will bring you to the Contract page.
Now you're going to navigate to the Contract tab, and then select the Write as Proxy section underneath it. These are the different functions coded into the smart contract, and the one we'll be using here is 5. mintBaseExisting. Click on that function and it will expand out to let you fill in the values.
There's three different pieces of information we need to enter. The first are the wallet address(es). They must be enclosed in brackets, and separated by commas if more than one address is being used.
[0x40C423d16D1A9B90535cAD9D54ba4a2766D066DA, 0xWalletAddress2, OxWalletAddress3]
The second field, tokenIds, is referring to the token ID of the NFT we're sending out. In our example it is 2. One way to easily find the token ID is by viewing the NFT on OpenSea or DNS, you can get the token ID from the details section or the URL by looking at the number after the final backslash or colon.
https://opensea.io/assets/ethereum/0x2d703663ff3b7aaeed50d98283600a5ff6da8fc8/1 https://dns.xyz/token/ETHEREUM:0x2d703663ff3b7aaeed50d98283600a5ff6da8fc8:1 The /1 and the :1 at the very end of the URL indicates it's token 1.
The final field, amounts, is the number of copies each wallet is receiving. If everyone is getting a single edition, then you would have 1 for every wallet you're sending to.
Once we've got all our information entered in, hit the Connect to Web3 button, sync your wallet, and if we've input our data correctly we'll be able to sign our transaction. Congratulations, you've now leveled up and can interact with your smart contract and you don't even need to use Manifold for it.
That covers a couple ways to handle distributing your artwork on Ethereum that don't require the use of any third party tools or have any trust in something you don't control or give up any of your sovereignty. There will no doubt be more trusted tools added to the ecosystem as well to make these things even smoother.