ERC-20 Token Standard
ERC-20 is the Ethereum standard defining a uniform interface for fungible tokens — the foundational building block of tokenized assets, extended by compliance-oriented standards such as ERC-3643 to support regulated securities.
ERC-20 (Ethereum Request for Comments 20) is the technical standard defining a common interface for fungible tokens on the Ethereum blockchain. Proposed by Fabian Vogelsteller and Vitalik Buterin in November 2015 and formalised as EIP-20, it became the dominant standard for token issuance on Ethereum and has been adopted (with minor adaptations) across virtually every EVM-compatible blockchain. As of 2025, ERC-20 underpins thousands of tokens representing everything from stablecoins (USDC, USDT, DAI) to governance tokens, utility tokens, and the on-chain infrastructure of most tokenized asset programmes.
Core Interface
The ERC-20 standard specifies six mandatory functions and two events that every compliant token contract must implement:
Mandatory functions:
totalSupply(): Returns the total number of tokens in existencebalanceOf(address account): Returns the token balance of a specified addresstransfer(address to, uint256 amount): Transfers tokens from the caller’s address to the recipientallowance(address owner, address spender): Returns the remaining number of tokens that a spender is authorised to transfer from an owner’s accountapprove(address spender, uint256 amount): Grants a spender permission to transfer up to a specified amount from the caller’s accounttransferFrom(address from, address to, uint256 amount): Executes a transfer from one address to another, using the allowance mechanism
Events:
Transfer(address indexed from, address indexed to, uint256 value): Emitted on every token transferApproval(address indexed owner, address indexed spender, uint256 value): Emitted on every approval
The interface is intentionally minimal — it defines how tokens move, not why or whether they should. This simplicity enables broad composability: any protocol that can interact with an ERC-20 can interact with any ERC-20 token, enabling the permissionless composability of DeFi.
Use in Tokenization
ERC-20 is the base layer for most tokenized asset programmes on Ethereum and EVM-compatible chains:
- Stablecoins: USDC and USDT are ERC-20 tokens
- Tokenized Treasuries: BlackRock’s BUIDL and Franklin Templeton’s FOBXX are ERC-20 tokens (with access controls layered on top via ERC-1404 or ERC-3643 extensions)
- Tokenized commodities: PAXG (Paxos Gold) is an ERC-20 token with redemption rights for physical gold
- Fund units and ETF-like instruments: Increasingly structured as ERC-20 tokens with off-chain legal frameworks
Limitations for Compliance
ERC-20 was designed for permissionless environments and has no native compliance features:
- No transfer restrictions: Any address can receive an ERC-20 token transfer. Securities law requirements that transfers be restricted to verified investors cannot be enforced at the ERC-20 layer without modification.
- No identity integration: ERC-20 has no mechanism to verify investor identity, accreditation status, jurisdictional eligibility, or holding period.
- No forced transfer: ERC-20 does not include mechanisms for forced transfer or recovery of tokens (required in some regulatory contexts, e.g., court orders for seized assets or loss of private key recovery).
- Front-running via allowance: The
approve/transferFrompattern is subject to front-running attacks, leading to the development of non-standard workarounds (increase/decreaseAllowance functions, EIP-2612 permits).
How ERC-3643 Extends ERC-20
ERC-3643 (the T-REX Protocol) is built on the ERC-20 foundation and is fully backward-compatible with it — an ERC-3643 token presents a standard ERC-20 interface to the blockchain. The extension adds:
- Pre-transfer compliance hooks: Before any transfer executes, the token contract calls the Compliance module and Identity Registry. If the recipient is not whitelisted or the transfer violates a compliance rule, the transaction reverts.
- ONCHAINID integration: Each eligible address must have an associated ONCHAINID with valid claims before it can receive tokens.
- Forced transfer and recovery functions: Agent-controlled functions enabling regulatory compliance actions.
- Freeze and pause mechanisms: Allow issuers to freeze specific investor accounts or pause the entire token in emergency situations.
Other compliance-oriented ERC-20 extensions include ERC-1404 (Simple Restricted Token Standard), which adds a detectTransferRestriction function and error codes, and ERC-1400 (Security Token Standard), which introduced partitions for tranching but saw limited adoption.
Related entries: ERC-3643 (T-REX Protocol), Security Token, Smart Contract
Primary source: EIP-20 on Ethereum.org | ESMA on Token Standards