Why ERC721 sucks and we need a new standard
The ERC721 is not perfect and there is a tons of room for improvement.
The ecosystem needs a better NFT standard, there are tons of money in the simple ERC721 standard. I did research on almost all known NFT related standards, had conversations with a couple of devs that either worked on one of those standards or are very familiar with the ERC721 and other NFT related standards. This article is about NFT standards that are live, related draft standards, proposal for the new standards and contains handy links regarding the NFT standards. My knowledge graph and research about the NFT standards is live. Please reach out if you would like to contribute to this standard.
The ERC721 is in fact very simple standard which makes it the most used NFT standard. It has all the basic functions that were required for the standard and token transfer back in the 2018. Although this standard was introduced by Dieter Shirley in late 2017 and proposed to allow smart contracts to operate as tradable tokens similar to ERC20 token standard.
The standard itself has functions of ERC20 alike token standard which makes it easier for existing wallets to display simple information about the token. These functions let the smart contract that fits this standard act like a common cryptocurrency such as Bitcoin or Ethereum by defining functions that let users perform actions such as sending tokens to others and checking balances of accounts.
ERC20-like functions simplified:
- Transfer token between accounts
- Get (display) current balance of an account
- Get specific token
- Total supply of the token available on the network
- Approve amount of token from an account can be moved by 3rd party account
To learn more about these standard check out my research notes as I don't want to keep this article long but rather informative
The main difference between ERC20 and ERC721 is that 721 tokens are unique as they are non-fungible
This standard is adding feature for smart contract to send, receive, check for total supply, check if the amount is available to transfer. This will gives us knowledge of the total supply of coins in circulation, wallet balance of a particular token and the ability to transfer a token.
As the name of the standard suggests this standard is a multi token, which means that there is a mechanism implemented that can be used mainly for gaming industry. This standard allows user to simply transfer for example 100 items without the need of creating smart contract for every item which would make impossible for a game studio or an author of those items to transfer them to a game and it would cost a fortune with the current gas prices to upload that many items with a single contract solution. This standard makes easier to store multiple items in a single smart contract with the minimum possible amount of data needed to recognise (distinguish) the token from others. The contract contains tokenID that contains the configuration and all the behaviour governing the token collection. The ERC1155 token standard introduced the Atomic swaps which is trading multiple items by batching the items into one or multiple accounts in a single transaction . Each item has its own unique identity and can be traded, indexed and fully fungible with others.
The difference between ERC721 and ERC1155
The ERC721 is a single token standard which means that it allows you to create one smart contract for the NFT and transfer it. On the other hand the ERC1155 is great for creating collections and game items where the requirement is to create a lot of items, every item has Token ID based on which is recognised, it has function of storing data with minimum amount of data needed to recognise the token from others. ERC721 is more pricey as it is creating whole smart contract which on the other hand ERC1155 is batching the NFTs and stores them on in one ERC721 contract.
The ERC1155 is extending the features of ERC721 and adding multi token features like storing data of multiple items, atomic swaps — trading multiple items, multi transfers and unification.
Those following standards are in the draft stage which means that they have been proposed but not implemented on the Ethereum mainnet which means that they are not usable yet. Unfortunately there is no ETA on when those standards will be live as there are many other infrastructure supporting EIPs that needs to be implemented on the Ethereum chain.
This standard is enhancement to the ERC721, it standardises way to handle royalty payments for ERC721 across platforms as every marketplace has it’s own royalties and none of them works on secondary marketplace.
This standard includes publicly viewable royalty, which unifies the royalties so they are set and provides a function that returns the amount to creators address. Improving batching and minting functions which makes minting NFT cheaper by introducing new method of minting new NFTs.
Defines mechanism by which clients (dApps) may verify that the token metadata has been delivered without unexpected manipulation.
Proposal for the new standard
The NFT platforms on Ethereum network are running on standard that was proposed in 2017 and implemented in 2018, the Ethereum network has changed drastically since then and so the need for new standard is urgent.
My idea for this standard is to be very similar to plug and play kinda solutions, containing a lot of diverse elements that many of the proposed standards (EIPs) has and add some functionalities to it. I'm open regarding this new standard and would love to hear the community — developers, builders, NFT platforms to give ideas on how together we can improve this standard.
The key elements of a new standard that I came up with:
- Include on-chain hash function so the user (buyer) of the NFT can download the artwork file
- Increase security of the standard — super important feature
- License of how the artwork can be replicated, republished and resell
- Add Multi chain support so this standard can be used on another chains outside of Ethereum which will make it easier for builders to use the standard itself
- Define support for 3D standards
Those are just my ideas that I came up with that can improve this standard. I'm open to hear other people’s ideas and how to implement them. My Twitter DMs are open and I would love to hear your feedback!
Why I decided to improve the NFT Standard
There is incremental need for improved standards but also lacking support for new non financial standards. I believe that improving the NFT standard will help out tons of builders, artists, collectors to come to the space and explore the beauty of the decentralised space.
I’m thrilled to lead this initiative as together we can create super NFT standard 🦾.
This initiative is supported by the Ethereum Magicians as we would love to support Ethereum Ecosystem ✨