Every wallet, DEX, and dApp on Ethereum can handle a token it has never seen because token standards define the interface: how a token behaves, transfers, and interacts with the software around it. Four standards cover most of what I read and build against in practice, ERC-20, ERC-1155, ERC-6909, and ERC-7281, and between them they describe how a large share of the Web3 economy moves.

ERC-20: the fungible token blueprint
ERC-20, launched in 2015, is Ethereum's original token standard. It defines the functions for fungible tokens, which are identical and interchangeable like currency.
Its interface is small:
- Each token contract represents one asset type.
- The core functions are
transfer,approve,transferFrom,balanceOf, andtotalSupply. - Adoption is universal across DeFi, DAOs, and token sales.
ERC-20 is the format for stablecoins such as USDC and DAI, governance tokens such as UNI and AAVE, and wrapped assets such as WBTC, which makes it the base layer of DeFi protocols and most decentralized applications.
Its limits come from the one-asset-per-contract design, so it has no batch operations and does not fit NFTs or multi-token systems.
ERC-1155: multiple assets in one contract
ERC-1155, introduced by Enjin in 2018, is a multi-token standard in which one contract represents many token types, both fungible and non-fungible. It supports batch operations and mints and transfers several assets in one call.
That shape suits games, where weapons, armor, and currency can live in one contract, as well as digital collectibles and metaverse economies. The trade-off is implementation complexity, since safe interactions require safeTransferFrom and the onERC1155Received callback.
ERC-6909: the lean multi-token standard
ERC-6909 is a newer, lighter alternative to ERC-1155 for DeFi protocols that need many fungible asset types in one contract. It keeps a minimal interface for managing token types, drops the mandatory callbacks, adds per-token allowances where ERC-1155 only has global operator approvals, and costs less gas than both ERC-20 and ERC-1155.
It fits vault shares, LP positions such as those in the Uniswap v4 PoolManager, and tokenized funds with several share classes, all without the operational overhead of ERC-1155.
ERC-7281: cross-chain token identity
Update (2026): At publication I described ERC-7281 as a
chainId()identity extension. The EIP is actually Sovereign Bridged Tokens (xERC20): issuer-controlled mint/burn with per-bridge rate limits and an optional Lockbox wrapper. The section below reflects my original write-up, not the authoritative standard.
ERC-7281 introduces a standard interface for identifying tokens across chains by embedding the chainId in the token's interface.
As multichain ecosystems grow, token identity gets ambiguous, since USDC on Ethereum L1 and USDC on Arbitrum may be entirely different tokens, and ERC-7281 aims to prevent the resulting confusion, spoofing, and misrepresentation in dApps, bridges, and explorers. It does that in four ways:
- It adds a
chainId()function to token interfaces. - It extends
symbol(),name(), anddecimals()with optionalchainId-aware context. - It lets wallets and protocols tell tokens apart across L1s, L2s, and sidechains.
- It supports bridge security and cross-chain composability.
That makes it useful for cross-chain token registries, safer bridging and routing, and dApps that show accurate token information across chains. ERC-7281 complements ERC-20, ERC-1155, and ERC-6909 by giving their tokens global uniqueness, and it does not replace any of them.
How the four standards compare
| Feature | ERC-20 | ERC-1155 | ERC-6909 | ERC-7281 |
|---|---|---|---|---|
| Token Types | 1 Fungible | Many (Fungible + NFTs) | Many (Fungible) | Any (extension) |
| Batch Operations | No | Yes | No | N/A |
| Transfer Callbacks | No | Yes | No | N/A |
| NFT Support | No | Yes | No | No (enhancement) |
| Approval Model | Per-address | Global operator | Global + Per-ID | N/A |
| Cross-Chain Awareness | No | No | No | Yes via chainId() |
| Gas Efficiency | Medium | High | Highest | Depends on base |
| Usage | Tokens | Games, NFTs | DeFi vaults | Wallets, bridges |
Each standard has its own job:
- ERC-20 is the default for plain fungible assets.
- ERC-1155 fits multi-asset and NFT-heavy environments like games.
- ERC-6909 is the leaner pattern for multi-token DeFi applications.
- ERC-7281 gives tokens a cross-chain identity so they aren't confused across the ecosystem.
The newer standards are leaner because protocols need cheaper, more composable financial plumbing, and when I build a dApp, wallet, or protocol I choose the standard as part of the product design, based on how many asset types it holds, how approvals should work, and which chains it has to reach.