How MetaMask Handles Tokens
When you receive tokens, they arrive in your wallet on the blockchain immediately. But MetaMask needs to know about the token contract to display the balance. Think of it like a contact list: the tokens are already “calling” your address, but MetaMask doesn’t know how to read them until you add the token’s details.
MetaMask stores a list of known tokens and can detect many automatically. For anything not on that list, you add the token manually using its contract address.
Method 1: Auto-Detect Tokens
MetaMask has a token auto-detection feature that scans your address and finds ERC-20 tokens you hold. This is the easiest method and works for most popular tokens.
How to enable and use auto-detection:
- Open MetaMask
- Return to your wallet’s main screen
When tokens are detected, a notification appears at the bottom of the screen asking if you want to add them. Click the notification to review and confirm.
Limitation: Auto-detection works best on Ethereum Mainnet. On other networks (BSC, Polygon, Arbitrum), you may still need to add tokens manually.
Method 2: Add Token Manually by Contract Address
For any token not auto-detected, you can add it manually using the contract address. Every ERC-20 token has a unique contract address — a 42-character string starting with 0x.
Step-by-Step: Add Token Manually
- Open MetaMask and make sure you’re on the correct network
- MetaMask automatically fills in the token symbol and decimal places
- Verify the symbol matches what you expect
The token now appears in your MetaMask balance. If you hold any, the amount shows immediately.
How to Find a Token’s Contract Address
Getting the correct contract address is critical — fake tokens exist with identical names and symbols. Always verify the contract address from a trusted source.
Method A: CoinGecko
- Search for the token by name
- Click the chain icon to select the right network (Ethereum, BSC, etc.)
- Copy the contract address shown
Method B: CoinMarketCap
- Search for the token
- Select the network and copy the address
Method C: Etherscan (Ethereum tokens)
- Search for the token name
- Click on the verified token contract
- Copy the contract address from the top of the contract page
Method D: The Project’s Official Website
Many crypto projects list their token contract address prominently on their website or official documentation. Always use the official site — not social media links.
Adding Tokens on Different Networks
MetaMask supports multiple networks, and the same token on different networks has a different contract address. Make sure you’re on the right network before adding.
Ethereum Mainnet
Most ERC-20 tokens live here. Common examples: USDC, USDT, LINK, UNI, AAVE.
BNB Smart Chain (BSC)
BSC tokens are BEP-20 standard. Add BSC network first, then add tokens. Popular BSC tokens: CAKE (PancakeSwap), BUSD.
BSC Network settings:
- Network name: BNB Smart Chain
- RPC URL: https://bsc-dataseed.binance.org/
- Chain ID: 56
- Symbol: BNB
- Explorer: https://bscscan.com
Polygon (MATIC)
Polygon has its own versions of many tokens, including bridged USDC, USDT, and WETH. Add Polygon network first.
Polygon Network settings:
- Network name: Polygon Mainnet
- RPC URL: https://polygon-rpc.com/
- Chain ID: 137
- Symbol: MATIC
- Explorer: https://polygonscan.com
Arbitrum One
Layer 2 tokens on Arbitrum. Chain ID: 42161.
Optimism
Layer 2 on Ethereum. Chain ID: 10.
Network Token Reference Table
| Token | Ethereum Address | Note |
|---|---|---|
| USDC | 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 | Circle’s stablecoin |
| USDT | 0xdAC17F958D2ee523a2206206994597C13D831ec7 | Tether |
| LINK | 0x514910771AF9Ca656af840dff83E8264EcF986CA | Chainlink |
| UNI | 0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984 | Uniswap |
| WETH | 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 | Wrapped Ether |
Always verify these addresses on Etherscan before use — use them as starting points for your own verification, not as definitive sources.
Fake Token Warning
The biggest risk when adding tokens manually is adding a fake token. Scammers create tokens with the same name and symbol as popular tokens. If you add the wrong contract address, you might see a fake balance that you can’t actually sell or use.
How to spot fake tokens:
- The contract address doesn’t match any reputable source
- The token contract was created recently with no history
- Etherscan shows the contract as unverified or shows warnings
- You received the tokens unexpectedly (airdrop scam)
- When you try to sell them, the transaction fails or asks for excessive approvals
What to do with suspicious tokens:
- Don’t try to sell or interact with them
- Don’t click any links associated with unexpected airdrops
- Simply ignore them — having a fake token in your wallet is harmless as long as you don’t interact with it
MetaMask’s Token List (Tokenlist)
MetaMask uses community-maintained token lists to power its auto-detection and search features. These lists are curated by projects like Uniswap, Aave, and others. When you search for a token in MetaMask’s Add token search bar, you’re searching these lists.
If a token isn’t on any list, it won’t appear in search results — but you can still add it manually with the contract address.
FAQ
I added a token but the balance shows 0 — why?
You might not actually hold any of that token. Adding a token to MetaMask just tells MetaMask to display the balance — it doesn’t create tokens. Check your address on Etherscan to confirm whether you hold any.
Can I add tokens on testnets?
Yes. Switch to the testnet (e.g., Sepolia) and add the token’s contract address on that testnet. Testnet tokens have separate contract addresses from mainnet.
Why does MetaMask show the wrong token symbol after I enter a contract address?
Some contracts are set up with unusual or misleading symbols. Double-check the contract address on Etherscan to make sure it matches the token you intended to add.
Can I add NFTs to MetaMask?
MetaMask has basic NFT display. Go to the NFTs tab and click Import NFTs, then enter the contract address and token ID. More advanced NFT management is better handled in dedicated apps like OpenSea or Rainbow.
How do I remove a token I added by mistake?
On desktop: Click the three dots next to the token → Hide token. On mobile: Long-press the token → Hide. This removes it from view but doesn’t affect the blockchain — your tokens are still there.
Do I need to add ETH itself as a token?
No. ETH (and the native gas token of any network) displays automatically. You only need to add ERC-20 tokens.
Related guides:

Leave a Reply