How Does It Work?

Read more about the specific functionality that makes the ERC404 token standard a whole new asset class.

Learning Curve

When first learning about the ERC404 token standard, it can be a steep learning curve as it introduces new concepts that have yet to be explored. Unless you're a Solidity Contract Dev, you will might get lost pretty quick. The concept to merge the functionality of an ERC20 and ERC721 (NFT) token sounds like daunting task, but thankfully the Pandora team pushed forward for the benefit of all of us.

We find it helpful to just paint the scenarios so you can see how this new token functions in real-world applications, rather than bore you with the granular details.

The Scenario

It all starts when the new contract owner deploys the ERC404 contract. The initial tokens created (minted) by the contract are sent to the deployer wallet as standard ERC20 tokens. Meaning they can be sent to any wallet just like a normal fungible token.

Ok nothing new so far.. But..

This is where the ERC404 token takes ahold, as soon as 1 token is sent to a new (Non-Whitelisted) wallet, the token will automagically be minted into an ERC721 (NFT) token. So when the new wallet views the token that was just sent to them, they will see it as a new NFT.

Magic right? Well, yes, sort of.

The ERC404 standard contract handles the exchange of ERC20 / ERC721 tokens through a Burn / Mint function. So as the ERC20 token is sent to a wallet, it will get burned, and re-minted as an NFT token.

Pretty sweet right?

Now, the cool part.. Lets say that user that just received their NFT wants to sell a portion of their NFT. Up until now this wasn't possible as NFT's (Non Fungible Tokens) are not able to be fractionalized. This is the core innovation of the ERC404 token. The user has the option to fraction off part of their NFT into an ERC20 token again, and sell it on say Uniswap. This is where the "instant Liquidity" idea comes from. Instead of listing your NFT on say, OpenSea and hope that someone buys it, you can fraction off say, 0.5 Tokens from your NFT and sell them instantly on an exchange.

When this happens the user will no longer "Own" the NFT per-say, but they still own 0.5 of the NFT token. If at some point they regain, or purchase 0.5 more of the Unfound Token, they will be made whole once again and they will have the NFT in their wallet. Except its not exactly their NFT. A new NFT will be minted upon being made whole once again, with a new token ID from the innovate ID Management system, and the corresponding metadata from that new ID. So the user gets a new NFT with new Traits, how cool is that!

Ok, So what is Whitelisting Then?

In the previous scenario we described a basic example of creating, and sending the ERC404 token. But since the token gets minted into an ERC721 (NFT) token as soon as its sent from the deployer wallet, how would we list the token on an exchange? Or what if a wallet wants to hold the ERC20 version of 1 token, instead of it being minted into an NFT?

This is where Whitelisting comes in. You can whitelist any address you want, and when that address sends / receives an ERC404 token, they will be exempt from the Minting / Burning functionality. This not only maintains the ERC20 token, but saves on gas fees when doing basic transfers.

Last updated