The ERC-20 Token Standard is the foundational Ethereum Request for Comments specification that defines a common interface for fungible tokens on the Ethereum blockchain, enabling seamless interoperability between token contracts, wallets, decentralised exchanges, and other smart contract systems. Proposed by Fabian Vogelsteller in 2015 and formalised as an Ethereum Improvement Proposal, it specifies six mandatory functions—totalSupply, balanceOf, transfer, transferFrom, approve, and allowance—and two events. ERC-20 standardisation catalysed the 2017 ICO boom and remains the dominant token interface in decentralised finance, with thousands of tokens deployed to this specification. Its simplicity has made it the basis for numerous extended standards including ERC-777, ERC-1400, and ERC-3643.

Content

  • The six mandatory ERC-20 functions define a minimal but complete interface for token management. The transfer function moves tokens between addresses directly; transferFrom enables third-party transfers authorised via approve, forming the allowance mechanism that underpins DEX order routing and DeFi protocol interactions. The two event types—Transfer and Approval—enable off-chain indexers and wallets to reconstruct full token histories without replaying all contract state.
  • The standard’s composability was its killer feature. Because any ERC-20 token presents an identical interface, a single Decentralized Exchange (DEX) contract can trade any token pair without custom integration. Similarly, lending protocols can accept any ERC-20 as collateral by reading balances and approvals through the standard interface. This composability created the interlocking protocol ecosystem characteristic of Decentralised Finance and enabled rapid permissionless innovation.
  • Known vulnerabilities and limitations have spawned successor standards. The approve-then-transferFrom pattern is vulnerable to front-running attacks if an allowance is changed mid-transaction; ERC-777 addressed this with hooks. ERC-20 lacks native support for permissioned transfers required for securities regulation, which motivated ERC1400 Standard and ERC3643 Standard. The absence of a receive hook in ERC-20 has led to billions of tokens being permanently locked in contracts that cannot process them.
  • Despite its limitations, ERC-20 remains the dominant token standard due to its simplicity, tooling depth, and universal wallet support. The standard has been implemented in Solidity, Vyper, and other smart contract languages, and its ABI is supported natively by Ethereum clients, block explorers, and analytics platforms. It has also been adopted verbatim on EVM-compatible chains including Polygon, BNB Chain, Avalanche, and Arbitrum, making it effectively the universal fungible token interface across the EVM ecosystem.