ERC-20: the standard for Ethereum tokens

ERC-20: the standard for Ethereum tokens
Editorial TeamEditorial byline – Guides & educational content

The Standard Behind Most Tokens

ERC-20 is a technical standard that defines a common set of functions every fungible token on Ethereum must implement. It specifies how to check a balance, transfer tokens, approve a third party to spend on your behalf, and emit standard events when these things happen. Because every ERC-20 token speaks the same interface, wallets, DEXs, and any other contract can interact with them without custom code per token.

The standard is what made the explosion of DeFi possible. A single Uniswap pool contract can list any ERC-20 against any other because the pool just calls the standard functions. The same goes for lending protocols, yield aggregators, and bridges. ERC-20 has been so successful that other chains adopted the same interface—BEP-20 on BNB Chain, FA12 on Tezos, and many more—to inherit the ecosystem of tooling.

ERC-20 is for fungible tokens, where every unit is identical and divisible. NFTs use a different standard, ERC-721, where each token is unique. ERC-1155 is a hybrid that supports both in one contract. Newer standards like ERC-4626 build on top of ERC-20 to standardize yield-bearing vaults. Almost any token you encounter on Ethereum or its rollups follows one of these patterns, which is why integrating a new token rarely requires more than pasting in a contract address.

Core Functions and How They Work

At its core, the ERC-20 standard defines six mandatory functions that every token contract must implement. These include totalSupply(), which returns the total number of tokens in existence, and balanceOf(address), which returns the token balance of a specific address. The transfer(address, uint256) function allows token holders to send tokens directly to another address.

Two additional functions, approve(address, uint256) and transferFrom(address, address, uint256), enable delegated transfers. This means a token holder can authorize a third party—such as a decentralized exchange or a smart contract—to spend tokens on their behalf up to a specified limit. This delegation is essential for many DeFi applications and automated protocols.

Finally, the allowance(address, address) function lets anyone check how many tokens a spender is allowed to transfer from a token owner’s account. Alongside these functions, ERC-20 defines standard events like Transfer and Approval, which notify external applications when tokens move or spending limits change, enabling wallets and explorers to stay updated in real time.

Why Uniformity Matters in Ethereum’s Ecosystem

The uniform interface provided by ERC-20 means developers don’t have to reinvent the wheel for each new token. Wallets can display balances, exchanges can list tokens, and smart contracts can interact with tokens seamlessly. This interoperability is a cornerstone of Ethereum’s composability, allowing different DeFi protocols to build on top of one another without compatibility issues.

For example, decentralized exchanges (DEXs) like Uniswap rely on the ERC-20 standard to support thousands of tokens with a single smart contract. Lending platforms use the approval mechanism to lock tokens as collateral, while yield farming protocols can safely move tokens between contracts. This plug-and-play nature drastically reduces development time and risk, fostering rapid innovation.

Because of this, even projects on other blockchains have adopted similar standards to tap into Ethereum’s mature tooling ecosystem. Binance Smart Chain’s BEP-20 tokens, for instance, are almost identical to ERC-20, allowing wallets and DEXs to support tokens across chains with minimal changes. This cross-chain compatibility highlights ERC-20’s influence beyond Ethereum itself.

Distinguishing Fungible Tokens from NFTs and Beyond

It’s important to understand that ERC-20 tokens are fungible, meaning each token unit is interchangeable and identical to any other. This makes them ideal for currencies, stablecoins, governance tokens, and many other use cases where uniformity is key. In contrast, non-fungible tokens (NFTs) use the ERC-721 standard, where each token is unique and indivisible, representing collectibles, art, or digital assets with distinct properties.

ERC-1155 is a more flexible standard that combines fungible and non-fungible tokens in a single contract, enabling game developers and other projects to manage multiple token types efficiently. Meanwhile, newer standards like ERC-4626 build on ERC-20 to standardize yield-bearing vaults, defining how tokens representing deposits in DeFi protocols behave and interact.

Because most tokens on Ethereum and its layer-2 rollups follow one of these standards, users and developers benefit from predictable behavior and broad compatibility. This is why adding support for a new token in a wallet or exchange usually only requires the token’s contract address, without needing custom integration work.

Common Misconceptions and Practical Considerations

A frequent misconception is that all tokens labeled “ERC-20” are identical in functionality. While they share the same interface, token contracts can implement additional features or restrictions beyond the standard. For example, some tokens may include transfer fees, blacklists, or minting controls that affect how they behave in practice. Developers and users should review token contracts carefully, especially before interacting with new or lesser-known tokens.

Another practical point is gas fees. Every token transfer or approval on Ethereum requires gas, paid in ETH, which can fluctuate based on network congestion. Understanding gas fees is essential for managing transaction costs when moving ERC-20 tokens.

Finally, ERC-20 tokens are often stored in crypto wallets that support the standard. Popular wallets automatically detect and display ERC-20 tokens once you add the contract address, making token management accessible even to newcomers.

Share this article