Question To Address
- What is ERC20?
- What does ERC20 mean?
- What is the full form of ERC20?
- What are ERC20 Tokens?
- Is ERC20 related to Ethereum?
- Why should I bother to learn about ERC20?
Have you been intrigued with any of the aforementioned questions? If you are currently nodding your head in a resounding ‘YES’, then you have come to the right place!
As part of this post, we will try to address every question you might have—in and around ERC20—and uncover all the facts, one layer at a time.
What is ERC20?
The ‘ERC’ in ‘ERC20’ is the abbreviation for "Ethereum Request for Comments”. Precisely speaking, ERC is the official protocol responsible for proposing improvements to the Ethereum Network. The number ‘20’ in ‘ERC20’ just signifies the unique proposal ID.
In the last couple of years, the “ERC20 Standard Protocol” has played a pivotal role of an enabler, around which the entire Blockchain & Cryptocurrency industry has flourished. The ERC20 protocol has brought in the much needed standardization—which was obviously missing prior to the inception of ERC20 protocol—which accelerated the development of hundreds and thousands of DApps (Distributed Applications) onto a universally standard platform.
The “ERC20 standard protocol” also allowed all the developers & enterprises to tokenize their projects and conduct crowed funding, in the form of ICOs. Long story short, how much ever Blockchain & Cryptocurrency industry has accomplishment till now, a lot of it has been possible due to the advent of a standard protocol like ERC20. If the market-cap of Ethereum & all the other ERC20 tokens are put together, the figure would easily topple Bitcoin from its numero-uno position for its market-cap.
ERC20 Protocol & HTTP Protocol
How the HTTP protocol enabled the internet to scale to the levels that it has today, on similar grounds, ERC20 is a protocol standard that is driving the growth forward for the Blockchain space.
It outlines a set of commands that a token—on the Ethereum Network—must adhere to and implement. ERC20 is not a technology, nor software, nor a piece of code, it basically is a specification standard for tokens. If a token implements the prescribed technical specification, it becomes an ERC20 token.
The ERC20 protocol standard contains basic functions that any useful token should implement, in order to enable its trades on the exchanges. These include inquiring the balance of tokens at a certain address, approve the transfer of token, transferring tokens and the total supply of tokens.
Concept of ERC20 Token
It’s a universal fact that every person has an innate behavior, his or her individuality or flavor. This variable flavor becomes completely apparent amongst developers as well, as different developers achieve the same end result but with differently scripted code. This leads to different developers creating different interfaces for the same token.
For example, one developer may use the function name “transfer” for transferring the token but other developer may use the function name “Send” for the exact same functionality. This type of fragmentation leads to lot of redundant duplications and an inconsistent experience for the end user.
Before ERC20 standards came into existence, all new tokens that came out as ICOs on the Ethereum Network, implemented their own flavor of all the functions. Each one had its own list of functions for transferring tokens, function names and different arguments.
This kind of fragmentation & irregularity in coding standards lead to a number of challenges.
Below listed are some of the most significant challenges:
(1) Every time a token had to be listed on a cryptocurrency exchange, the exchange had to take up the cumbersome task of tweaking their interface, in order to integrate with that specific token.
(2) Interaction with the token required complete knowledge of the functions, its names and behavior, in order for the user to interact with a specific token.
(3) The scenario posed a situation where it became almost impossible to create user friendly tools for managing the tokens.
The ERC20 specification standard addressed all the above challenges through standardization i.e. specification for creating custom tokens became homogeneous and coherent.
(1) The standard defines a set of functions;
(2) Name of the functions;
(3) Arguments they take;
(4) The return value they have;
(5) And the behaviors that is expected from these functions;
(6) A set of events that need to be emitted from the token.
In order for the token on Ethereum to be ERC20 compliant, it must implement the six functions and the two events. In addition to the standard function and events, one can have their own custom functions and events, primarily for token administrative activities.
Advantages of Standardizing the Token Specifications
(1) Uniformity Across the Tokens: It lead to the creation of standard tools for interacting with multiple types of token. For e.g. the token developers do not have to create tools of their own. Moreover they also don’t have to create their own specifications.
Once an ERC20 compliant token gets created, anyone having knowledge of ERC20 standards can easily understand the behavior of the token.
(2) Listing for Trading on Exchanges: A standard compliant token can easily be listed on any exchange that supports that standard such as ERC20 and trading on the exchange became a smooth process.
The ease of use and ease of listing on exchanges has led to the creation of more and more ICOs on the Ethereum Network. This in turn has given birth to countless number of innovative projects in the Blockchain space.
The token on the Ethereum Blockchain are assets that have value or in order words assets capable of being owned or controlled to produce value. They are also sent and received like Bitcoin, Litecoin, Ethereum, Bitcoin Cash etc. But the difference between these tokens (created on Ethereum) and a standalone cryptocurrency coins like Bitcoin is that ERC20 tokens piggyback on the Ethereum network, hosted by Ethereum addresses and sent by Ethereum transactions.
What is ERC223 Token?
The latest versions of Solidity and Ethereum Virtual Machine have brought a whole new bunch of standards, namely ERC223. The ERC223 protocol is backwards compatible which allows it to be compatible with ERC20. This effectively means that all those DApps that support ERC20 will automatically support ERC223 standard as well.
Also, ERC223 amalgamates the token transfer function among wallets, and bonds into one single function called ‘transfer’.
The most significant difference between ERC20 and ERC223 is that the later no longer allow token to be transferred to a contract which does not have a withdraw feature. ERC223 tries to rectify the flaws that ERC20 had.
For e.g. if someone sends his token into a contract that does not have a withdraw function, the token will simply be locked away and can never leave that contract, rendering them useless. Because of this, hundreds of thousands of dollars, worth of ERC20 tokens has been locked up. The Merging functions also serves as a mode of saving on transaction fees, in terms of Gas.
(1) Follow either ERC20 or ERC223 standards when you want to create a token on Ethereum to get the benefits of standardization and easy listing on exchanges.
(2) If you are an investor, learn the token structure before you invest. If the token is ERC20, pay special attention before sending it to a contract address.
(3) For developers on Ethereum Blockchain, it is recommended to shift from ERC20 to ERC223 standards.