Difference between ERC20, ERC721, ERC23 and ERC223 Tokens
What is a Token?
In the previous post I mentioned that the primary difference between Ethereum and any other cryptocurrency is that Ethereum is not just a currency, it’s a global computing engine. Ethereum allows creation of distributed applications where smart contracts play a central role. Another important concept within the realms of distributed apps is a token. Tokens can be thought of as a currency within an application built on top of Ethereum. Normally when you hear about an ICO, it’s the tokens that are sold during an ICO.
Differences between Tokens
You have probably heard about ERC20. It is a token specification for Ethereum. ERC20 is the most popular token type. However, it’s not the only one. There is less known ERC721, ERC23 and ERC223 specifications. I will highlight some key differences between these specifications.
First thing that you should keep in mind is that there is a tight connection between a smart contract and the token. When we speak of different token specifications like ERC20 or ERC21, it means that the smart contract satisfies certain requirements, i.e. it follows the specification defined for each token type. It is also possible to create a token that partly implements the specification. A good example is The GNT Golem Network Token, which is only partially ERC20-compliant.
ERC20 is the most popular token specification. In order for a smart contract to satisfy ERC20 specification, it must define such functions as total supply, checking of account balance and transfer of token. A smart contract may provide much more functionality (and many do) however as long as it implements the basic functions required by ERC20 standard, it becomes ERC20 compatible.
ERC20 tokens sometimes have problems like lost Ethereum. ERC23 and ERC223 are supposed to address the issues found in ERC20 tokens. ERC23 and ERC223 are backwards compatible. It means that any wallet that supports ERC20 token can be used with ERC23 and ERC223 tokens.
If ERC23 and ERC223 try to improve ERC20 token, ERC721 token is a very different beast. ERC721 tokens non-fungible tokens. In economics, fungibility is the property of a good or a commodity whose individual units are essentially interchangeable. For example, bank notes (and thus money) are fungible. All $20 bank notes are equal and can be used for payment. Moreover, one $20 bank note is equal to two $10 bank notes. The same goes for precious metals. An ounce of gold is an ounce of gold.
How can a non-fungible token be useful? One usage is to create digital collectible items on the Blockchain. A notable use of ERC721 tokens is a Blockchain-based game CryptoKitties. In CryptoKitties players can buy, sell, trade, and breed digital cats. Without ERC721 tokens this game would not have been possible. ERC20 tokens are simply not suitable for this task. While ERC721 tokens are tradable, they are non-fungible. In other words, one ERC721 token cannot replace another.
ERC721 tokens are ERC20 compatible and thus define all functions defined by ERC20 token standard. Additionally, ERC721 tokens special ownership functions that make them so special. Other notable applications using the standard are CryptoCelebrities and EtherTulips. It is expected that more and more applications will be launched based on ERC721 tokens.