The Ethereum blockchain has risen to popularity on the back of its programmable nature, allowing for the construction of decentralized applications, smart contracts, NFTs (non-fungible tokens) and cryptocurrencies.
Those seeking to better understand the platform will doubtless have come across terms such as ERC-223 and ERC-777 and wondered what they refer to. Simply put, they refer to community standards that have been officially adopted by the blockchain, allowing developers to build interoperable tokens that behave in predictable ways.
If you’re still scratching your head, read on to avoid the crushing embarrassment of confusing your ERC-20s for your ERC-721s.
Why Have Different Token Standards?
The list of things that can be accomplished on a blockchain is ever-expanding. Left alone, however, every new innovation would have to rebuild from the ground up. Token standards are there to ensure the foundations are already laid and to ensure compatibility between tokens on the same standard and the smart contracts that issue them. That way, when a new token is issued, it remains compatible with existing decentralized exchanges, for instance.
The prefix ERC itself stands for “Ethereum Request for Comments”, and refers to application-level standards and conventions. Token standards are just one type among more than 20 finalized standards contained within the category, with many more in the review and draft stage. Aside from tokens, they cover everything from wallets to smart contracts.
Let’s take a closer look at some of the token standards to see how exactly they differ from one another.
First proposed in 2015, ERC-20 is perhaps the most important standard, a basic understanding that fungible (interchangeable) tokens on the Ethereum network rely on – whether they are virtual currencies, voting tokens or anything in between. Popular ERC-20 tokens include Chainlink ($LINK) and Tether ($USDT).
The standard contains a list of rules dictating things like the total token supply, how tokens can be transferred, and how transactions are approved. The six mandatory code functions of the standard are: totalSupply, balanceOf, transfer, transferFrom, approve and allowance.
Taken together, these act as a standard interface for enabling all aspects of the sending and receiving of ERC-20 tokens. But the standard was found to have some issues, not least the existence of a bug in the transfer function where tokens can be transferred to an incompatible account and destroyed in the process.
That spurred the development of new standards such as ERC-223, which has the capacity to display errors and cancel faulty transactions. A new function is included in the standard, tokenFallback, which ensures that tokens can only be sent to smart contracts with the appropriate functionality. If they are not, only the gas fee is wasted.
Both aforementioned token standards are for fungible tokens, but ERC-721 is the standard interface for non-fungible tokens. That means tokens that are non-interchangeable and therefore unique. They are typically used to prove ownership of a particular digital asset, with the technology powering the boom in PFP series such as CryptoKitties.
The standard enables smart contracts to issue tokens that have different values to other tokens issued from the same smart contract. As such, NFTs have a variable tokenId that makes them unique. Web 3 applications are able to read that and convert it into a unique output such as the combination of accessories on a character, or a specific seat for a physical event.
ERC-777 is another fungible token standard improving over ERC-20. Instead of mostly being about fixing bugs like ERC-223, ERC-777 actually extends token functionality with new features. It was designed to make token transfers easier, allowing developers to know whether a smart contract can receive tokens before they are sent, for instance. The standard also offers more control to users with the ability to black- and whitelist addresses, as well as being backwards compatible with ERC-20.
Finally, ERC-1155 is notable for being a token standard that can contain both fungible and non-fungible assets, allowing a smart contract to deal with a combination of token types such as ERC-20 and ERC-721. The thinking behind the standard is to simplify transactions involving both kinds of token while also fixing problems with ERC-20 and ERC-721 standards. That means more efficient trades and the bundling of transactions to reduce gas fees.
All these standards originated as Ethereum Improvement Proposals which are creatable by anyone but must garner support from the community before being adopted. If you have any ideas for the next generation of Ethereum token standards, get involved!