ERC-20 is a technical standard that defines how tokens work on Ethereum, covering things like how balances are tracked and how tokens are transferred between addresses. It's the reason thousands of different tokens can all function consistently within wallets and exchanges built on Ethereum. The standard is a public specification, EIP-20, which anyone can read and implement.
The standard, defined
ERC-20 specifies a common set of rules a token's smart contract must follow, including functions for checking balances, transferring tokens, and approving another address to spend on your behalf. Any token following these rules is automatically compatible with the broader Ethereum ecosystem.
The thing that surprises people is how little the standard actually says. It is a handful of functions, no more: report the total supply, report an address's balance, move tokens, let another address move tokens on your behalf, and announce that either happened. That is essentially it. There is no requirement about what the token represents, who may hold it, whether the supply can grow, or whether the issuer can freeze your balance. The standard describes a shape, not a promise.
That minimalism is the reason it won. A specification narrow enough to be implemented in an afternoon, and to be supported by every wallet without special-casing anything, spread faster than a richer standard ever could have. It is also why plenty of ERC-20 tokens do surprising things while remaining perfectly compliant, since anything the standard did not forbid is allowed.
Examples
Many well-known Ethereum-based tokens, including numerous DeFi and utility tokens, follow the ERC-20 standard. This is distinct from Ether itself, which is a coin rather than a token.
ETH being the odd one out is a genuine historical quirk with a practical consequence. Ether predates the standard and is handled by Ethereum's core rules rather than by a contract, so it does not implement the ERC-20 interface at all. Since applications expect that interface, the ecosystem invented wrapped ETH: a contract that holds your ETH and issues you a matching ERC-20 token representing it. If you have ever wondered why an app asked you to wrap your ETH before trading it, that is why. The native asset of the network needs a costume to work with the network's own applications.
Wallets and compatibility
Because ERC-20 is standardized, any wallet supporting Ethereum can automatically handle any ERC-20 token without custom integration work. This consistency is a major reason the standard became so widely adopted, and it's just one category within the wider world of crypto tokens.
Three consequences of that compatibility are worth carrying with you:
- Compliance is not endorsement. Your wallet displaying a token means it follows the standard, nothing more. Scam tokens are ERC-20 compliant too, and they appear in your wallet exactly as legitimate ones do.
- Anyone can send you a token. Unsolicited tokens turning up in your wallet is normal and usually bait: the token's page or contract is designed to lure you into interacting with it. Receiving one is harmless. Touching it is not.
- The approval function is the standard's sharp edge. It exists so applications can move tokens for you, and it is how most wallet-draining works, since an approval you granted once persists indefinitely and often for an unlimited amount.
That last point deserves emphasis, because it is the single most consequential thing in the specification. Approving a contract is not a payment; it is standing permission to take that token from your wallet later, at any time, with no further confirmation. A malicious or compromised contract does not need your keys, it just uses the permission you already gave it. Grant approvals deliberately, prefer applications that request only the amount needed, and revoke old ones you no longer use.
The standard has descendants worth knowing by name, since you will meet them: ERC-721 for NFTs, where each token is unique rather than interchangeable, and ERC-1155, which handles both kinds in one contract. All follow the same pattern, a small public interface that everything else agrees to speak, which is the actual innovation here.
The name itself is worth decoding, since it appears everywhere and explains nothing on its own. ERC stands for Ethereum Request for Comments, and 20 is simply the number of the proposal that introduced it, back in 2015. It was a suggestion posted publicly for discussion, not a decree, and it became a standard the only way standards ever do: enough people adopted it that not adopting it stopped making sense. Ethereum has no authority that ratifies these. The specification is public, implementing it is voluntary, and its power comes entirely from the fact that everyone already speaks it.
It is hard to overstate what that unlocked. Before ERC-20, every token needed wallets and exchanges to write custom code for it, so listing anything new was a negotiation. Afterward, a token worked everywhere the moment it was deployed, with nobody's permission required. That is what made the 2017 token boom possible, for better and considerably worse, and it remains the clearest example in crypto of a boring technical standard mattering far more than any individual project built on it.