ERC Token Standards

ERC == Ethereum Request for Comments.  The literal elements of this acronym may be somewhat confusing.  In simple terms, an ERC is a technical specification for application level standards and conventions on the Ethereum blockchain.  Token standards (ERC20), name registries (ERC26, ERC137), and URI schemes (ERC67) are all related to (smart) contract standards and all are defined/documented formally using the ERC.

An ERC starts with an EIP, which is Ethereum Improvement Proposal.  The EIP is a document that proposes a new feature or improvement for Ethereum or its processes or environment.  An EIP related to application level standards becomes an ERC once adopted.

Ethereum tokens represent digital assets hosted on the Ethereum blockchain.  These digital assets fall into 2 broad categories:  Fungible and Non-Fungible.  The differentiating factor between fungible and non-fungible, as explained below, is whether or not an asset can be interchanged on a 1-for-1 basis with another asset of the same overall size, in the same class.

  • ERC-20: Fungible Tokens

    • Fungible, by definition, indicates that a commodity is interchangeable with another commodity of the same type, in whole or in divisible parts.  An example is fiat currency;  If a person holds a 20 dollar bill, they can exchange that 20 dollar bill for another 20 dollar bill or for 2 tens, 4 fives, etc and the value they hold remains the same.​

    • ERC-20 defines a standard API that allows for the creation and maintenance of fungible assets on top of the Ethereum Blockchain. 

    • The creation and maintenance of the tokens is done via smart contracts

    • Since there is a standardized API, external "applications" such as wallets, exchanges, middleware etc can interact with any ERC-20 compliant token in a consistent and well-understood manner

    • ERC-20 is the standard that provided the foundation for the 2017 ICO craze

    • As of 2020, Etherscan is tracking activities from ~1K unique token offerings, where each of these token offerings represents a unique company and/or project

    • Enhanced ERC-20

      • ERC-20 is not perfect.  There have been bugs, vulnerabilities and inefficiencies identified.  As such, enhanced ERCs have made it into the ecosystem.

      • The two most prominent are numbered 223 and 777.  Here is a comparison summary of the 3 different interfaces:  gist.github

      • This article contains a handy chart summarizing the differences:  101Blockchains

      • As of 2020, most fungible tokens are still using ERC-20 despite the improvements offered by 223 and 777, which, themselves may come with inefficiencies.

  • ERC-1155:  Fungible + NonFungible Together!

    • Mostly focused the gaming community

    • Addresses the issue that games frequently require the use of both fungible and non-fungible assets.

    • ERC-20 and ERC-721 both operate on individual exchanges.  So, in terms of gaming, for example, if one player wanted to buy 70 swords from another player, that would result in 70 transactions and would incur the resultant gas charged from those exchanges.

    • ERC-1155 enhanced and combined the the handling of Fungible and Non-Fungible assets by handling both in a single API and by expanding that API to handle arrays of items instead of just individual items.

  • ERC-1400 - Security Token Standard

    • Most of the above discussion on ERC-20, 721 and 1155 involve Utility Tokens.  Utility tokens confer some tangible benefit to the holder, but they do not confer ownership in the issuing company:  " I bought 70 swords, now I have the tangible benefit of owning 70 swords;  However, I don't own any part of the company/project that I bought the swords from".  

    • Security tokens, on the other hand, typically infer partial ownership from the company that issued the token.  In this respect, security tokens resemble shares in a traditional stock market.

    • In the US, security tokens are regulated by the SEC

    • ERC-1400 is backwards compatible with ERC-20 and ERC-721;  On top of these existing standards for Fungible and NFT, ERC-1400 adds the following:

      • Standard interfaces for issuing and redeeming security tokens.   

      • Standard interfaces for managing token ownership and transfer restrictions

      • Standard interface providing transparency to token holders on how different subsets of their token balance behave with respect to transfer restrictions, rights and obligations.

   Lastly, for developers out there just getting started, the following 2 standards are worth mentioning: