What is ERC-20? Ethereum token standards explained: ERC-20, ERC-721 and ERC-1155
What ERC-20, ERC-721 and ERC-1155 tokens are, why standards matter, how approvals work, why tokens can be lost, and what a standard doesn't prove.
Figures checked against 4 official and primary sources on . See the sources · How we check
Key points
- A token standard is a common set of rules for token smart contracts, so wallets, exchanges and apps can work with any token that follows it.
- ERC-20 is the standard for fungible tokens, where every unit is the same. It was proposed in November 2015.
- ERC-721 is the standard for non-fungible tokens (NFTs), and ERC-1155 lets one contract manage both kinds.
- Following a standard says nothing about whether a token is legitimate or valuable. And ERC-20 tokens sent to a contract that can't handle them can be lost for good.
In this guide
When people talk about “tokens” on Ethereum, they usually mean things created by smart contracts rather than ether itself. For those tokens to work in any wallet or exchange, they need to follow shared rules. Those rules are token standards, and the best known is ERC-20.
This guide explains what the main standards are, how they work in practice, and what they don’t tell you. For the basics behind them, see what is a smart contract? and what is Ethereum?
What a token standard is
ethereum.org explains that many Ethereum development standards focus on token interfaces. They help keep smart contracts composable: when a new project issues a token, it stays compatible with existing exchanges and applications.
In practice, a standard is a list of functions and events a token contract must provide. If a contract follows it, a wallet doesn’t need custom code for that specific token: it already knows how to read the balance and send it. As ethereum.org puts it, standards ensure tokens work with wallets, exchanges and DeFi platforms.
“ERC” stands for Ethereum Request for Comments, the name for these proposals.
ERC-20: fungible tokens
ERC-20 was proposed by Fabian Vogelsteller in November 2015. ethereum.org describes it as a standard for fungible tokens: each unit is exactly the same, in type and value, as every other unit.
That makes ERC-20 suitable for anything that needs identical, interchangeable units. ethereum.org’s examples include reputation points on an online platform, skills of a game character, financial assets such as company shares, fiat currencies such as the dollar, and precious metals such as gold.
A token contract that follows ERC-20 provides a standard set of functions:
| Function | What it does |
|---|---|
totalSupply() |
The total number of tokens |
balanceOf() |
How many tokens an address holds |
transfer() |
Sends tokens from your address to another |
approve() |
Lets another address spend up to a set amount of your tokens |
allowance() |
How much an approved address can still spend |
transferFrom() |
Lets an approved address move tokens on your behalf |
It also defines two events, Transfer and Approval, which wallets and block explorers use to show activity.
Approvals: the part that affects your security
The approve() and transferFrom() pair is how decentralized apps move your tokens. When you swap on a decentralized exchange, you first approve its contract to spend your tokens, and it then pulls them with transferFrom().
That’s convenient, but an approval can stay in place after you’ve finished. If you’ve approved a malicious or compromised contract, it may be able to move your tokens later without asking again. See token approvals and how to revoke them.
Why tokens can get lost
ethereum.org highlights a known weakness of ERC-20. The standard has no way to notify a receiving smart contract that tokens have arrived, and doesn’t require it to have a function for handling them. If you send ERC-20 tokens to a contract that can’t deal with them, such as the token’s own contract, they can be stuck permanently.
According to ethereum.org, at least $83,656,418 worth of ERC-20 tokens had been lost this way as of 20 June 2024. Developers can reduce the risk, for example by stopping transfers to the token contract itself, but as a user the simplest protection is to double-check the destination address before sending. See how to send crypto safely.
ERC-721: non-fungible tokens
ERC-721 is the standard for non-fungible tokens (NFTs). ethereum.org says it was proposed by William Entriken, Dieter Shirley, Jacob Evans and Nastassia Sachs in January 2018.
Unlike ERC-20 units, each ERC-721 token is unique and can have a different value from others in the same contract. Every NFT has a token ID, and the combination of the contract address and token ID must be globally unique. ethereum.org gives examples such as collectibles, access keys, lottery tickets and numbered seating.
For what NFTs are used for and their risks, see what are NFTs?
ERC-1155: many tokens in one contract
ERC-1155 is a multi-token standard. A single contract can manage any combination of fungible and non-fungible tokens. ethereum.org highlights two features:
- Batch transfers: moving several assets in one call.
- Batch balances: reading several balances at once.
ethereum.org notes that this makes trades and bundled transactions more efficient, which saves costs. A game, for example, could keep its in-game currency and its unique items in one contract.
Where you’ll meet these standards
You don’t need to read contract code to run into token standards:
- Exchanges and wallets often label deposits with the network, for example “ERC-20” for a token on Ethereum. A token with the same name on another blockchain is a different contract, so sending it over the wrong network can mean losing it. See how to send crypto safely.
- Block explorers show a token’s standard, its contract address and its Transfer events.
- Wallet approval screens are the
approve()function in action: read them before you confirm.
The three side by side
| ERC-20 | ERC-721 | ERC-1155 | |
|---|---|---|---|
| Token type | Fungible | Non-fungible | Both |
| Each unit | Identical | Unique token ID | Depends on the token type |
| Typical use | Currencies, points, governance tokens | Collectibles, tickets, access keys | Games, mixed collections |
| Batch transfers | No | No | Yes |
What a standard doesn’t tell you
A token following ERC-20 tells you how it works, not whether it’s worth anything or who is behind it. Anyone can deploy a contract that follows the standard, including copies with the same name and symbol as a well-known token. Before you buy or accept a token:
- check its contract address on the project’s official site, not from a social media post;
- look it up on a block explorer to see how long it has existed and how it’s held. See how to use a block explorer;
- be wary of tokens that appear in your wallet uninvited and point you to a website to “claim” something: that’s a classic scam. See crypto airdrops explained.
Ether itself isn’t an ERC-20 token: it’s Ethereum’s built-in currency, used to pay gas fees.
Frequently asked questions
What does ERC stand for?
Is ether (ETH) an ERC-20 token?
Are ERC-20 tokens safe?
What happens if I send tokens to a token contract by mistake?
What's the difference between ERC-721 and ERC-1155?
Sources
- Token standards — ethereum.org
- ERC-20 token standard — ethereum.org
- ERC-721 non-fungible token standard — ethereum.org
- ERC-1155 multi-token standard — ethereum.org
First published . Spotted an error or an outdated figure? Tell us and we will check it against the source.