During the Initial Coin Offering, ERC-20 phrase comes up regularly. This phrase is referring to a certain token standard which is widely available on the Ethereum platform. There are many proposed ERC standards but only a few of them gain such popularity as ERC-20.
What is ERC?
ERC stands for Ethereum request for comments. These are technical documents written by Ethereum developers for Ethereum community. Each such document contains a set of rules required to implement tokens for the Ethereum ecosystem. To create standards for the Ethereum platform, a developer submits an Ethereum Improvement Proposal (EIP). Each EIP contains protocol specification and smart contract standards. Once that EIP is approved by a committee and finalized, it becomes an ERC.
You can say ERC is a specific type of EIP. ERCs are application-level conventions and standards, and they may be of different types (token, URI schemes, library etc.)
An EIP may exist in four different states:
- Draft - open for discussion
- Accepted - planned for immediate adoption
- Final - implemented EIP such as ERC-20 or ERC-721 token standard
- Deferred - dismissed for now.
From all of the EIPs, only a few are final and implemented.
ERC-20 — the most popular token standard
Most of the ICOs (if not all) making a crowdsale, they implemented and issued ERC-20 tokens. ERC-20 was proposed by Fabian Vogelstellar and Vitalik Buterin in 2015 and officially formalized in September of 2017.
The key benefit we get here is that any application or other smart contracts can interact with a token in a standard manner without a need of knowing other details about the token. In a world where we have hundreds if not thousands of ERC-20 tokens, thanks to finalizing API all exchanges, the wallet can add new tokens to their offer without any problems. All they need to know is the Ethereum Token address that implements the standard.
Sole purpose to create this standard was to enable re-usability of tokens on the Ethereum platform using standard interface.
Security and Utility Tokens
There are plenty of ERC-20 tokens and they are created for different purposes. But these tokens can be differentiated into two main categories, Utility Token and Security Token.
The first type is mainly used as a payment method for different services or products. It allows accessing certain service e.g. file storage platform. The defining characteristic of utility tokens is that they are not designed as investments. Utility tokens are simply app coins or user tokens.
The second one is treated like shares in a company or like having different kinds of assets, for example, gold. In other words, a security token is a digital asset that derives its value from an external asset that can be traded. Therefore, these tokens are subject to federal laws that govern securities.
ERC-20 gained huge popularity but it is not a perfect standard. Developers and users started to find problems and new usage for tokens and plenty more of ERC standards were proposed. Only a few of them attracted attention thanks to the value they are adding. The explanation which problems different token standards try to solve can be found below.
Different token standards
Some of the proposals fix or adds new functionality to ERC-20 tokens and others token standards have a completely new approach and applications.
This standard tries to fix one of the problems of the ERC-20, where if a user mistakenly sends tokens to a smart contract not designed to handle them, the tokens get stuck or burned.
Example from official EIP: if you send 100 ETH to a contract that is not intended to work with Ether, then it will reject a transaction and nothing bad will happen. If you will send 100 ERC20 tokens to a contract that is not intended to work with ERC20 tokens, then it will not reject tokens because it can't recognize an incoming transaction. As the result, your tokens will get stuck at the contracts balance.
Tokens or in this case a real money were really lost to this case due to mistakenly sending tokens to a smart contract which is not designed to handle tokens.
ERC-223 is still a draft, not an accepted standard. Not many ICOs used this EIP. Previously such transfers happened a lot but their occurrence is lowering as users are getting more educated on the crypto and blockchain. With the introduction of ENS or Ethereum Naming Service (it’s like a DNS but for Ethereum addresses, instead of the long address you can just provide adrian.hetman.eth and it will be translated to proper Ethereum address) such mistakes will be non-existence.
It’s another extension to an ERC-20 standard which introduces two new but important functions: Increase Supply and Decrease Supply. Before most of the token sales, we need to decide token supply before launching an ICO. Two new function enables changing a number of tokens in circulation even after an ICO is long ended. The ERC-20 standard enables setting token number only once, during contract creation and ERC-621 changes that.
Again, another extension for ERC-20 (there’s a lot of such proposals out there), which allows sending additional data alongside with the token. It can be used to solve the same problems solved by ERC-223 but with higher flexibility thanks to the transmission of additional data. Lately, this standard has been gaining popularity against ERC223. It allows the transfer and approval of tokens to be consumed by third-parties. It is completely compatible with ERC20, adding three new functions. It’s worth remembering that it’s still a draft and some issues have been found with the current implementation.
I assume everyone heard about CryptoKitties, game where you can buy digital cats which every cat is unique. Currently, this game is the most popular game which uses non-fungible tokens and this game inspired William Entriken to create ERC-721 standard and opened eyes to the community that such standard is needed.
The fungible ERC-20 token has every unit of a token equal to another one. Each ERC-721 token is unique, non-fungible, has properties only specific to that one token. You cannot divide ERC-721 tokens and trade part of it. Every token has different value and can be sold for different prices.
ERC-721 is finalized standard and as much popular or even more than an ERC-20 and you can find a safe implementation of it in OpenZeppelin framework.
Such non-fungible tokens can represent characteristics of any item, physical or digital e.g. house, car, trading card game like Pokemon, game items etc.
The current solution of using ERC-20 or ERC-721 in games makes the exchange of such items/tokens quite slow and you can only exchange single objects. ERC-1155 standard changes that.
This proposal is an extension to an ERC-721 standard, created especially for a game industry but its proposed usage can be also applied in other industries. Unlike other standards group of tokens will be stored in one smart contract. This will allow faster transfer of items in a game because in one transaction multiple different tokens can be sent at once.
Standard was invented by Witold Radomski from a company names Enjin. It’s worth remembering it’s still a new proposition, it was posted on GitHub 17th of June 2018 and it is still a draft.
Ethereum platform is still evolving, it’s a continuous process which lasts since its moment creation by Vitalik. As an example how in a new way you can use an Ethereum platform are ERC standards. Each ERC brings something new and unique, solves the current problem or is just an extension to current EIP. Tokens whichever they are, ERC20 or ERC721 are just a fresh look at how we can use a Blockchain technology. These finalized standards can be used in many ways and open the doors to something new and better.