Should you build a minting pass for your upcoming NFT project? I definitely recommend you do! It’s actually super simple, and I’ve learned a lot when building one for @watchfacesworld.
Here are 3 principles I want to share, a few bonus tips, and a code sample ↓
First, what is a minting pass?
It's a simple NFT token that gives the holder access to private minting. They became very popular lately, esp. for high-profile projects to help alleviate gas wars and frustrations.
But minting passes can be useful for every upcoming NFT project
Principle 1: Minting pass is a relationship.
When someone says your project is cool, it's inspiring, but means very little.
When someone buys a pass for your project, it's a strong signal that they are interested. Ask them how they found you, give them special perks.
Principle 2: Low gas fees.
Minting passes are usually implemented as ERC1155 "semi-fungible" tokens. They are very gas-efficient because they store as little information as possible. A good pass mint shouldn't be more expensive than $30 (with current ethereum mainnet prices)
Principle 3: Freedom.
People should be able to sell their passes or give them to others. The market of passes better represents the demand than the gas wars during the mint, the profits go to early believers.
Tip #1: When to launch the pass?
I think it's best to do this when you believe the hardest parts of your NFT projects are figured out, and you have a long list of TODOs to work through.
The pass sales will give you more motivation, and a chance for others to support you.
Tip #2: Burn the pass when it's used.
This is probably the most complicated part of it all. Your main contract and your pass contract need to know about each other.
During the minting, your main contract can call the pass contract and ask it to burn the pass token.
Tip #3: You can use mint pass to raise money.
It cost us 0.1Ξ in gas fees to deploy and so far we've raised 1.1Ξ in passes.
Watchfaces uses on-chain SVG rendering and deploying it will be really expensive. The pass sales give us (almost) enough funds to deploy the main!
Tip #4: Make buying a pass zero-risk.
For the Watchfaces, the price you pay for the pass is counted as credit towards the main NFT mint.
If your project is super early, you can add a way for people to get their money back. WFW is super close to shipping :)
The source code for our mint pass is on Etherscan. Feel free to use it as a base for your own projects! etherscan.io/address/0x740A…
Another great example of minting pass going right: @kurorobeast
The tickets token is very well done (low gas, bots protection), gave enough money to the team to continue their work full time, and rewarded early believers (mint at 0.15Ξ, floor 1Ξ). opensea.io/collection/kur…
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Someone on Discord asked why we choose to go with Ethereum mainnet for @watchfacesworld NFT instead of an L2. Here's our thinking process on this…
We want to make Watchfaces last forever. The kind of antique rare physical timepieces that represent the times they were crafted in.
It's fully on-chain and will be alive for as long as Ethereum is alive. No external dependencies, no servers, no IPFS.
We don't have any plans to have active on-chain utility (like some games or art projects) that would require many transactions and would benefit from being on L2. Thus, the main benefit (as I see it) of L2 would be a cheaper deployment cost. Currently, we estimate to spend 1.5Ξ…
Best practices when handing payments 💸 in NFT contracts #solidity ↓
Pull, don't push.
* If you forward ether payments from your mint function, it makes minting more expensive.
* If your contract gets some Ether without triggering the mint function, these funds will be lost forever.
Instead, make a function that transfers you the full balance.
Note that the withdrawAll function isn't marked as onlyOwner. Anyone can call it. This lets you set up automation (e.g. via Infura or OZ defender) that doesn't depend on your private keys.