So what is an ERC standard? #
ERC is an acronym that stands for Ethereum Request for Comments. ERCs are application-level standards for Ethereum and can include token standards, name registries, library/package formats, and more. Anyone can create an ERC, but it is the author’s responsibility to clearly explain their standard and foster support for it within the community.
Common ERC standards define a required set of functions for a token type, allowing applications and smart contracts to interact with them in a predictable way.
The most common ERC standard used to date is the ERC-20, a type of standard that makes the creation, use, and exchange of Ethereum-based tokens quite simple.
However, crypto-enthusiasts should be aware of the issues that may arise when different projects adopt limited functionality from each standard, making their smart contracts different from a proper ERC standard. This is a problem I discuss in the final section of this guide.
For now, let’s focus on the different types of ERC standards.
Types of ERCs #
There are a number of ERC standards that serve multiple purposes. The top five in terms of adoption and usability are as follows:
- ERC-20: This is the standard API used for fungible tokens, including transfer and balance tracking functionalities.
- ERC-223: This standard protects users from accidental contract transfers.
- ERC-721: This is the most popular non-fungible token (NFT) standard. While fungible tokens can be divided, non-fungible tokens can not. NFTs can be owned and transacted by individuals as well as consigned to third-parties. NFTs can represent ownership over digital or physical assets.
- ERC-809: This standard is used to rent rival non-fungible tokens. An NFT is described as ‘rival’ if its use/ownership by one individual prevents simultaneous use/ownership by other individuals. ERC-809 allows an owner to rent access to their rival NFTs using a standard set of commands, and users can view all past and current rental agreements from a single wallet interface.
- ERC-1238: This standard covers non-transferable tokens (or ‘badges’).
Pros and cons of ERCs #
There’s plenty of advantages to using ERC standards. Just like libraries, they help developers to use proved code instead of building from scratch. They also enable users to deploy code faster for standard-like processes. Some examples are the creation of token contracts, crowdsales (ICO’s), and even the EVMavericks identity token contract. With ERCs, it’s possible to easily build wizards and oracles on top of smart contract applications in order to allow for better user interfaces.
The problem though is that some ERC contracts – especially those deployed during the ICO boom – do not fully respect the standards.
Although one might think the implications are negligible, that’s not true. For instance, if another developer team wants to use a certain token which has been validated as an ERC-20 on a smart contract application they’ve developed and the smart contract does not fully respect the ERC-20 standard, the token can easily be lost due to the lack of functionality.
Therefore, if a smart contract is treated as an ERC-20, it should possess all ERC-20 functionality, otherwise it may lead to developer errors. Another issue – and this one is a biggie – is that some smart contracts may not guarantee a certain asset is solely in the possession of a user.