The NFT Airdropping Method Of The Future: Mimetic Airdrops On Ethereum
Everyone in the crypto industry loves airdrops—the method of delivering value back to the passionate holders. Unfortunately, many sacrifices have to be made to provide this value. That's not true anymore. Finally, we have a better option available.
Introducting, Mimetic Airdrops.
For so long, second NFT collection generations have been gated by ownership of a token + some varying cost of Ethereum. Regardless of the model, the holders always have to pay some fee from $30-$1,000+.
Instead, a better method can be used that allows the most passionate holders free value delivery while also offering the holders that aren't as interested a healthy avenue to exiting the ecosystem. More importantly, we can better enable the recipient's functionality, which is the core of Mimetic Airdrops. To best understand the solution proposed today, you have to understand the current environment within the NFT industry to see how different this new way of thinking is.
For example, let's use the upcoming release of 3D Winter Bears.
This release (although I do not know the specifics) will presumably be mint-requiring which means the current holder of the token will have to mint to redeem their 3D bear.
For all holders, from the least passionate holders to the most, every holder has to pay unreasonable costs. With this model, the entire supply will not immediately exist. Instead, it will be like a slowly dripping faucet as the incoming supply of the collection normalizes with time and slows to a crawl. Price discovery on airdropped collections can be difficult not just for creators but holders as well. The impacts of a prolonged minting experience exacerbate the inefficiency found within the market to an absurd level.
Early into the life of the project Fang Gangs, Pixel Fangsters was released, which is a pixel version of the Fangster held.
The token only granted access to the minting of 1 Pixel Fangster for an indefinite amount of time. Now, supply has slowly been minting, and holders have gradually become more and more passionate about the Pixel Fangsters. Now months down the road, buyers in the market are explicitly looking for Fangsters who haven't had their Pixel Fangster claimed.
Finally generating urgency, yet with the announcement of a visual upgrade and the earning of their native ecosystem token, it came at the cost of waiting for months and still many more months to come. A slow release of tokens from an airdrop collection is highly inefficient for every participant. Indefinite claiming is not a benefit or method of actual value delivery. Thus, interaction is incredibly minimized regardless of the support of the underlying community.
Instead, when the situation calls, the tokens can be immediately introduced into the ecosystem with minimal costs while delivering every single person in the situation a better experience. The thinking is: "If it is the same character, it is the same token." to accomplish this, we start by building our collection based on Mimetic Metadata, allowing us to pack multiple layers of metadata into the same token.
In the case of Winter Bears, we would add the 3D Bear layer and allow holders to swap back and forth without paying the additional cost of minting a new token. By doing so, the attention of the ecosystem stays focused on the single Winter Bears collection while the functionality of both pieces of metadata and art can be enjoyed and acquired with the single purchase of a token. Value packing. A creator can deliver value and functionality back to their holders without diluting the supply of the characters in their ecosystem. Though, not all releases should come in the form of a Mimetic layer.
For example, with the upcoming release of Comic Books for Nuclear Nerds, they are not the character of the Nerd. However, they are a core part of the story, and the Comics are airdropped to every Nerd in the ecosystem. Each issue of the Comic Book is still the same skeleton; thus, each new series does not need to be a new collection or contract.
With simple criteria, we can accomplish an immersive experience by allowing the actual progression of the Nerds Comic Book story that is in complete control of the holder. This is the perfect use case for Mimetic Airdrops.
Doing this can be tricky and costly, though. For so long, NFT projects have resorted to having free + gas mints where the ownership of the Parent token entitles the owner access to mint ' n' number of tokens. This situation is no different; we are just going to reframe our state of mind. The future implementation starts with the introduction and utilization of Phantom Minting. This allows you to 'mirror ownership' to an existing form, the 'place of ownership.'
Let's paint a picture. We have a parent collection with 500 tokens, and we are releasing a series with one new token available for every token that exists already. The immediate owners of the new token will be the current owners of the Parent token.
There is no state in which the token needs to be minted as the owner immediately falls back to the owner of the Parent. However, a Parent can choose to move a Child out of their house and mint the tangible token. Fundamentally, no longer relying on the ownership of the Parent token.
Magic. In this scenario, the Parent of a Child could list the Child on the secondary market never technically saving the token owner to storage as it is already stored in the Parent reference. Then, when the Child is purchased, the buyer stores the address in storage for the first time during the transfer without anyone having to do anything special.
This also means that if the Child contract has a new ecosystem functionality, it can be immediately accessed by the owner without the Parent needing to do anything because the contract already reads them as the owner.
Moving forward this is a high-level article, if you aren’t familiar with anything mentioned feel free to pause and come back when you’re ready. I will be here when you get back. It is important you understand each part of the equation here so that you can understand why this method is so powerful and the benefits that you as a creator unlock by future-proofing your collection.
So, how do we accomplish this?
With the introduction of Phantom Minting, we need to do two steps.
- First, release a collection with at least the existing collection supply. With that, you're ready. It is that simple.
- Then, all we need to do is emit a Transfer event so that all the NFT platforms start watching this collection.
Emitting an event doesn't set any data on the contract that we can use. Instead, we will first check if an owner for the airdropped token has been set when checking the ownership. If it hasn't used a proxy, the owner of the Child is the Parent.
Now, a reminder: We are working on the Ethereum mainnet. This is not a polygon airdrop. We are a genuine brand, and we are not taking the cheap route out, resulting in a valueless Polygon airdrop, thanks to the lack of attention and liquidity. Mimetic Airdrops are not the type of airdrop you are used to seeing today.
With this concept in mind, let's build an implementation.
It starts with taking a Mimetic Metadata base. Scoot on over to my GitHub profile and fork the off-chain implementation of Mimetic Metadata or make your own. Most projects have evolved past off-chain hosting; however, your setup is likely so different it is impossible to have a perfect setup plan available for everyone to copy-paste. You can explore the complete thought of Mimetic Metadata in my deep-dive article.
With your base token implementation ready, we have to break it and rework a few pieces. This method can work for both 721s and 1155s, and there will, of course, be implementation nuances.
For this implementation, we will use non-fungible 1155s using Phantom Minting. If you are using ERC-721s, you can find a recent undertaking by 0xInu in Message to Martian Characters.
In different implementations there will be the need to also initialize the starting balance of each account holding a token. It is important you think about your use case and the best type of implementation that is available to you.
The first thing we will update is
balanceOf(). In this implementation, we've already made the max balance 1. However, our execution needs to check with the proxy contract if the value hasn't yet been set.
That's the meat of it.
Even if we deploy this contract, it won't work as you may expect. Although the contract has been deployed, and these addresses are technically the owners of the tokens, we never told the platforms that they were minted. We need to emit an event for each owner and token id to do this.
This is where you using 1155 for this example becomes clear as we can quickly write an implementation like:
Immediately, we can emit Transfer events for an incredible amount of tokens with a single function call and very little creator cost. The nuance being here though that the tokens are technically being transferred to the contract. This event emission is merely notifying platforms that a mint has taken place on the contract.
This could change in the future though as well as the use case and needs of a contract may evolve with time. So, an alternative solution is using calldata that the owner of the contract can pass directly.
In this code, all we are doing is passing in arrays of addresses, tokens ids, and amounts. With that, our loop goes through each item that is passed and:
1. Validates the owner is the one we passed in for all the token ids we are about to initialize.
2. Emits the
Contrary to ERC-721, ERC-1155 is built with batch functions in mind. To conform to the 1155 standard, we maintain this ability to not ruffle too many feathers in the display of this implementation.
Suddenly, as soon as we call this function for the owners of the parent token, the airdropped token will appear on the platforms as if it had been minted, and the smart contract will return all the values just as one would expect. There are a few extraordinary outcomes of using this method.
By appending the ownership to the owner of the parent token, there are suddenly many situations that have always been very difficult to accomplish.
- The children's NFTs are appended to the Parent until they are minted.
This is like cutting the umbilical cord of the Child NFT. For as long as the holder of the parent token doesn't mint/redeem the airdrop, the token is in complete control of the Parent.
- If a token isn't minted, it moves with the Parent token. This means the Parent and Child are essentially sold as a bundle if the Child has never been transferred.
With this, a holder of a lot of Parents is not penalized in any way as well as the buyer of any Parent immediately sees the children appear.
- The owner does not have to mint the token to have owner access to it. The token is immediately viewable.
An owner could perform the actions if the token has been minted. The costs of checking ownership will be slightly higher as the proxy back to the parent contract has to be checked. Yet, with low usage, this is exceptionally cheaper than a holder having to mint another token.
- A holder can list on secondary without even having to pay anything.
This means that even if a holder doesn't want to hold every token they've been airdropped, they can list on a secondary market without absorbing any cost. When the token is purchased on secondary, it will "become real" and belong to the secondary buyer. With this, no longer is the Child NFT following the Parent NFT.
- On-chain metadata can reflect the active state of the token character.
Now in the token's metadata, one can display actual states reflecting the character's progression. For example, Cool Cats recently launched their Cool Pets, and while Cool Cats were entitled to a single-token claim for each Cat held, there is no way to know if a cat has been claimed without navigating to the contract or the Cool Cats website. Instead, state metadata can display the variety in token-makeup of an airdropped collection. This isn't just limited to minting either, as this can see a wide range of implementations.
- Evolving to a new generation with Mimetic Metadata is cheaper than minting a new token so that project creators can introduce even further functionality.
Everything is extremely cheap compared to the rest of the ecosystem because we aren't minting a new token any step along the way (besides the first transfer to a new owner). This means it can remain extraordinarily cheap, or more processing than ever before can be packed inside the token.
The future is here. NFT collections will look very different in 6 months than they do today.
- Will you be one of the creators living on the cutting edge?
- Will you be holding tokens from projects thinking differently?
Today, I've open-sourced an implementation of a non-fungible ERC-1155 for anyone to look through or use. As usual, these aren't just words. This is a living piece of code that has already been thought through, broken, fixed, and rebuilt many times.
The final form has not yet been achieved, as there is always room for improvement. First, we must shift our thinking to a new method and expectations surrounding airdrops.
You can find the code here on my GitHub.
During the writing of this article, I stumbled upon EIP-2309 which makes this very simple to do for ERC721s as well so you can find an implementation for that as well — this one does have a few very odd nuances.
With the use of EIP-2309, all that needs to be done is the emission of a
ConsecutiveTransferthe event, and magically all of the tokens appear. There is nothing more that needs to be done.
This implementation can be highly platform-dependent, and I do not have all the resources on all the nuances yet. This is an extremely raw finding and implementation that has become available. The EIP was proposed in 2019 and had largely sat unused until this week. Through my research so far the following confirmations exist:
- Primary NFT aggregation tools maintain all functionality without hiccups
As of right now, basically, any system that has a decent level of system architecture already supports EIP-2309 however there will of course be exceptions along the way. Make sure that you take every precaution possible before moving this into production.
To use this new functionality essentially, all we need to do is create a function that can pass in the start token id and the ending token id and fire it off! You may be surprised to find essentially all implementations of an airdrop like this is incredibly cheap. In these options, we have the ability to initialize:
- Generally with 2309 emitting a
ConsecutiveTransferevent for $9.
- Calldata in the function parameters costs around $900 for 900 tokens.
- Owner checks that use the proxy of the mirror contract live.
- Initialize the normal way with a single Transfer event for each token to the contract.
The preferred method will depend entirely on your situation, but a better method of airdropping exists, and it's right here, ready to be implemented while delivering massive levels of value previously locked behind the gates of quite peculiar mental models.
Need a final example to bring this thought full circle? Let’s use Chainface Arena as an example. A project by Nate Alex that allowed tokens to be placed into the arena.
Version 1 concludes however evolution to 1.1 is soon on the table for all ChainFace Arena holders. Now though, holders of a previous collection are going to have to mint another token and drain further funds from their available liquidity. Additionally, by using Mimetic Airdrops there is no reason that the token actually needs to be minted until the game has concluded and that is not even accurate 100% of the time depending on the use case.
With Mimetic Airdrops, Version 1.1 would go live and the holders of the OG Arena Warriors would immediately have access to their new tokens. As well as be able to sell them on the secondary market + enter them into the arena when it is opened. Additionally, updating to the use of Mimetic Metadata means Arena 1.2 can be released and the tokens can be upgraded without needing to mint yet another token. A digital arcade of real player interaction.
As always, feel free to yoink my code. All we had to do was slow down and think about what we were trying to accomplish.
Thank you and mad respect if you're not a project creator and made it this far. These articles are written precisely to make sure that you can also understand and share this article with your friends so that the industry can improve. Without you reading, learning, and sharing everything, I realize it would be for nothing. Thank you, I will see you in the following article.