What is ERC-20?
The Ethereum standard defining how a fungible token reports balances and moves between addresses, followed by most tokens on Ethereum and on Ethereum-compatible chains.
Not yet verifiedHow we verify
3 min read
In this entry
The Ethereum standard defining how a fungible token reports balances and moves between addresses, followed by most tokens on Ethereum and on Ethereum-compatible chains.
Because the interface is shared, wallets and exchanges can support a new token without custom code. The standard says nothing about whether a token has value or whether its contract is safe. It is a set of function names, not a certification, and anyone can deploy a contract implementing it in a few minutes for the cost of the gas.
The costly misunderstanding is treating an ERC-20 balance as if it lived in your wallet. It does not. The token contract keeps a table of addresses and amounts, and your wallet simply reads your row of it. That is why a token can be frozen, why a contract can mint more, and why the same ticker can exist at a hundred different addresses.
How it works
The standard specifies a small interface (source: EIP-20). A compliant contract exposes the total supply, a balance lookup for any address, a direct transfer, an approval that authorizes a third party to spend on your behalf, an allowance lookup, and a delegated transfer that spends against that allowance. It emits two events, one for transfers and one for approvals, which is how a block explorer or wallet reconstructs history it never saw happen.
Optional fields carry the name, the symbol, and the number of decimals. Decimals matter more than people expect: most tokens use 18, some use 6, and the on-chain integer is meaningless until divided by the right power of ten.
Two consequences follow for anyone moving tokens. First, the ticker is not an identifier. Only the contract address is, and impostor contracts using a well-known symbol are routine. Second, sending an ERC-20 token requires the chain's native asset to pay gas, so a wallet holding only tokens and no ether cannot move them.
Nothing in the standard restricts what else a contract may do. Pausing transfers, minting, blacklisting addresses, and taking a cut of each transfer are all compatible with being a valid ERC-20 token.
Example
Illustrative arithmetic on decimals. A token with 18 decimals showing a balance of 1,500,000,000,000,000,000 in raw form is 1.5 tokens. A stablecoin using 6 decimals showing 1,500,000 is likewise 1.5 tokens. Reading a raw explorer figure without checking the decimals is how people convince themselves they hold a billion of something.
Why it matters when you buy
When you withdraw a token from an exchange you are choosing both a token and a network, and an ERC-20 token sent to an address on a different chain, or deposited under the wrong network setting, is often unrecoverable. Verify the contract address from the project's own site rather than a search result, and check which networks a venue supports at the exchange pages and the chain pages.
Related terms
token — the general concept, token approval — the allowance mechanism, gas — what moving a token costs, erc 721 — the non-fungible counterpart, event log — how transfers are reported, smart contract — what a token actually is.
Questions
Do I need ETH to send an ERC-20 token?
Yes. Fees on Ethereum are paid in ether regardless of which token you are moving, so a wallet with tokens and no ether cannot transact. The same applies on other chains with their own native asset.
Are all ERC-20 tokens on Ethereum?
No. Ethereum-compatible chains implement the same standard, so the identical contract code runs on many networks. The address may even be the same, which makes it easy to send to the right address on the wrong chain.
Can the issuer of an ERC-20 token freeze my balance?
If the contract includes that capability, yes. Many regulated stablecoins do so deliberately. Whether a given token can be paused, minted, or blacklisted is visible in its verified source code.