I am quite new to this field, so I decided to learn more about token standards on Ethereum. Tokens are smart contracts which can be implemented in many different ways. Token standards are the protocols which enable third party applications to interact with different tokens in a consistent manner.An EIP (Ethereum Improvement Proposal) is used to propose standards for the Ethereum platform. Token standards are categorized into ERCs (Ethereum Request for Comments), which are application-level standards, and EIPs, which also cover infrastructure-level standards such as networking protocols. These are similar to the RFCs (Request for Comments) originally used by IETF (Internet Engineering Task Force) to store and publish protocol and file formats. This type of document has been adopted by other communities such as PHP, Rust, and Vue. ERC is the Ethereum version of such a document. Learning more about these token standards will lead to a better understanding of the Ethereum ecosystem overall. Here is a summary of several important token standards and interfaces.
Before we talk about token standards, we first need to get used to the idea of an interface. An interface defines the ways of interacting with a contract. Put another way, the presence of an interface lets us easily decide how we are supposed to interact with it. ERC165 provides the functionality to implement interfaces, and also to detect whether a contract has an interface or not.
ERC20 is the most well-known token standard. It provides a standardized way of transferring a token or approving its transfer by a third party. Additionally, it is important to note this token is “fungible.” "Fungible" means something is interchangeable. ERC20 tokens are fungible (interchangeable) just like dollar bills. Each bill has the exact same exchange value, so we do not care which specific bill we have. By implementing this standard in your token smart contract, it can be sent or received by wallets or exchanges. Some of the most active contracts on Ethereum are ERC20 tokens such as BAT (Basic Attention Token) and USDT.
ERC20 tokens can be transferred almost anywhere, and that creates a problem. If a token is sent to a smart contract, and that smart contract does not have the capability to work with that specific token, then the token is wasted and becomes unusable. By implementing the ERC223 standard, we can prevent such a scenario from happening.
ERC721 is the token standard for NFT (Non Fungible Token). Unlike fungible ERC20 tokens, each ERC721 token is unique and noninterchangeable, like a house. It is important to distinguish between houses and know who owns which specific one. Perhaps the most well known use of the ERC721 standard is CryptoKitties, where each cat is a distinct, collectable token.
ERC777 adds additional, useful features on top of the ERC20 standard with which is also backward compatible. It provides operators, which are like designated proxies that can send tokens on behalf of another address. For example, a DApp could pay for something instead of its clients to offer a better user experience. It also provides send and receive hooks, which can be used to selectively revert a transaction before it is executed.
Before this standard, people needed to deploy a completely new smart contract every time they wanted to issue a different token. However, these tokens might share a lot of data in common, and storing data on Ethereum is expensive. ERC1155 allows a token ID, along with corresponding metadata, to represent a new type of configurable token. For example, suppose you are trying to create an RPG, and you need to implement many characters and items. Instead of deploying smart contracts for each of these things, you can deploy a single ERC1155 contract and issue many configurable tokens.
In researching and summarizing these EIPs, I learned many things about the Ethereum blockchain. I hope this summary will be helpful to those also new to this field. As Ethereum and other blockchain platforms are still evolving rapidly, let’s keep an eye out for future changes as well.