What Are Token Standards?
Token standards are a set of agreed-upon rules that guide the design, development, behavior, and operation of cryptocurrency tokens on a given blockchain protocol. For token standards to be useful, they must be widely adopted. Without adoption, their rules cannot be elevated to the status of a “standard”—because standards are the rules that are generally followed by a wide range of people.
In this blog, we’ll explore why standards are important to increasing crypto token adoption, use, and value. We will also explore how Ethereum standards are developed, and briefly discuss Solana standards too.
Why Do We Need Token Standards?
Let’s start by understanding what we mean by “token.” A token in the crypto world is generally a cryptocurrency that is created, managed, and distributed using blockchain-based technology—most typically, smart contracts. A token may have market value, and may also have some utility that makes it desirable to hold the token beyond financial gain.
A standard is a set of rules that “standardizes” something. In the context of tokens, standardization means having a set of rules that define what data a token should contain, the behaviors and actions the token is capable of, and what operations a holder or community of holders can take with respect to that token. Token standards offer guidelines for the creation, issuance, deployment, transfer, destruction, and other attributes of tokens on their underlying blockchain. As might be expected, these token standards are likely to arise on blockchains that support smart contract development because such a blockchain would be able to support the creation of an arbitrary number of tokens on top of it.
We now understand what token standards are, but to really understand their role in the ecosystem, we need to understand their benefits. In other words, why do we want token standards, and what problem do they solve?
At a very general level, a standard allows for multiple implementations. For example, Ethereum has standards for the client software that Ethereum nodes run to provide connectivity to the Ethereum network. These standards make it possible for anybody to write their own version of an Ethereum client in any programming language they choose, provided the standards and specifications for Ethereum nodes and clients are met. Thus the Ethereum network can have any number of nodes and clients, some of which run Ethereum software written in Golang, Rust, Java, C#, C++, or Python. This adds to “client diversity,” which makes the network stronger by reducing dependency on a single codebase’s implementation. But all these implementations, regardless of software language, design, or implementation details, have one thing in common—they all follow a single specification for clients.
So standards help add to the diversity of implementations. This means there can be different approaches to security, speed, scalability, etc., and that diversity enriches the overall experience. It also means that developers and designers can design with reference to a stable point regarding the minimum set of behaviors required from the system. This stimulates innovation on top of the standard, which unlocks more use cases, drives more adoption, and so on.
This is exactly why token standards are important. Standardizing the functionality of different tokens helps developers build applications on top of those standards, knowing that the underlying interfaces will be the same as long as the standard is being applied.
Another huge benefit of token standards is that the smart contracts that implement them become “composable.” This means that we can design contracts to interact with each other because standardization enables us to know what functions, methods, data types, and behaviors a complying smart contract will expose. We can then write code to interact with these contracts, which means that the ecosystem of smart contracts can interoperate, interconnect, and mix and match in different ways so that the whole is much greater than the sum of the parts. A simple example is that when a new crypto token is issued on an Ethereum-based blockchain network, and it complies with the ERC-20 standard for fungible tokens, then its smart contract will be compatible with decentralized exchanges that are designed to work with ERC-20 tokens.
Ethereum Standardization Process
We can get a high-level understanding of the importance of token standards by taking Ethereum as a case study. Ethereum follows a process that relies on Ethereum Improvement Proposals (EIPs) that describe standards that apply to the Ethereum platform (core protocol for the blockchain), APIs for clients and nodes, and smart contracts that run the Ethereum Virtual Machine.
There are three types of EIP:
- Standards Track: These typically cover changes to the core protocol. They have four sub-categories:
- Core: To do with the core rules of the Ethereum protocol.
- Networking: To do with improvements to network protocol specifications.
- Interface: To do with the API and related changes for interacting with the protocol via RPC, and also interfaces like smart contract ABIs.
- ERC: Ethereum Requests for Comment; these are standards for applications, including smart contract and token standards.
- Meta/Process EIP: These cover processes that surround Ethereum but do not directly touch the protocol itself. These could include proposals that affect the decision-making process for protocol changes and so on.
- Informational EIP: These cover Ethereum design issues or guidelines that the community would benefit from but do not change or touch features of the Ethereum protocol. These are also the most optional EIPs, as users are free to ignore them.
Ethereum Standards and guidelines typically have a lifecycle for the EIP-proposal process. These lifecycle stages are “idea,” “draft,” “review,” “last call” (final review), “final” (the final standard), “stagnant” (non-final EIP that is inactive for over six months), “withdrawn,” and “living” (EIPs that are operative but by their nature are regularly updated and never truly achieve finality).
Common Ethereum Token Standards
You can find a list of all the EIPs here. However, let’s consider some popular Ethereum token standards.
Token standards, as we noted in the previous section, are part of the Standards Track and relate to rules that apply to applications, including smart contracts.
The most famous of these is likely ERC-20, which came out of EIP-20. This standard applies to fungible tokens—tokens that are exactly the same in type and value as another token, which means that no token is unique. These are most commonly used as cryptocurrency tokens that can be traded on exchanges. ERC-20 prescribes a token standard that implements an API for tokens within smart contracts. If you click on the ERC-20-related links above, you can see a list of function signatures and events that ERC-20 token smart contracts must implement to comply with the standard. This makes them interoperable and enables us to write applications that can interact with these tokens, thus making the ecosystem more composable. Developers can also write libraries in any language they like that can interact with these ERC-20 token smart contracts because we have a list of all the functions and data exposed by the ERC-20 specification.
Chainlink’s LINK token contracts also comply with a specification—the ERC-677, which enhances the functionality of ERC-20 tokens by adding a `transferAndCall` method that can be called to trigger a transfer of the token to a recipient contract and also call a specific function in the recipient contract, all in a single transaction. This gets around the limitation in ERC-20 whereby transferring a token is a multi-step process which adds complexity and increases gas fees for the transferor.
Another popular token standard is the ERC-721 token standard covered by EIP-721. Unlike ERC-20 tokens, ERC-721 tokens allow for certain unique properties to be added to each token, which then makes them “non-fungible.” This feature can be used to tokenize everything from art to an individual’s identity. As the list of methods required under this standard is known publicly, it has been possible for NFT marketplaces like Opensea to build marketplaces to list, trade, and sell NFTs, as the marketplace’s code can interact with the NFT’s smart contract to read and write data relating to the NFTs.
There have been sub-improvements to ERC-721 proposed by EIP-2309 that standardize the structure of events emitted when creating or transferring non-fungible tokens.
Another popular token standard is ERC-1155, which reflects EIP-1155. This specifies standards for a smart contract that can issue both ERC-20 and ERC-721 token types. This is known as a Multi Token Standard. This ERC also attempts to correct errors in both ERC-20 and ERC-721 and improve their functioning.
There are also other standards in various stages of the proposal lifecycle, and you can study them at your leisure here.
Solana Token Standards
While token standards are simply a type of standardization rule (we have them from chemicals to construction!), they do go by different names in different contexts. In the Solana ecosystem, token standards are contained in the Solana Program Library (SPL), which is a library of on-chain software programs that run on the Solana chain’s runtime. SPL-compliant tokens are compatible with the Solana chain and Solana wallets and add to composability in the Solana ecosystem. Solana tokens are covered by the Solana Token Program, which is part of the overall SPL. This program creates a standardized interface for the creation, issue, transfer, and destruction of Solana-compatible tokens and is comparable to ERC-20 and ERC-721 in the Ethereum ecosystem.
Solana’s native token is the SOL token, comparable to Ethereum’s ETH. This is also an SPL token. SPL tokens can vary greatly in their functionality—some can be NFTs, others can be fungible but with a small circulating supply, and others can combine the functionality of various other types.
Once again, complying with the SPL standard means that tokens on Solana can be interacted with using SPL-compliant wallets and smart contracts, which enables composability and innovation within the ecosystem. They also enable analytics and meta information for research, as can be seen on Solscan. This site’s functionality is enabled by the SPL standards, which prescribe what functionality SPL-compliant tokens must have so that frontends like this can be built to interact with all SPL-compliant tokens.
For smart contracts running on blockchain networks to operate effectively, token standards are necessary to guide the implementation of smart contracts that provide the programming interfaces on which decentralized applications can be built. If you are a developer, now is the perfect time to create your own smart contract token that implements the ERC-20 token standard. You can also deepen your skills by learning how these standards help grow DeFi protocols, NFT projects, and the multiverse. You can deep dive into smart contracts here, and if you’re just starting out in your Web3 developer journey, you can check out all our free technical Web3 developer tutorials here.