Skip to content

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
  1. What a token standard is
  2. ERC-20: fungible tokens
  3. Approvals: the part that affects your security
  4. Why tokens can get lost
  5. ERC-721: non-fungible tokens
  6. ERC-1155: many tokens in one contract
  7. Where you’ll meet these standards
  8. The three side by side
  9. What a standard doesn’t tell you

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?
Ethereum Request for Comments. ERC-20 was proposed by Fabian Vogelsteller in November 2015 as a standard interface for tokens within smart contracts.
Is ether (ETH) an ERC-20 token?
No. Ether is Ethereum's native currency, built into the network itself. ERC-20 tokens are created by smart contracts that run on Ethereum.
Are ERC-20 tokens safe?
The standard only defines how a token behaves, not who made it or why. Anyone can deploy a contract that follows ERC-20, so a token's legitimacy has to be judged separately.
What happens if I send tokens to a token contract by mistake?
They can be stuck permanently. ethereum.org explains that ERC-20 has no way to tell a receiving contract about incoming tokens, so a contract that can't handle them can't send them back. It says at least $83 million of ERC-20 tokens had been lost this way by June 2024.
What's the difference between ERC-721 and ERC-1155?
ERC-721 is for unique tokens, each identified by its contract address and token ID. ERC-1155 lets a single contract manage several token types at once, fungible and non-fungible, and move them in batches.

Sources

  1. Token standards — ethereum.org
  2. ERC-20 token standard — ethereum.org
  3. ERC-721 non-fungible token standard — ethereum.org
  4. 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.