ERC-20

ERC-20 is a rulebook for interchangeable tokens on Ethereum. A token that follows it answers the same handful of calls, such as transfer, balanceOf and approve, so a wallet can show and send a coin it has never seen before, and the label says how a token behaves rather than which chain it sits on.

Three tokens read on November 10, 2026

Add a token to your wallet and the app has two questions before it can show anything. What is this coin called, and where does the decimal point go?

The same two questions went to three stablecoin contracts at 10:20 UTC on November 10, 2026, through a public Ethereum node at block 26,383,871. The addresses come from the issuers’ own lists, Tether’s integration page and Circle’s contract tables, and both link each token to its page on a block explorer.

Name the contract returned decimals() totalSupply() on Ethereum, whole tokens
Tether USD (USDT) 6 84,296,691,994
USD Coin (USDC) 6 45,898,922,904
Euro Coin (EURC) 6 334,186,137

All three answered 6. Behind the scenes, then, a balance of 1,000,000 units shows up in your wallet as 1 USDT. Dai went further, and Sky’s developer docs give it 18 decimals, which is a 1 followed by 18 zeros for each coin.

A short rulebook from 2015

Fabian Vogelsteller proposed the standard in November 2015, and EIP-20 itself is dated November 19 of that year. It asks for surprisingly little, just six functions, among them transfer, approve and allowance, and two events that log transfers and approvals. Even the name and decimals calls used above are optional, and other contracts “MUST NOT expect these values to be present.”

Real tokens bend it. EIP-20 says transfer returns true or false, yet Tether’s integration page says its USDT contract on Ethereum is “based on a slightly older standard that does not return a Boolean value in the transfer function.”

Where you see it

Token issuers use the label as shorthand. Tether’s page lists “ERC20 Token via Ethereum, Avalanche, Cosmos, Celo and Kaia Blockchain,” which shows that ERC20 alone does not pick a network. Match the chain name on both sides of a transfer as well.

The other place is the approval prompt in your wallet. Under EIP-20, approve lets a spender withdraw from your balance “multiple times, up to the _value amount,” until you change it. A spender is often a smart contract, such as a decentralized exchange.

Two costly mistakes

The first is sending tokens to a contract address instead of a wallet. The standard gives a receiving contract no notice, and ethereum.org’s ERC-20 page says at least $83,656,418 of tokens had been lost this way as of June 20, 2024. Tokens do pile up at such addresses. At the block read above, the USDT contract’s own address held 1,253,250.65 USDT.

The second is granting unlimited approvals. Ethereum.org’s guide to revoking access warns that a platform with unlimited rights can spend those tokens “even if you have withdrawn your funds from their platform into your wallet.” The guide’s advice is to approve only what you need and to revoke old permissions regularly, using one of the revoke sites it lists.