It is easy to quickly glance past the behind-the-scenes work within the Ethereum ecosystem. For most people getting involved in Blockchain development, the idea of creating a token, NFT or DAO drives them directly to how-to guides rather than how these types of smart contracts were standardized and are governed on the blockchain. However, I feel there is importance in going back to the roots, which is why I am talking about community standardization proposals before jumping into building specific types of smart contracts. The community standardization proposals for Ethereum are called Ethereum Improvement Proposals and serve as the starting point for Ethereum infrastructure development. Proposals are made within the categories of Core, Networking, Interface, ERC, Meta, and Informational. The authors of these proposals, along with their contributors, outline the proposal and receive feedback to determine if it will be standardized within the blockchains ecosystem.
When exploring the website you can see the progression of each EIP by its type and important documentation that indicates the change and impact it has on other parts of the infrastructure. While there are many proposals to go through, I will focus the rest of this newsletter on a few ERC, Ethereum Request for Comment, which are Application-level standards and conventions that represent the standardization of many smart contracts including tokens and NFTs. ERCs are most relevant to smart contract development and to develop tokens and NFTs you must use at least an ERC-20, ERC-721, or ERC-1155 smart contract.
ERC-20 = Standard for fungible tokens
ERC-721 = Standard for non-fungible tokens (NFTs)
ERC-1155 = Standard that allows you the ability to create both ERC-20 and ERC-721 tokens.
ERC-20
ERC-20 creates an API interface that provides the basic token functionality of transferring and approval mechanisms for on-chain 3rd parties to use the token. This kind of token is the most widely used within the Ethereum ecosystem and one that you have most likely have come across when first being introduced to Ethereum. ERC-20 are fungible tokens meaning a token can be exchanged for another like token. They are divisible, not unique, and share similar qualities to assets like currency, stocks, and gold.
ERC-721
ERC-721 is known by the public as Non-Fungible Tokens (NFTs). The major distinction between an ERC-20 and ERC-721 token is the difference in fungibility. NFTs are unique and not exchangeable for other items. Each NFT is a unique asset carrying its own value just like a home, trading card, or other personally owned items. Developed two years after ERC-20, ERC-721 was created because of the requirement of the smart contract to be able to track unique assets.
ERC-1155
ERC-1155 is the next evolution of ERC-20 and ERC-721. Rather than having to deploy multiple smart contracts to create both types of tokens, ERC-1155 allows you to create both in one contract cutting down on the costs associated with deploying contracts and simplifying the process of creating either token. A single deployed contract may include any combination of fungible tokens, non-fungible tokens or other configurations (e.g. semi-fungible tokens). While this standard hasn’t been adopted as much as ERC-20 and ERC-721, I could see a time where this token surpasses both due to the benefits it presents.
Where We Go From Here
You will most likely not engage with this material again unless you get deep into Ethereum development. While the code standard is needed for token verification since the standardization was created, smart contract interfaces have been built on top of this logic that improves security and is easier to work with. OpenZeppelin is one of the organizations that has built upon the standard to layer in security measures against common hacking techniques that have been used since the standard was approved. It is more common to see smart contracts that import the OpenZeppelin version of the standard mentioned than written in a contract and in the next newsletter I will dive into using OpenZeppelin.