TL;DR ERC-20 is the technical standard that defines how tokens work on Ethereum. It establishes six required functions (totalSupply, balanceOf, transfer, transferFrom, approve, and allowance) that make all ERC-20 tokens compatible with the same wallets, exchanges, and smart contracts.
You've probably seen "ERC-20" mentioned in token descriptions and just scrolled past it. Fair enough, it sounds like tech jargon that doesn't really matter.
But ERC-20 is why your MetaMask wallet can hold hundreds of different tokens without breaking a sweat. It's the behind-the-scenes "common language" that makes Ethereum tokens predictable.
Without it, every new token would need its own special wallet support, exchange setup, and app integration, which would be a nightmare (and DeFi as we know it probably wouldn't exist).
It's probably the most important technical standard in crypto history, and here's why.
→ The six functions that define ERC-20 - How a handful of simple rules created universal compatibility across thousands of tokens.
→ Why one wallet works for everything - How MetaMask holds unlimited tokens without custom code for each one
→ The real-world impact - From the 2017 ICO boom to today's DeFi explosion, ERC-20 made it all possible
→ ERC-20 vs. other standards - What makes it different from NFTs (ERC-721) and why newer standards haven't replaced it
→ The limitations of ERC-20 - Gas fees, lost tokens, and why "ERC-20 compliant" doesn't mean legitimate
So what actually makes a token "ERC-20"? It's not some official certification or stamp of approval. It's just whether the token's smart contract includes the right functions.
ERC-20 is a technical standard for fungible tokens on the Ethereum blockchain. It's a blueprint that guides developers on how to create tokens on Ethereum.
The name breaks down like this: ERC stands for "Ethereum Request for Comment" (basically a proposal for how something should work), and 20 is just the proposal number. It was submitted back in 2015 and officially finalized in 2017.
The standard specifies exactly which functions a token contract must include and how they should behave. Any wallet or exchange that knows how to interact with these functions can automatically work with every compliant token.
Your wallet doesn't need to know anything special about USDT versus LINK versus UNI. They all speak the same language.
When a token is "ERC-20 compliant," it means the smart contract behind it implements the required functions in a predictable way. This creates universal compatibility across the entire Ethereum ecosystem.
ERC-20 tokens are fungible, meaning each unit is identical and interchangeable. One USDT is exactly the same as any other USDT, just like one dollar bill equals any other dollar bill.
This is different from NFTs (non-fungible tokens), where each token is unique. ERC-20 was designed for things that need to be interchangeable: currencies, reward points, governance votes, shares in a protocol.
The standard requires six specific functions that every compliant token must include:
The Six Required Functions:
totalSupply - Returns how many tokens exist in total
balanceOf - Checks how many tokens a specific address holds
transfer - Sends tokens directly from your address to someone else
transferFrom - Allows approved addresses to move tokens on your behalf
approve - Gives permission for another address to spend your tokens
allowance - Checks how many tokens an address is authorized to spend
Two Required Events:
Transfer - Logs every time tokens move between addresses
Approval - Records when spending permission is granted
These events create a transparent record that anyone can verify on the blockchain.
Optional (But Common) Elements:
Most ERC-20 tokens also include a name, symbol (like USDT or LINK), and decimal places (usually 18, following Ethereum's standard). These aren't required by the specification, but they're so common that wallets expect them.
When you "own" ERC-20 tokens, there's no actual file sitting in your wallet. Instead, your address has a balance recorded in that token's smart contract. The contract maintains an internal ledger of who owns what.
What Happens When You Send Tokens:
You call the contract's transfer function
The contract checks you have enough tokens
It subtracts tokens from your address balance
It adds tokens to the recipient's address balance
No actual tokens move—it's pure accounting
How Your Wallet Shows All Your Tokens:
Your wallet knows your Ethereum address
It queries every token contract you've interacted with
Each contract reports back your balance for that token
The wallet displays them all in one interface
Because every ERC-20 token uses the same functions, your crypto wallet can support thousands of different tokens without writing custom code for each one. Add a new token contract address, and it just works.
Before ERC-20, launching a new cryptocurrency meant building everything from scratch. You needed custom wallet software, convinced exchanges to do months of integration work, and hoped developers would build support for your token into their apps.
ERC-20 flipped that entire model. Suddenly, your new token worked everywhere on day one.
Back in the early days, every token project was basically starting from zero. Bitcoin had its infrastructure, Litecoin had its own thing, and if you wanted to launch something new, you were building wallets and convincing exchanges to support you individually.
This meant:
Developers spent months on infrastructure instead of their actual product
Users needed different wallets for different tokens
Exchanges charged huge listing fees because integration was genuinely hard work
Most projects never got off the ground because the technical barrier was too high
Then Ethereum launched with smart contracts, and someone proposed a simple idea: what if all tokens just followed the same rules?
The wallet situation changed completely.
MetaMask didn't need to know about your specific token. It just needed to know how to interact with ERC-20 contracts. Type in a contract address, and boom, the wallet could display your balance and send transactions.
One interface handled everything. A stablecoin worked the same way as a governance token or some experimental project nobody had heard of yet. The wallet didn't care what the token did; it just cared that the token followed the standard.
This dropped the barrier to entry from "months of custom development" to "five minutes adding a contract address."
Centralized exchanges could suddenly list new tokens in days instead of months. The deposit system was the same. The withdrawal system was the same. Just plug in the new contract address and update the trading pairs.
But the real revolution was decentralized exchanges.
Uniswap doesn't have a listing process. It doesn't need one. Any ERC-20 token can have a liquidity pool created for it by anyone. No approval required. No integration work. The protocol just interacts with the standard functions, and everything works.
This kind of permissionless composability changed everything. You could build a lending protocol that worked with tokens that didn't even exist yet. Create a yield aggregator that automatically supports new tokens the day they launch.
The 2017-2018 ICO Era
ERC-20 made token launches almost trivially easy from a technical standpoint. Copy some template code, deploy a contract, and you have a token that works in every major wallet and could be listed on exchanges.
This opened the floodgates. Thousands of projects launched. Some were building real products. Many were just whitepapers and promises (and some were outright scams, because when it costs $50 in gas to create a token, the barrier drops for everyone). The technical barrier was gone, and suddenly, anyone with an idea and a marketing budget could raise millions.
The 2017 ICO boom raised billions. It also burned a lot of retail investors on projects that went nowhere. But it proved something important: removing technical barriers accelerates both innovation and garbage, and the market eventually sorts out which is which.
The DeFi Explosion (2020-Present)
DeFi protocols are built entirely on the assumption that tokens behave predictably.
Compound can lend out any compliant token because it knows exactly how to interact with it.
Curve builds pools for different stablecoins without custom code for each one.
SushiSwap forks Uniswap and instantly supports the same universe of tokens.
Yield farming only works because you can smoothly move between protocols.
Wrap Bitcoin into WBTC, swap it for stablecoins on a DEX, deposit those into a lending protocol, and use the receipt token somewhere else.
None of this works if every step requires custom integration.
The entire DeFi stack is built on ERC-20 compatibility. Without it, you'd need permission and custom development for every new integration. With it, protocols compose like building blocks.
The same permissionless access that enabled billion-dollar protocols also made rug pulls easier (anyone can create a token, add liquidity, and vanish). But that's the nature of open systems. The standard doesn't judge, it just enables.
The ERC-20 standard supports everything from dollar-pegged stablecoins to governance tokens to pure speculation plays.
USDT and USDC dominate, both pegged to the US dollar but with different backing mechanisms. DAI takes a different approach as a decentralized stablecoin backed by crypto collateral instead of bank reserves.
UNI powers Uniswap's governance, AAVE lets holders vote on lending protocol changes, and LINK connects smart contracts to real-world data through Chainlink's oracle network. MKR governs the Maker protocol that creates DAI.
Many centralized exchanges launched their own ERC-20 tokens for trading fee discounts and other benefits.
Thousands of project-specific tokens serving every purpose imaginable. Governance rights, access to services, rewards programs, meme coins, you name it.
All of these work identically from a technical standpoint. Your wallet treats a billion-dollar stablecoin the same way it treats some random token with $1,000 in liquidity. ERC-20 is just the framework. What the token actually does is up to the project behind it.
Token | Symbol | Category | Primary Use |
Tether | USDT | Stablecoin | Dollar-pegged transactions |
USD Coin | USDC | Stablecoin | Regulated dollar stablecoin |
Dai | DAI | Stablecoin | Decentralized stablecoin |
Uniswap | UNI | DeFi | DEX governance |
Chainlink | LINK | DeFi | Oracle data feeds |
Aave | DeFi | Lending protocol governance |
ERC-20 handles fungible tokens, but it's not the only token standard on Ethereum.
The key difference is fungibility. Every unit of an ERC-20 token is identical and interchangeable. One USDC equals any other USDC.
But ERC-721 tokens (NFTs) are non-fungible, meaning each token is unique with its own ID.
ERC-20 tracks balances (you have 100 tokens).
ERC-721 tracks ownership of specific tokens (you own token #5847).
This makes ERC-721 perfect for art, collectibles, domain names, and anything else where uniqueness matters. CryptoPunks, Bored Apes, and ENS domains all use ERC-721.
ERC-20 isn't perfect. Tokens sent to contract addresses can get stuck forever because contracts don't know they received anything. Trading on DEXs requires two transactions (approve, then transfer), which wastes gas. And there's no built-in way for contracts to react when they receive tokens.
ERC-777 tried to fix these issues with hooks that notify contracts when tokens arrive and more efficient operations. It's backward compatible with ERC-20, but adoption has been minimal because added complexity also means more potential security issues.
ERC-1155 supports both fungible and non-fungible tokens in one contract, making it popular for gaming and metaverse projects where you need currencies and unique items.
ERC-4626 standardizes yield-bearing tokens, making DeFi vaults interoperable.
So why does ERC-20 still dominate? Network effects. Every wallet, exchange, and protocol already supports it. It's simple and battle-tested after years of use.
The limitations are known and worked around. New standards might be technically better, but they're fighting against an ecosystem that already speaks ERC-20.
You'll need an Ethereum-compatible wallet like MetaMask, Trust Wallet, or a hardware wallet like a Ledger or Trezor.
One Ethereum address receives all your ERC-20 tokens. The wallet automatically detects popular tokens, but you might need to manually add the contract address for newer or obscure ones.
ETH Gas: You need ETH to send ERC-20 tokens, even if you don't own any ETH. Gas fees for transactions are always paid in ETH, not in the token you're moving. Having 1,000 USDC but zero ETH means you can't send those tokens anywhere. Always keep some ETH in your wallet for transaction fees, also known as gas.
Just because a token follows ERC-20 doesn't mean it's legitimate. Scammers can deploy compliant tokens in minutes.
Before interacting with any token, check the contract on Etherscan. Look for verified contracts (with published source code), security audits from reputable firms, and reasonable holder counts. Be suspicious of tokens with very few holders, especially if they're marketing heavily.
Always verify the contract address from official sources. Scam tokens often impersonate popular projects with similar names and symbols. Copy the address from the project's official website or verified social media, never from random Telegram messages or DMs.
A rug pull token can follow every ERC-20 rule perfectly and still drain your wallet through malicious functions built into the contract.
ERC-20 did something deceptively simple: it made tokens predictable. Six required functions created universal compatibility, transforming Ethereum into the foundation of the token economy.
Despite newer alternatives with technical improvements, ERC-20 remains dominant because of network effects. Understanding this one standard unlocks how most of the crypto ecosystem actually works.
Now that you understand the infrastructure behind Ethereum tokens,
LearningCrypto guides you on what to actually do with them.
Get instant answers about any token or protocol through our AI chat assistants.
Track your portfolio across multiple chains with professional tools.
Access real-time market data and on-chain analytics that show you what's actually happening beyond the price charts.
Our team shares exactly what we're holding and why, backed by years of experience building and investing in this space.
Yes, you can. Anyone can deploy an ERC-20 token by creating a smart contract with the required functions. You can use templates or token generation platforms to launch one in minutes for just the gas fees. Creating a token is the easy part. Building something people actually want to use is where the real work starts.
Technically, ERC-20 refers specifically to the Ethereum blockchain. But, EVM-compatible chains like BSC, Polygon, and Avalanche use the same standard with different names (e.g., BEP-20 on BSC). They function identically because the chains copy Ethereum's virtual machine.
When tokens bridge between chains, they're either locked on Ethereum with wrapped versions created elsewhere, or they exist natively on multiple chains as separate but related tokens.
Not quite. Simple transfers incur similar costs across tokens, but some contracts include additional logic that increases gas consumption. Tokens with burn mechanisms, reflection rewards, or transaction taxes cost more to move than basic tokens. Network congestion affects everything equally, though, so when gas is expensive, it's expensive for all ERC-20 transactions.
ERC-20 is specific to Ethereum and EVM-compatible chains. Solana has its own token standard (SPL tokens) that works completely differently because Solana's architecture is fundamentally different from Ethereum. The same goes for Cardano (native tokens), Cosmos (IBC tokens), and other non-EVM chains.
Solana tokens are way cheaper and faster to transfer than ERC-20 tokens, but you're working within Solana's ecosystem instead of Ethereum's massive DeFi infrastructure. You can't natively use a Solana token in an Ethereum DeFi protocol without bridging, and bridges introduce their own risks and costs.
Not really. A token's standard is baked into its smart contract at deployment. You can't transform an ERC-20 token into an ERC-721 NFT or switch standards.
What you can do is create a new token and set up a swap mechanism. Some projects migrated from ERC-20 to their own blockchain this way (like Binance Coin moving to Binance Chain). Or you can wrap tokens by locking the originals and minting representations on another chain. But the original token stays ERC-20.
Gone. Probably forever.
Send tokens to an address nobody controls, and there's no recovery. Send them to a contract that can't handle tokens, and they're stuck. Blockchain transactions are irreversible, and ERC-20 has no built-in protection against this. Thousands of tokens have been lost this way.
WBTC locks real Bitcoin with a custodian who mints equivalent ERC-20 tokens on Ethereum. It's Bitcoin's value in a format that works with Ethereum DeFi.
WETH exists because ETH itself predates ERC-20 and isn't compliant with the standard. To use ETH in protocols that require ERC-20 tokens, you wrap it at a 1:1 ratio. You can always unwrap it back to regular ETH. That's why DeFi protocols sometimes ask you to wrap your ETH first.
Disclaimer: This article is for educational purposes only and does not constitute financial advice. Cryptocurrency investments carry risk; you should always do your own research before making any investment decisions.
Disclaimer: This article is for educational purposes only and does not constitute financial advice. Cryptocurrency investments carry risk; you should always do your own research before making any investment decisions.