Whitelisting is a well known technique for gas war mitigation in NFT projects on Ethereum.
There are good reasons for the project builders and minters to love it:
- You can find if there is enough interest in the project before the mint
- It is used for collaborations between the projects, giveaways, competitions, etc.
- You can give discount to early adopters
- There are no gas wars during the presale
But there are also some downsides:
- It’s a highly centralized approach. The project team have the power to decide who to include
- There can be a lot of whitelist spots that are not used
- No transparency. Minters don’t know how much spots are given
Boarding Passes to the rescue
At M00N.City we wanted to create a decentralized, fun and fair distribution of our whitelist spots, so for our Lunar Colony Alpha project we came to the idea that
Instead of giving a honest word for a whitelist spot we can provide an actual NFT — a Boarding Pass for our M00N mission.
But sir, this will cost gas !@#%?
Not if the contract is deployed on a cheap L1 network (Polygon/MATIC, FTM, AVAX, etc.). We use Polygon, because it’s fast, cheap and supported by Open Sea. A snapshot will be taken after the passes are minted and before the LCA minting has started. The owner addresses from this snapshot will be used by LCA contract for the whitelist presale.
Small amount of the passes is reserved for collaborations, givaways and competitions, but the rest can be claimed for free or be purchased for 0.01 ETH if the demand is high (see below). Each boarding pass will give a 0.02 ETH discount for minting an LCA Alphabot NFT.
LCA boarding passes distribution is fully on-chain and you will be able to claim a pass without anyone’s permission.
Distribution
Boarding passes distribution will be executed in batches. Each batch distribution will have duration, amount and initial supply. During each batch period the free passes will be released gradually. If the demand for free passes is high, one can skip the waiting by buying a pass for 0.01 ETH.
Example:
Batch distribution with initial supply of 200 passes + 2000 passes released in 2 days. In this distribution 200 will be available from the beginning of the 2 days period. Other 2000 boarding passes will be released gradually 1 token per 86.4 seconds (1000 per day).
If the demand is low the available boarding passes will start to increase and if the demand is high to decrease.
Price discovery
Since the price of a mint is determined by the following equation
LCA_price + BP_price — discount
if we calculate the BP_price and/or discount as a function of demand, this can be used for price discovery and bot protection.
Our implementation is super simple, but this can be extended with more logic.
In our case Boarding Pass price in the contract can be 0 or 0.01 and the discount is always 0.02. We are releasing free boarding pass each X minutes, but if the demand is high the amount of people that are trying to claim a free ticket will be more than the amount the contract is releasing, so they will start to buy from the contract or from the secondary market. This will make the price of the mint from 0.06 ETH to 0.08 ETH.
Bot protection
It is hard(impossible) to prevent botting in sybil friendly environments such as the Internet and blockchain.
Some measures that could be taken.
- Allow only EOA addresses
- Monitor for malicious behavior and remove fraudsters from the snapshot
But since botting can not be stopped, we can just make it less profitable and ensure that the people interested in minting can get a whitelist spot.
For example:
- Low demand - There will be no economical value to develop a bot for free tickets’ sniping.
- Regular demand - Bots will be able to snipe for free tickets, but the investors will be able to buy at any time at a low price. Buying will postpone the next free ticket and thus reduce the amount of tickets that can be sniped.
- High demand - There will be no free tickets available. Buying with bot does not give you any advantage.
What are the benefits ?
- Price discovery
- Whitelist spot
- The team will not be able to block you from claiming a boarding pass
- You can change the ownership of the boarding pass (before the snapshot) without the need to contact anyone
- Boarding passes are tradable on OpenSea
- Boarding passes are NFTs, so future utility can be provided at any time
- 0.02 ETH discount when minting LCA Alphabot NFTs
- Chance to win one out of 10 free LCA Alphabots NFTs
Further thoughts
- Instead of using only two price values 0 and 0.01, we can make the value dynamic as a function of the previous time windows. For example if we want a release rate of 30 free tickets per hour and the mints in the last hour are ≤ 30 then the price is 0, but if the mists are > 30 the price is increased depending on the mint count.
2. Multiple types of boarding passes with different discount values.