Are you an Ethereum blockchain developer, or an entrepreneur planning to issue Ethereum-based tokens? You might be looking around to find what ERC standards mean and how they matter to you. I offer the ultimate list of ERC standards in this article.
What are ERC standards?
An ‘Ethereum Request for Comments’ (ERC) is a document that smart contract programmers using the Ethereum blockchain platform write. They describe rules in these documents that Ethereum-based tokens must comply with.
The Ethereum community uses a process called the ‘Ethereum Improvement Proposal’ to review these documents. They comment on it and as a result of that, the developer that created the document may revise it.
The Ethereum community accepts some of these documents after working through the EIP process, finalizes it, and then developers implement it. This is how the document becomes an ERC. In other words, ERCs originate as EIPs and could address different areas, for e.g. tokens, registration name, etc.
ERC STANDARDS – SIMPLY EXPLAINED INFOGRAPHIC
While there are several standards, I will describe the following key ones:
- ERC 20;
- ERC 165;
- ERC 721;
- ERC 223;
- ERC 621;
- ERC 777;
- ERC 827;
- ERC 884;
- ERC 865.
1. ERC 20 standard
ERC 20 is the most popular token standard and most ICOs that have issued their tokens on the Ethereum platform have used it. If you are an Ethereum developer, you can code your smart contracts assured with the knowledge that it can easily interact with ERC 20 tokens.
Just like the Ethereum developers needn’t know anything more about that token, wallet developers can also breathe easy! They don’t need to do any custom development or integration steps to ensure the token works with their wallet app.
It’s a fungible token standard. This means that two coins of any token built on it have the same value at a given point in time. Take the example of LockChain, the decentralized 0%-commission travel marketplace. Their LOC token follows ERC 20, and 1 LOC token has exactly the same value as another LOC token at a certain point in time.
There is a standard protocol to follow, hence issuing new tokens using ERC 20 standard is easy. Read more about it in “Beginner’s Guide: What is ERC20?“.
2. ERC 165, which supports ERC 721
This is really a standard for a method, instead of tokens. However, it’s important for another token standard, ERC 721, which can’t be implemented without it. More on ERC 721 later.
A smart contract needs to interact with crypto tokens. While all contracts can interact with ERC 20 tokens, it’s different for other ERC standards for tokens, like ERC 721. Smart contracts need to implement specific interfaces to interact with tokens following other standards.
Now, the Ethereum development community needs to know which interfaces a smart contract implements, and there is a need to publish this information. This is because they need to know in which ways they can interact with that contract.
There wasn’t a standard method to detect interfaces that a smart contract uses, and to publish it. ERC 165 standardizes a method for this, besides standardizing the identification of interfaces. Read more about it in the EIP 165 proposal document.
3. ERC 721 – the standard for non fungible tokens
Do you want to develop an Ethereum DApp game like CryptoKitties? Axiom Zen, a Vancouver, British Columbia, Canada based company launched it in the last week of November 2017, and by the first week of December, it went viral! Players spent millions of US dollars worth of Ether on it within a week.
In this game, players can buy, sell, and breed cute digital kittens. With the transparency that the Ethereum blockchain platform offers, everyone can see the rules of the game, hence the competition is fair. If you can breed rare breed of digital kittens, you can get a higher price for them.
The reason I discussed CryptoKitties here is that every digital kitten in this game is a unique digital collectible. Each one commands a different price, hence you can’t use ERC 20 standard for the kittens. You need a non fungible token standard, and that’s what ERC 721 is. There are other use cases too for non fungible tokens, for e.g. power distribution sector can use them.
A smart contract that will interact with ERC 721 tokens must implement a separate interface, and hence it needs to follow the ERC 165 standard. Read more about ERC 721 in the EIP 721 proposal document.
4. ERC 223 – to prevent loss of ERC 20 tokens
If you send ERC 20 tokens to smart contracts that can’t handle tokens, this action burns the tokens, and you can’t recover them. ERC 223 proposes to prevent this.
Developers can either accept or decline tokens arriving at their smart contract addresses. It specifies functions that a contract can code so that if it can’t accept token, the transfer will fail. This doesn’t burn any token.
While ERC 223 intends to save wealth lost accidentally, it’s not yet implemented. No tokens use it, and crypto exchanges may not be prepared for this standard.
Also, Ethereums’ move to implement ‘Ethereum Name Service’ (ENS) will make such transactions very rare. Hence we need to see if the Ethereum community will implement this proposal. Read more about this standard in the ERC 223 GitHub documentation.
5. ERC 621 – to modify the total token supply
An extension to ERC 20, this standard is to increase or decrease total token supply using two functions, i.e. ‘increaseSupply’, and ‘decreaseSupply’. The proposal recommends that only contract owner or trusted users should use them.
Cryptocurrencies are mathematical money, unlike fiat currencies where central banks can increase or decrease the supply. Total token supply is one among many factors determining token appreciation and impacts the economics of a token.
This proposal is a draft, and we need to see whether the Ethreum community will implement it, given the wide-ranging impact. Read more about the proposal in the EIP 621 GitHub documentation.
6. ERC 777 – to reduce friction in crypto transactions
While invoking a smart contract, after the first transaction, the ERC 20 standard requires another transaction to verify whether the criteria are met. The smart contract is invoked only after this. This increases the number of transactions, effectively causing friction.
ERC 777 is a proposed standard that includes a function to identify receipt of tokens and start a smart contract immediately after the first transaction. While lowering the transaction overhead, it also allows a user to reject incoming tokens from a blacklisted address. Blacklisting of an address can be for various reasons such as hacking or illegal activities. An ability to decline payment from such an address improves security position of an Ethereum DApp.
ERC 777 upholds all strengths of ERC 20. The Ethereum community hasn’t implemented it yet, however, you can read the proposal in the EIP 777 GitHub document.
7. ERC 827 – enables token transfer for a 3rd party to spend it
It’s another extension of ERC 20, however, it intends to resolve the problem that ERC 223 tries to solve, in an enhanced manner. If this standard is implemented, a token holder can transfer token while also approving a 3rd party to spend it.
With this ERC standard, wallets and exchanges can reuse tokens, because both parties agree on specific criteria for a 3rd party to spend a dynamic amount. The Ethereum community hasn’t implemented it yet, however, you can read more about this proposal in the EIP 827 GitHub documentation.
8. ERC 884 – to tokenize stock
Recent legislation in the US state of Delaware now allows companies to use blockchain to maintain share registries. Among proposed ERC standards, ERC 884 intends to take advantage of it. It will designate each token as a share of a corporation incorporated in the Delaware state.
To comply with regulations, ERC 884 also includes the following:
- Identity verification and mandatory whitelisting of token holders;
- The corporation can prepare a list of shareholder according to the regulatory requirements;
- Recording of information regulators mandate;
- Record transfer of shares according to regulatory requirements;
- Only whole value of tokens, i.e. no partial value;
- Shareholders that lost their private key or tokens must get them back in a new address.
Implementing ERC 884 requires an off-chain database for various ‘Know Your Customer’ (KYC) requirements. It’s still a draft proposal, and you can read it in the EIP 884 GitHub document.
9. ERC 865 – to help those who are new to crypto
As a user new to crypto, when you try to transfer Ethereum-based token, you suddenly find that you need to pay miner fees in Ether. It increases friction for you.
Among ERC standards developers in the Ethereum community has proposed, ERC 865 intends to make it easy for new crypto users. It proposes using the token to pay the miner fees as well. It’s a draft proposal, and you can read it in the EIP 865 GitHub document.
Note: I recommend that you read “The Ultimate Blockchain Technology Guide: A Revolution to Change the World” before you study ERC standards in detail.