A professional BSC (Binance Smart Chain) token distribution system for airdropping tokens to 20,000 wallets.
- ✅ Batch processing for gas optimization
- ✅ Automatic retry mechanism for failed transfers
- ✅ Progress tracking with visual indicators
- ✅ Comprehensive logging system
- ✅ Gas estimation and balance checking tools
- ✅ Support for 20,000+ wallet distributions
- ✅ CSV wallet list management
- ✅ Real-time transfer monitoring
- Node.js v16 or higher
- NPM or Yarn package manager
- BSC wallet with:
- Your tokens to distribute
- Sufficient BNB for gas fees (~1-2 BNB for 20k transfers)
- Private key of the wallet holding the tokens
- Clone or download this repository
- Navigate to the project directory:
cd vegaAirdrop
- Install dependencies:
npm install
- Set up your environment variables:
- Copy
.env.example
to.env
- Edit
.env
and add your private key (remove 0x prefix if present) - Adjust token amount per wallet if needed
- Configure gas settings based on network conditions
- Copy
PRIVATE_KEY=your_private_key_without_0x_prefix
TOKENS_PER_WALLET=1000
BATCH_SIZE=100
GAS_PRICE_GWEI=5
.env
file secure and never commit it to version control.
- Token Address:
0x5Cca9154B79c09487b50Eb124E4C731CE6DbD8Fd
- Network: BSC Mainnet
- Chain ID: 56
First, verify you have enough tokens and BNB:
npm run check-balance
This will show:
- Your BNB balance (for gas)
- Your token balance
- Maximum recipients you can airdrop to
- Estimated gas costs
Option A: Generate Random Wallets (for testing)
npm run generate-wallets
This creates 20,000 random wallet addresses in data/wallets.csv
Option B: Use Your Own Wallet List
Create a CSV file at data/wallets.csv
with the following format:
Index,Address
1,0x1234...
2,0x5678...
Check current gas prices and estimate total costs:
npm run estimate-gas
Start the distribution:
npm run airdrop
The system will:
- Connect to BSC network
- Load your token contract
- Verify sufficient balance
- Load recipient addresses
- Process transfers in batches
- Save results to
logs/
directory
During the airdrop, you'll see:
- Real-time progress bars
- Batch completion status
- Success/failure counts
- Transaction hashes
- Gas usage statistics
After completion, check the logs/
directory for:
success_[timestamp].json
- Successful transfers with tx hashesfailed_[timestamp].json
- Failed transfers with error reasonssummary_[timestamp].json
- Overall distribution summary
Adjust BATCH_SIZE
in .env
:
- Smaller batches (50-100): More stable, slower
- Larger batches (200-500): Faster, may hit RPC limits
Monitor BSCScan for optimal gas prices:
- Low traffic: 3-5 Gwei
- Normal: 5-7 Gwei
- High traffic: 10+ Gwei
To retry only failed transfers:
- Load failed addresses from logs
- Create new CSV with failed addresses
- Run airdrop again with the new list
-
Private Key Security:
- Never share your private key
- Use a dedicated wallet for airdrops
- Consider using hardware wallet integration
-
Test First:
- Test with a small batch (10-100 wallets)
- Verify transactions on BSCScan
- Check token balances are correct
-
Gas Management:
- Keep extra BNB for unexpected gas spikes
- Monitor network congestion
- Use batch delays to avoid rate limits
- Check token balance:
npm run check-balance
- Ensure tokens are in the wallet with the private key
- Add more BNB to your wallet
- Reduce gas price if network allows
- Process in smaller batches
- Check recipient address validity
- Verify token contract allows transfers
- Ensure no token lock or pause is active
- Increase
BATCH_DELAY
in.env
- Reduce
BATCH_SIZE
- Use alternative RPC endpoints
For 20,000 wallets:
- Estimated time: 2-4 hours (depending on batch size and delays)
- Estimated gas cost: 1-2 BNB (at 5 Gwei)
- Recommended batch size: 100-200 transfers
- Recommended delay: 3-5 seconds between batches
For even more gas optimization, consider deploying a MultiSender contract:
- Reduces gas by 40-60%
- Allows sending to multiple addresses in one transaction
- Requires contract deployment first
For issues or questions:
- Check the logs in
logs/
directory - Verify all configuration settings
- Ensure sufficient balances
- Check BSC network status
MIT License - Use at your own risk
- Install dependencies:
npm install
- Configure
.env
with your private key - Set desired tokens per wallet in
.env
- Check balance:
npm run check-balance
- Prepare wallet list (generate or import)
- Estimate gas:
npm run estimate-gas
- Run test with 10 wallets first
- Execute full airdrop:
npm run airdrop
- Monitor progress and check logs
Remember: Always test with a small batch first! 🧪
Good luck with your airdrop! 🎊