How to Airdrop ERC-20 Tokens to Multiple Wallets (2026 Guide)
An airdrop is one of the most powerful distribution tools in Web3 — rewarding early supporters, bootstrapping community ownership, or seeding liquidity with real token holders. But airdropping ERC-20 tokens to dozens, hundreds, or thousands of wallets is not as simple as clicking "send" repeatedly. Gas costs, wallet list management, and smart contract mechanics all affect how you execute a distribution efficiently and cheaply. This guide covers every method from the simplest single-wallet transfer to gas-efficient Merkle tree airdrops used by the largest DeFi protocols.
What Is a Token Airdrop?
A token airdrop is the act of distributing ERC-20 tokens directly to wallet addresses — typically for free or as a reward for some prior action. The term comes from the idea of "dropping" value from the sky into holders' wallets without them needing to purchase anything.
Airdrops became a defining feature of Web3 culture after Uniswap's landmark September 2020 distribution: every address that had ever used the Uniswap protocol received 400 UNI tokens retroactively, worth roughly $1,200 per wallet at the time of launch. That single event demonstrated the power of a well-designed airdrop to generate enormous community goodwill, bootstrap real decentralized ownership, and create lasting brand loyalty.
Why do projects airdrop tokens?
- Community building: Distribute governance power broadly to avoid plutocracy
- Bootstrapping token holders: Give early users real skin in the game
- Rewarding loyalty: Recognize early adopters and contributors
- Marketing: Word-of-mouth from recipients is far more credible than paid promotion
- Decentralization: Regulatory and philosophical pressure to spread ownership widely
The key distinction between an airdrop and an ICO or token sale is that airdrop recipients receive tokens for free or for non-monetary contributions (usage, community participation). This difference has real legal implications that we cover in the legal considerations section below.
Before you can airdrop anything, you need a deployed token. If you have not created yours yet, our ERC-20 token creation guide walks through the full deployment process from wallet setup to mainnet launch.
Types of Airdrops
Not all airdrops are the same. Understanding which type you are executing shapes how you build your recipient list, how you structure amounts, and what your legal exposure looks like.
1. Free / Open Airdrops
Anyone can claim by connecting a wallet to a claim page or submitting their address. Common for marketing launches where the primary goal is maximum distribution and brand awareness. Easy to game by bots and multi-wallet farmers, so these tend to produce lower-quality holder bases unless paired with Sybil resistance (identity verification or social proof).
2. Holder Snapshot Airdrops
A snapshot is taken at a specific block height, recording all holders of a particular token or NFT. Anyone who held the qualifying asset at that moment receives the new token proportionally or at a flat rate. This rewards existing community members and creates cross-protocol loyalty. The key challenge is keeping the snapshot date confidential until after execution to prevent last-minute buying of the qualifying asset.
3. Task-Based Airdrops
Recipients complete social or on-chain tasks — follow on Twitter/X, join a Telegram, retweet an announcement, provide liquidity, refer a friend. Tokens are distributed upon verified task completion. These drive specific engagement goals but are heavily abused by farms and are generally declining in credibility among experienced Web3 users.
4. Retroactive Airdrops
The most valuable and respected type. Rewards past users of a protocol who did not know they would be rewarded. Uniswap (UNI), dYdX (DYDX), Optimism (OP), and Arbitrum (ARB) all executed retroactive airdrops. Because recipients did not farm the drop, the holder base consists of genuine users. Requires significant historical on-chain data analysis to build the recipient list.
5. Exclusive / Whitelist Airdrops
A manually curated list — team members, advisors, investors, early contributors, contest winners. These are the simplest to execute logistically but require careful documentation for legal and tax purposes, particularly when recipients are employees or contractors.
Before You Airdrop: Preparation Checklist
A rushed airdrop execution wastes gas on failed transactions, sends wrong amounts, or worse — transfers to invalid addresses and burns tokens permanently. Work through this checklist before executing anything on mainnet.
Token and Supply Readiness
- Token is deployed on mainnet with the correct name, symbol, decimals, and supply
- Airdrop allocation is held in the owner or distributor wallet
- You have confirmed the token contract address on Etherscan
- If using minting: mint function is accessible and you have the minter role
Need to deploy a token first? Our ERC-20 creator makes it a five-minute process. Make sure to think through your supply allocation before deploying — our tokenomics guide covers how to structure your distribution proportions.
Recipient List Preparation
- CSV file with two columns: wallet address and token amount (in full units, not wei)
- Every address validated: must start with
0xfollowed by exactly 40 hexadecimal characters - Duplicates removed — sending to the same address twice wastes gas and may look like an error
- Zero address (
0x0000...0000) excluded — tokens sent there are burned permanently - Contract addresses reviewed — sending tokens to exchange hot wallets or other contracts may result in unrecoverable tokens
Gas and Timing
- Check current gas prices before executing — aim for under 15 gwei when possible
- Estimate total gas cost for your chosen method before spending a single wei
- Have a gas buffer in your wallet — at least 20% above the estimate
- Schedule execution for off-peak hours (Sunday UTC morning) to minimize gas spend
For a deep dive on timing and gas mechanics, see our gas fees explainer.
Testnet Dry Run
Always test on Sepolia with a small subset of your recipient list — 3 to 5 addresses — before executing on mainnet. Verify that amounts arrive correctly, that your tooling handles decimal precision correctly (remember: if your token has 18 decimals, 1 token = 1000000000000000000 in raw units), and that the approval or ownership flow works as expected.
Method 1 — Manual Transfers via MetaMask
The most basic approach: open MetaMask, switch to your token, and send one transfer at a time to each recipient address. No smart contracts, no tooling, no approval steps required.
Step-by-Step Process
- Import your token into MetaMask if it does not appear automatically (our MetaMask token import guide covers this in detail)
- Click "Send" on the token in your wallet
- Paste the recipient address — double-check the first and last four characters
- Enter the token amount
- Review gas estimate and confirm
- Wait for confirmation, then repeat for the next recipient
Gas Cost Reality
Each ERC-20 transfer consumes roughly 65,000 to 90,000 gas units. At 20 gwei gas price and $3,200 ETH, each transfer costs approximately $4 to $6. For a 100-address airdrop, that is $400 to $600 in gas alone — before accounting for your time executing 100 individual transactions.
When to Use Manual Transfers
- Very small recipient lists: fewer than 20 addresses
- Team and advisor distributions where each transfer needs individual attention
- High-value recipients where you want to confirm each transaction manually
- One-off transfers to known individuals
For anything beyond 20 recipients, the gas and time cost of manual transfers makes one of the batch methods below strongly preferable.
Method 2 — Batch Transfer via Disperse.app
Batch transfer contracts call the ERC-20 transferFrom function multiple times within a single on-chain transaction. Because you only pay one transaction's base overhead instead of dozens, batch transfers are significantly more gas-efficient than individual sends.
Disperse.app is the most widely used external batch transfer tool. It is open-source, non-custodial, and works with any standard ERC-20 token.
How Disperse.app Works
- Navigate to disperse.app and connect your wallet
- Enter your token's contract address in the token field
- Paste your recipient list in the text area using the format:
0xAddress amountor0xAddress, amount— one recipient per line - Click Approve — this authorizes the Disperse contract to spend tokens from your wallet (approve the total airdrop amount, not more)
- Click Disperse Tokens — one transaction executes all transfers
- Confirm in MetaMask and wait for the single transaction to confirm
Gas Savings
Compared to individual transfers, batch contracts save 30 to 40% on gas for medium-sized lists. A 100-recipient manual airdrop might cost $500 in gas; via Disperse the same distribution costs roughly $80 to $150. The savings grow with list size, though very large batches (500+ recipients) may approach the block gas limit and need to be split across multiple transactions.
Important: The Approve Step
The approval transaction grants the Disperse contract permission to move your tokens. Approve only the exact amount needed for this airdrop — do not approve an unlimited amount. After the airdrop completes, you can revoke the remaining allowance via Etherscan or a tool like Revoke.cash.
Practical Limits
A single Disperse transaction can typically handle 200 to 500 recipients before approaching Ethereum's block gas limit. For larger lists, split into multiple transactions of 200 to 300 recipients each, executed sequentially.
Method 3 — Built-In Batch Transfers Feature
If you deploy your token using erc20token.app, you can enable the Batch Transfers feature during token creation. This compiles a batchTransfer(address[] recipients, uint256[] amounts) function directly into your token's smart contract.
Why This Is More Efficient
The built-in approach is more gas-efficient than external contracts like Disperse for one key reason: the transfer logic lives inside the token contract itself. There is no external contract call overhead, no separate approval step, and no risk of spending allowances on an external contract you do not control.
As the token owner, you call batchTransfer directly. The function iterates through the recipient array and executes transfers from the owner's balance in a single transaction.
How to Execute a Batch Transfer
- Go to your token's contract page on Etherscan
- Click the Contract tab, then Write Contract
- Connect your wallet (must be the owner address)
- Find the
batchTransferfunction - Enter the recipients array:
["0xAddr1","0xAddr2","0xAddr3"] - Enter the amounts array (in wei with your token's decimals):
[1000000000000000000, 500000000000000000, 2000000000000000000] - Click Write and confirm in MetaMask
Alternatively, if you are comfortable with scripts, you can call batchTransfer programmatically via ethers.js or web3.py for full automation.
Enabling Batch Transfers on Your Token
When creating your token on erc20token.app, look for the Batch Transfers option in the feature selection step. Enable it before deployment — this feature cannot be added to a token after it has been deployed, as smart contracts are immutable once on-chain.
Gas Optimization for Large Airdrops
For airdrops of 500 or more recipients, gas costs can quickly escalate to thousands of dollars on Ethereum mainnet. These strategies materially reduce what you spend.
Time Your Execution
Ethereum gas prices follow predictable weekly patterns. Sunday UTC morning (01:00 to 08:00 UTC) consistently shows the lowest base fees of the week. Weekday early mornings UTC (02:00 to 06:00 UTC) are also cheap. Executing during these windows versus peak US/Asian business hours can cut your gas bill by 50 to 70%. Set a reminder and wait — a day's patience is worth hundreds of dollars on a large airdrop.
Use Batch Transfers, Not Individual Sends
Already covered above, but worth reiterating: never send tokens one by one for an airdrop. Even moving from 500 individual transactions to 3 batch transactions of 167 recipients each saves an enormous amount on transaction overhead.
Consider Layer 2 Networks
If your use case does not require Ethereum mainnet specifically, deploying your token on Arbitrum, Optimism, or Base reduces gas costs by 10 to 50 times. An airdrop to 10,000 wallets that would cost $5,000 on mainnet at 20 gwei might cost under $200 on Arbitrum. The tradeoff is that L2 tokens are not automatically visible on mainnet wallets and require users to switch networks or bridge assets.
Gas Cost Formula
Use this to estimate your airdrop cost before executing:
Total Cost (ETH) = (Gas per transfer × Number of recipients × Gas Price in gwei) ÷ 1,000,000,000
For batch transfers, gas per recipient drops to roughly 30,000 to 45,000 units (versus 65,000 to 90,000 for individual transfers) because shared transaction overhead is amortized across all recipients.
Split Large Batches
Transactions approaching the block gas limit (currently 30 million gas units on Ethereum) may fail or be dropped by mempool nodes. Keep each batch transaction under 200 to 300 recipients to stay well within the limit, and test your batch size on Sepolia before mainnet execution.
Airdrop Tools Compared
| Tool | Max Recipients / Tx | Gas Efficiency | Token Approval Required | Cost |
|---|---|---|---|---|
| Manual MetaMask | 1 per transaction | Low | No | Gas only |
| Disperse.app | ~200-500 per tx | Medium | Yes (required) | Gas only |
| ERC20Token.app Batch | ~200-500 per tx | High | No (owner calls directly) | Gas only |
| Merkle Distributor | Unlimited (claim-based) | Very High | One-time (to contract) | Deployment + gas |
| Custom Contract | Unlimited | Variable | Configurable | Deployment + gas |
For most projects distributing to under 5,000 wallets, the built-in Batch Transfers feature on erc20token.app or Disperse.app will handle the job efficiently. For distributions to tens of thousands of wallets, the Merkle approach becomes the clear winner — both for gas efficiency and operational simplicity.
Advanced: Merkle Tree Airdrops
The Merkle tree airdrop pattern is used by the largest DeFi protocols — Uniswap, dYdX, Optimism, Arbitrum — precisely because it inverts the gas cost model: instead of you paying to send tokens to 100,000 wallets, recipients pay a small claim fee to pull their allocation from the contract.
How Merkle Airdrops Work
You compile a list of all eligible addresses and their token amounts. From this list, you construct a Merkle tree — a cryptographic data structure where each leaf represents one recipient's keccak256(address, amount) hash, and all leaves are hashed upward into a single 32-byte Merkle root.
You deploy a Merkle Distributor contract with:
- The Merkle root (the cryptographic summary of all recipients)
- A transfer of the full airdrop token allocation into the contract
Each recipient claims by submitting a Merkle proof — a small array of sibling hashes that proves their leaf is part of the tree — along with their address and amount. The contract verifies the proof against the stored root and, if valid, releases the tokens.
Your Costs vs Recipient Costs
- Your cost: One contract deployment ($30 to $80 at 20 gwei) + one token transfer to fund the contract (similar to a standard transfer)
- Recipient cost: One claim transaction per recipient (~50,000 to 80,000 gas, roughly $3 to $6 at 20 gwei)
For a 50,000-wallet airdrop, you avoid paying $150,000 to $300,000 in gas (at manual transfer rates) and instead pay roughly $50 to $80 total. The catch: not all recipients will claim. Typical claim rates are 60 to 80%. Unclaimed tokens remain in the contract until the expiry date, after which you can reclaim them.
Tools and Libraries
- Uniswap's Merkle Distributor: The original battle-tested implementation, available on GitHub
- OpenZeppelin MerkleProof.sol: A reusable library for Merkle proof verification in your own contracts
- Merkle tree generation: Use
@openzeppelin/merkle-tree(JavaScript) to build the tree and generate proofs from your CSV list
Downside: Technical Complexity
Deploying a Merkle distributor requires comfort with Solidity development or working with a developer. You also need to host the Merkle proof data somewhere accessible (IPFS, your own API endpoint) so recipients can retrieve their proof when claiming. For most projects distributing to under 10,000 wallets, the built-in batch transfer approach is simpler and still very cost-effective.
Legal Considerations for Token Airdrops
Executing a token airdrop without understanding the legal landscape is a significant risk. The following is not legal advice — consult a qualified attorney familiar with your jurisdiction before proceeding with any significant distribution.
Tax Implications for Recipients
In most jurisdictions including the United States, received airdrop tokens are treated as ordinary income at the fair market value at the time of receipt. Recipients who receive $1,000 worth of tokens in an airdrop owe income tax on that $1,000, regardless of whether they sell. Projects commonly include disclaimers reminding recipients to consult tax advisors, though this does not reduce the tax liability.
Securities Law
Broadly distributing tokens that may qualify as securities — under the Howey Test in the US, or equivalent tests in the EU, UK, or other jurisdictions — carries serious regulatory risk. If your token represents an investment in a common enterprise with expectation of profit from others' efforts, it may be a security. Many projects structure airdrops to avoid this classification, but the analysis is fact-specific and requires legal counsel.
Sanctions Compliance
OFAC (Office of Foreign Assets Control) in the US maintains a list of sanctioned individuals, entities, and jurisdictions. Distributing tokens to persons or wallets on the OFAC SDN list can result in civil and criminal penalties. For large public airdrops, geo-blocking sanctioned jurisdictions and checking wallet addresses against on-chain sanction screening tools is a standard compliance step.
Spam Airdrops ("Dusting")
Sending unsolicited tokens to random addresses — sometimes called "dusting" — is widely regarded as spam in the Web3 ecosystem and damages token reputation. Only airdrop to addresses that have opted in, demonstrated qualifying on-chain activity, or are otherwise specifically targeted. Indiscriminate mass distributions also attract regulatory scrutiny.
Build In an Expiry
Always include a claim deadline in your Merkle distributor contract — typically 6 to 12 months. This lets you reclaim unclaimed tokens after the window closes, keeps your contract state clean, and demonstrates that you have thought through the distribution governance carefully.
FAQ
How much does it cost to airdrop ERC-20 tokens to 1,000 wallets?
Using a batch transfer contract (Disperse.app or a built-in batchTransfer function), distributing to 1,000 wallets costs roughly $200 to $500 at 20 gwei and $3,200 ETH. You will need 4 to 6 batch transactions of 200 recipients each. Using a Merkle tree distributor instead, your cost drops to roughly $50 to $80 for deployment — but recipients pay their own claim gas of $3 to $6 each.
Can I airdrop tokens for free?
On Sepolia testnet: yes, completely free. On Ethereum mainnet: no — network gas fees are non-negotiable and paid to validators, not to any platform. There is no platform fee on erc20token.app, so you only pay network gas. Anyone claiming they can airdrop your mainnet tokens for zero cost is either using testnet (no real value) or charging you elsewhere.
What is the most gas-efficient airdrop method?
The Merkle tree distributor is the most gas-efficient method for large airdrops (1,000+ wallets). You deploy one contract and fund it once — recipients then claim their own allocation by submitting a Merkle proof. You pay roughly $50 to $80 in deployment costs regardless of whether you are distributing to 1,000 or 100,000 wallets. The built-in Batch Transfers feature on erc20token.app is the most efficient push-based method (no approval step, internal contract logic).
How do I create a token with batch transfer built in?
Enable the Batch Transfers feature when creating your token on erc20token.app. This adds a batchTransfer(address[] memory recipients, uint256[] memory amounts) function to your token contract that only the owner can call. It is the most efficient push-based airdrop method and requires no separate approval step — note that it must be enabled at deployment time, as smart contracts cannot be modified after going live.
Can I airdrop to non-Ethereum wallets?
ERC-20 tokens can only be sent to Ethereum-compatible wallet addresses (0x + 40 hex characters). Wallets on EVM-compatible chains — BSC, Polygon, Arbitrum, Optimism, Base — use the same address format and will receive tokens if your token is deployed on that chain. However, a token deployed on Ethereum mainnet cannot be sent to a native Solana, Bitcoin, or non-EVM address. Always confirm recipients are using an EVM-compatible wallet on the same network as your token deployment.
Launch your token with airdrop support
Deploy an ERC-20 token with the Batch Transfers feature enabled at erc20token.app. No platform fee, no coding required, and your token ships with a built-in batchTransfer() function ready to use from day one.