I'm looking into how to code a smart contract to mint a NFT and be able to send it to a large number of addresses, up to 10,000 addresses. The idea is to mint x copies of a NFT (given the metadata), then send them to x wallet addresses. I've seen some code that does a for() loop with a mint call inside, but I'm not sure if this is feasible transaction cost-wise.

I've seen some sites seemingly offering this functionality, such as this: https://metasender.co/ https://nft.multisender.app/#/

so it seems to be technically possible. I've seen some related questions, but they seem related to airdrops. Ideally, the functionality wouldn't require needing the recipient to claim the nft, as in an airdrop.

Thank you for your help!

1 Answer 1


It would probably require the use of both a smart contract and a server (or client) that continuously calls the contract.

You would have a function inside your smart contract that mints a token to a user. Alternatively, you can use an array of addresses, but if you add too much the transaction costs will skyrocket.

function mintTo(address _to, uint256 _tokenId);

Your server (which could run a HardHat task) would have access to the list of addresses and access to a node like Infura to connect to the blockchain.

// A list of 10k addresses
let addresses = ['0x123...', '0x456...'];

for(let i = 0; i < addresses.length; i++){
  mintTo(addresses[i], i); // Where i is equal to the tokenId

Hope this helps you in the right direction.

Keep in mind that the transaction costs will still be very high if you're planning on using Ethereum. L2s or side chains like Polygon might be more cost efficient.

Your Answer

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

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