1. There are two most important standards on Ethereum: ERC-20 and ERC-721. ERC20 is used to issue coins, such as $SHIB, $PEPE, $APE, etc., which are all issued using the ERC20 standard; ERC721 (including improved ERC721A, etc.) is used to issue NFT, such as BAYC, Azuki, etc. are all issued using this standard. NFT.

2. NFT has the problem of indivisibility and insufficient liquidity. For this reason, many NFT fragmentation, staking and other liquidity-promoting services have been spawned, such as Blur, flooring, BendDao, etc., but these tinkerings have not solved the problem from the protocol level. On the contrary, it increases complexity and reduces security.

3. Coins issued using ERC20 do not have these problems. They are naturally divisible and have derived many gameplay methods such as defi. Can ERC20 features be introduced at the protocol level of NFT? An accidental error code accident generated by ChatGPT mixed the two protocols together, which inspired the ERC404 team. @0xacme wrote the first-generation protocol standard of ERC404 and released the first ERC404-based project Pandora.

4. I immediately analyzed the contract code of ERC404 and found that many people on Agreement etc. I won’t tell you the code here, but try to introduce ERC404 in a language that liberal arts students can understand:

(1) If I release a set of CryptoPunks project with a total of 10,000 units using the ERC404 standard, and you free mint two, you go to Opensea to check and find that the two NFTs in the wallet are CryptoPunk#3099and CryptoPunk #3100, one It's the floor, and the other is a rare alien punk! You go to Uniswap to check again and there are 2 $CryptoPunk coins in your wallet. Note that there is no exchange of graphics and coins here, nor do you have 2 NFTs + 2 coins. The graphics here are the coins, and the coins are the graphics!

(2) If you think CryptoPunk#3099is not good-looking and want to sell it, you have two options: The first option is to go to Opensea to place an order to sell this NFT, which is the same as ordinary NFT transactions. The second option is to go to Uniswap to sell your 1 $CryptoPunk coin. Note here that before you sell the coin, you must first transfer the Alienpunk NFT to another wallet, because when you sell it as a coin , the protocol does not know which NFT corresponding coin you want to sell, it will sell your last NFT corresponding coin first.

(3) Or you are optimistic about this project in the long term and just want to sell some $CryptoPunk coins and keep the rest. You can sell only 0.2 $CryptoPunk coins on Uniswap (or 0.000001, which can be divided into up to 18 decimal places. Again, sell coins before transferring Alien Punk to other wallets, leaving only the floor), leaving 0.8 coins. But when you go to OpenSea to check, the floor NFT in your wallet is no longer there, because your total number of $CryptoPunk coins is less than 1, and your NFT has been burned.

(4) After two days, the $CryptoPunk currency keeps rising. You feel that you have sold out. Fomo wants to buy more, so you go to Uniswap and buy 0.3 $CryptoPunk. At this time, your wallet has 0.8+0.3, a total of 1.1 $ CryptoPunk, you go to Opensea to check and find that there is another CryptoPunk NFT in your wallet, but this is no longer the original floor CryptoPunk #3099, but a new NFT that the protocol randomly mints for you, CryptoPunk #4062, a Hoodie, What a bad luck! So you quickly went to Opensea and sold the NFT at a high price. At this time, your wallet has no NFT, and only 0.1 $CryptoPunk coins are left.

(5) From a global perspective, this project has a total of 10,000 $CryptoPunk coins, and ideally there will be a maximum of 10,000 CryptoPunk NFTs (all wallets are integer coins).

5. Of course, the above is the effect of the ideal ERC404 implementation. There are still some problems in the first-generation protocol, such as:

(1) Every time a new NFT is generated by transferring tokens, a number is added to the original highest ID number, so that CryptoPunk#3099will appear. After being burned, it will never come back. Instead, CryptoPunks #10001, #10002... will appear. , is no longer a fixed 10k image, which conflicts with the immutability (the most precious attribute) of 10k NFT. You can add unmintedid mapping to the protocol contract, and the id generated each time will be randomly selected from this mapping to solve this problem.

(2) When the number of transferred coins exceeds 1, it is stupid to burn an NFT and mint a new NFT in the receiving wallet, instead of transferring an NFT + some change tokens. (I'm not talking about transferring via NFT, but sending transfer tokens).

(3) Gas is very high, and many parts of the contract code can be optimized.

6. The technical strength of the ERC404 project team is very weak. Currently, only @0xacme is writing code. But there are good signs today. The project team has called on technical experts from all parties to participate in the improvement of the protocol and jointly contribute to open source efforts.

At present, ERC404 is still a black iron heavy sword. Although it is ingenious and unworkable, it still has many problems; the improved ERC404 will be reforged into a dragon-slaying sword and a heavenly sword, cutting off the high gas fee and cutting off everything to provide liquidity for NFT. The existing services are patched together, which may really bring the spring of NFT!