ERC-20 vs ERC-721 vs ERC-1155: Token Standards
Smart Contracts
• ~8 min read
• Updated: 08/08/2025
1) Why token standards exist
Before Ethereum token standards, every token contract was different, forcing wallets and exchanges to custom-integrate
each one. ERC (Ethereum Request for Comments) standards define common interfaces so all compliant tokens work with the
same infrastructure (wallets, dapps, marketplaces) without extra coding.
2) ERC-20 — fungible tokens
ERC-20 is the most widely used token standard for fungible assets, meaning every token unit is identical and interchangeable.
Think currencies, governance tokens, and stablecoins.
- Key functions:
balanceOf
,transfer
,approve
,transferFrom
,allowance
. - Decimals: Usually 18, but can be set differently.
- Examples: USDC, DAI, UNI, LINK.
ERC-20 tokens live in a contract’s internal ledger; users don’t “hold” the tokens in their wallet — they hold an account balance
in that contract.
3) ERC-721 — non-fungible tokens (NFTs)
ERC-721 defines non-fungible tokens: each token has a unique tokenId
and can represent ownership of a
specific item, digital art, in-game asset, domain name, membership pass.
- Key functions:
ownerOf
,transferFrom
,safeTransferFrom
,tokenURI
. - Metadata:
tokenURI
points to JSON describing the NFT (image, attributes, etc.). - Examples: Bored Ape Yacht Club, ENS domains.
Unlike ERC-20, each ERC-721 token is unique and can’t be split into decimals.
4) ERC-1155 — multi-token standard
ERC-1155 merges the best of ERC-20 and ERC-721. A single contract can hold multiple token types both fungible and non-fungible
using a single interface.
- Batch operations: send multiple token types in one transaction (gas-efficient).
- Flexible IDs: fungible items might share an ID; unique items have their own.
- Examples: gaming assets (gold coins = fungible, swords = unique).
This reduces deployment cost and complexity for projects with multiple asset types.
5) Feature comparison table
Feature | ERC-20 | ERC-721 | ERC-1155 |
---|---|---|---|
Fungible | Yes | No | Yes |
Non-fungible | No | Yes | Yes |
Batch transfer | No | No | Yes |
Gas efficiency | Standard | Standard | High (batching) |
6) When to use which
- ERC-20: currencies, points, governance tokens.
- ERC-721: unique art, collectibles, identity tokens.
- ERC-1155: games, marketplaces, multi-asset dapps.
7) Developer notes
- Use OpenZeppelin contracts: audited, secure, and widely adopted.
- Follow EIP specs strictly to ensure compatibility.
- For upgrades, consider proxy patterns or minimal-proxy clones.
- Test with tools like Hardhat or Foundry before mainnet deploy.
8) Further learning & resources
- EIP-20, EIP-721, EIP-1155 official specs.
- OpenZeppelin Contracts : secure implementations.
- Cyfrin Updraft : great next step for deeper Solidity practice.
- Ethereum.org Token Standards Guide.
Anatomy of an Ethereum Transaction →