NFTs, NFT Drops, NFT Teams
Strategies for NFT Teams Regarding Whitelists, Allow Lists, Presale Lists— How Many Wallets to Collect
Focusing on 10k generative NFT sets.
When you’re looking for articles about NFT whitelists (which I’ll refer to herein as allow lists), you’re going to naturally run into quite a lot of tech articles — and that’s great. (And, for the record, we’ve got the tech side of allow lists well covered here at GenerativeNFTs.) But, more importantly, there are strategic considerations involved in having allow lists, and that’s what I’ll be focusing on herein.
To begin, let’s consider the goals of a presale. And remember here that I’m strictly focused on 10k generative NFT sets on the ETH blockchain.
- Avoiding a gas war. If a coming drop is super popular, with many thousands of people looking to buy into a sure sell-out, then you’re definitely going to have a gas war upon launch without an allow list. Presales address this problem by eliminating the need for everyone to mint in the opening moments of a sale. With the pressure gone, people can mint at their leisure, usually over a period of a day or so, and thus they’ll all usually save considerably on gas fees.
- Providing immediate value to OG community members. Remember that a presale can optionally have its own pricing. So, what we see a lot is a bit of a discount for presale minters versus public sale minters. You could have a public mint planned for 0.08 ETH, but offer NFTs at presale for 0.07 or 0.06, for example. We’ve seen quite a lot of approaches, so it’s something that needs to be put into a budget model and worked through if this will be an option for you. Keep in mind that you can also have multiple presales, each with its own list, wallet limit, and price.
- Demonstrating momentum. When you do a presale, a lot of investor eyes will be on you at that specific time. Often, when you have a set that isn’t a 100% guaranteed sellout, public-mint investors may step back and watch your drop for a bit before deciding whether to mint once it opens up to the public. So, what happens at the presale stage can be very good or very bad for a drop. A healthy, successful presale with great turnout shows would-be public mint investors the momentum they’re concerned about. And similarly, a lackluster / low-turn-out presale might deter the same people from public minting. So, you need to take measures to ensure that, whatever you do on the presale side, it’s geared toward a successful presale stage.
- Selling NFTs. Obviously, the main goal is to sell out in order to be funded and be able to fulfill the roadmap. And so whenever you’re formulating a strategy regarding presale lists, you naturally want to maximize overall sales in your modeling / forecasting.
How Many Addresses to Collect
When making this determination, one needs to consider various factors. Let’s look at the major ones:
- Wallet Limits. If you’ve got 10,000 NFTs in a set, and you have a 10 NFT wallet limit policy in place for presale minting, that means that technically your entire set could sell out with just 1,000 wallets. Or you could have 5,000 wallets with a 2-per-wallet limit.
- Some presale list wallets won’t actually mint. I can’t give you a solid percentage for what to expect, as each drop is different in terms of popularity, investor appeal, etc. I think it’s fair to say that the percentage is likely commensurate with two things. If (1) obtaining a spot on your allow list is/was highly competitive, and/or (2) the drop is highly popular, then the percentage of wallets on the list that will actually mint would be high. OTOH, if you’re giving out spots to anyone who asks, and the drop isn’t well hyped, then I’d expect the percentage who actually mint to be significantly lower. (I have a whole other article on this very topic. So, after reading this one, see here.)
- Many NFT teams elect to reserve a quantity for public mint. There are no rules, of course. You could attempt to do a fully allow-listed sale, with zero public sale at all. (There have been a good handful of these lately.) Or you could elect to reserve X hundred or thousand NFTs for a public mint stage. There are decent arguments both ways for doing or not doing this.
How Many Wallets Do You Need?
Again, this is super tricky because we never know what the turnout will be. But, whatever you do, you can at least do some basic math. Start with figuring out how many NFTs you want to sell in presale versus public. (Again, the public number could be zero if you want the entire sale to be presale / allow list.) And then divide that number by the wallet limit you would want to enforce during the presale.
So, for example, if you wanted to sell all 10,000 at presale, and you wanted to know how many wallets you could guarantee a mint, then your max wallets would be as follows:

You could also use that chart in reverse to decide on your wallet limit given the size of your presale list. If you’ve got 1,000 names and you want to guarantee them all a mint, you know you can set a 10-per-wallet limit and live up to that.
You can do all sorts of other stuff, as well — for example having multiple presales, each with their own limits and pricing. And not all of these would need to be guaranteed. Maybe you have 5,000 names for a second list, and still a 3-per-wallet limit. Mathematically, that could mean some would still miss out. But at least you gave them a chance that was arguably a bit better than an open public mint.
FAQs:
Some FAQs I get. Keep in mind that all answers are just my opinion!
- How many whitelist wallet addresses should we collect? Again, read over this article first. But, I’ve commonly seen drops with many thousands. On almost all I’ve seen, if the allow list would have all minted the max, the sale would have been done. Yet, this hasn’t happened yet on any I’ve worked on. We’ve also done some that sold out on public with no allow list at all. If I had to force an answer here, I’d say shoot for at least 3000–4000 wallets for starters, and expand outward if needed. Just remember that you’ll need flexibility in terms of wallet limits and whether or not you’re guaranteeing mints for various groups. So, be transparent up-front about all of this in your communications with your community.
- What should the pricing be on presale versus public sale? Again, this is just a preference. I do like the idea of offering a discount to some. Keep in mind that you can have multiple presales, and thus multiple lists, each with their own limits. So, you might have an OG sale for the first 200–300 early supporters, and allow them in for maybe 0.05 instead of 0.08, and maybe allow them a bigger wallet limit as well. Once you get into the MAIN allow list, though, I don’t think a discount is personally recommended. The primary benefit you’re offering here is being able to mint without gas wars, and you do need to make your revenue projections to fund the project. So, the larger the list, the less discount you’ll likely want to incorporate.
- What’s the timing on presales? If it were MY drop, I’d probably do this: (1) an early supporter list of 250 names with a 3–4 per wallet limit and a 0.02 discount, duration of just a few hours. Then, (2) the main allow-list presale, at full price, for 24 hours, and then (3) the public sale.
- How long does it take to change out lists if we want multiple presales? Not long at all! We usually use something called a Merkle Tree (pretty standard web3 stuff), and the tech is super simple. We just upload a new list, grab what’s called the “root,” and then update the smart contract with this root value. It’s literally a 5-minute thing, though I like to budget 30 minutes between sales, just in case anything goes wrong and I need to fix something and/or to give me time to adjust anything on the front end that might need to be updated.
- How much does it cost to do allow lists? Are there gas fees involved for large lists? This impression comes from the old days when a lot of people would upload huge lists manually to the smart contract and store these values on-chain. With Merkle trees, the wallets do not get stored on-chain. And so, no matter if your list is 600 names or 6,000 names, updating a Merkle root on a smart contract is super easy and cheap. The last 4–5 I did ran me something like $3 or $4 in ETH gas fees each time I updated that. (Of course, gas has been super low lately. But, even if gas returned to a level like 100 or so, this will always be a cheap transaction relatively speaking.)
- Any front-end considerations? Nothing major. What I like to do is to have a header that says “Allow List Minting is Live” when it’s live. If I need to change out the lists, what I often do is to pop a standalone page up on the site with a “We’ll be right back. We’re updating our presale list!” message. And then once I’m ready, I pop the site back up again.
- When should we have the presale list(s) finished by? At the latest, and if everything is in decent shape, I personally would like to get them at least an hour before they’re needed to go live. For me, finished means they’re all in one column, as shown below, and preferably already deduped as well. (Though, if you don’t know how to dedupe a list in Google sheets, no worries. Just LMK if it’s not deduped.)
- How should I format the presale / allow list(s)? A Google spreadsheet works great. Just list them all in a column for me and I’ll handle the rest. One tip for you that really helps is to highlight the entire column in your Google spreadsheet and make the font Courier New. This is a monospace font, which allows you to easily scan the column visually and look for any wallet addresses that are too long or too short. For example, here’s a screen grab of some sample (fake) wallet addresses. Looking at the left column, you wouldn’t know whether any characters are extra or missing. But the right column is in the Courier / monospace typeface and you can easily see that all of the addresses look to be of uniform length and thus are likely valid.

- What about .eth addresses? Please resolve those for the allowlist. I’m sure there are many easy ways to resolve ENS addresses. My usual one is to just go to Etherscan and input the .eth name in the URL, like so: https://etherscan.io/address/beer.eth (putting the name.eth part at the end like that), and then when the page loads I can see the full address at the top — or, 0x39DBfDD63FD491A228A5b601e0662a4014540347 in this case.
- How are allow list spots typically given out / earned? There are numerous methods for building allow lists. These might include holding Twitter awareness contests where you ask people to like and retweet / tag friends. It could include rewarding people for various types of participation in your Discord. It also commonly includes awarding a set number of slots (say 25–100, depending) to other communities and letting them dole them out as they see fit. All of these take time and work to get going, and I’d recommend reading other articles dedicated to building out presale lists.
- Got any more questions? Feel free to reach out anytime via the comments, and I’ll be sure to answer as best I can.
This article will be included in my overall “How to Prep for Doing Your Own NFT Drops” guide for generative NFT drop teams.
