Add Custom Token Contract to MetaMask — ERC20, BEP20, Polygon
Quick overview
Adding a custom token contract to MetaMask is a common task when you interact with DeFi or hold tokens not auto-detected by the wallet. This guide shows practical, repeatable steps for desktop and mobile, covers Ethereum ERC20, Binance Smart Chain BEP20, and Polygon tokens, and explains how to verify contract addresses before you import anything.
I believe clear steps and concrete checks keep your hot wallet safer. What I've found is that most issues come from wrong network selection or copying an unsafe contract address.
Checklist before you start
- Have the token contract address handy from an official source (project website, official social, or the chain's block explorer).
- Know the correct network to use: Ethereum mainnet, BSC, or Polygon.
- Make sure you control your seed phrase and can recover the wallet if needed.
- Keep a small test amount to verify an incoming token transfer before moving large amounts.
And always double-check the contract on the block explorer for that chain before you paste it into MetaMask.
How I tested this guide (replicate my steps)
I tested these flows on the MetaMask browser extension in Chrome and on the MetaMask mobile app for Android and iOS. I added tokens to Ethereum, a custom BSC RPC, and a Polygon RPC. Tests included:
You can replicate my tests using a small amount of test tokens or testnet equivalents. (I used a small transfer to confirm the token appeared and then removed it.)
Step by step: Add custom token in MetaMask (desktop extension)
- Open the MetaMask extension and switch to the target network at the top of the popup (Ethereum, BSC, or Polygon). Wrong network = token won't show.
- Click the Assets tab.
- Scroll down and click Import tokens.
- Paste the token contract address into Token Contract Address.
- MetaMask reads the contract and usually fills Token Symbol and Token Decimals automatically.
- If fields do not auto-fill, manually add the symbol and decimals from the block explorer.
- Click Add Custom Token, then click Import Tokens.
If your balance shows zero after import, that only means this wallet has no tokens on-chain; not that import failed.
But what if MetaMask refuses to accept the address? Confirm you are on the correct network and verify the contract on the explorer for that chain.
Step by step: Add custom token in MetaMask (mobile app)
- Open MetaMask mobile and switch the network at the top.
- Tap Assets.
- Tap Import tokens or Add token.
- Paste the token contract address and wait for symbol and decimals to populate.
- Confirm Add token.
Mobile and desktop behave similarly. The UI layout changes, but the underlying ERC20/BEP20 token read calls are the same.
If you prefer dApp flows, WalletConnect or an injected provider often prompt you to import tokens after first interaction.
Chain differences: ERC20 vs BEP20 vs Polygon tokens
- ERC20 is the token standard on Ethereum. Adding any ERC20 token follows the steps above on the Ethereum mainnet.
- BEP20 on Binance Smart Chain follows the same technical standard as ERC20 for symbol and decimals, but you must add the BSC network to MetaMask first. So answer to the common query is metamask does support bep20 — but only after adding the chain via custom RPC. See add-bsc-smart-chain-to-metamask.
- Polygon uses the same ERC20 interface. MATIC as the native token appears automatically once Polygon is added to MetaMask. If you search for matic contract address metamask, remember that native MATIC is not an ERC20 import; it shows as the chain native balance when you switch to Polygon.
Is the metamask bep20 contract address different from an ERC20 one? It can be. Contracts are separate on each blockchain even if the token symbol looks the same.
Quick comparison table
| Chain |
Add network first? |
Native coin visible by default |
How to find contract address |
| Ethereum (ERC20) |
No |
ETH is native and always visible |
Etherscan or project site |
| BSC (BEP20) |
Yes (add BSC RPC) |
BNB visible after adding network |
BscScan or project site; see add-bsc-smart-chain-to-metamask |
| Polygon |
Yes (add Polygon RPC) |
MATIC visible after adding network |
Polygonscan or project site; see add-polygon-to-metamask |

Security checks and common mistakes
How do you know the contract is safe? Ask these three quick questions before importing:
- Is the address listed on the official project website or a verified block explorer page? (Check contract verification status.)
- Does the token have realistic supply, holders, and activity on the explorer?
- Is the token approval or allowance needed for a smart contract interaction? If so, plan to revoke afterward via token-approvals-and-revoke.
And always beware clones. Scammers can create tokens that mimic a popular symbol. One mistake I made early on was trusting a token symbol without verifying the contract. I paid for that lesson.
If you accidentally imported a spam token, you can hide it in the UI or remove it. See token-management for more.
Who should use MetaMask for token management (and who should not)
- Good fit: people who interact with DeFi, connect to dApps, and move between networks often. MetaMask is flexible for multi-chain workflows after you add custom RPCs.
- Not ideal: people who need cold-storage only. If you handle large balances, pair MetaMask with a hardware wallet; see integrate-hardware-ledger-trezor.
But remember: hot wallets trade convenience for risk. Use small test transfers and hardware for large holdings.
FAQ
Q: Is it safe to keep crypto in a hot wallet like MetaMask?
A: Hot wallets are convenient but carry higher risk than cold storage. For everyday DeFi activity they are practical. For long-term storage of large amounts, consider hardware wallets and use MetaMask only as a software interface.
Q: How do I revoke token approvals?
A: Use the token approvals guide at token-approvals-and-revoke. Revoke approvals you no longer need to limit exposure to malicious contracts.
Q: What happens if I lose my phone?
A: If you still have your seed phrase you can restore the wallet on another device. If you do not have the seed phrase, the wallet cannot be recovered. See backup-and-recovery-seed-phrase for step by step recovery advice.
Conclusion and next steps
Adding custom tokens to MetaMask is straightforward when you prepare the right contract address and use the correct network. I tested the steps across desktop and mobile and found the process consistent across chains once the network is set. If you want to add BSC tokens, follow add-bsc-smart-chain-to-metamask first. For mobile-focused instructions see add-tokens-mobile. To reduce risk with approvals, review token-approvals-and-revoke.
Want a checklist to carry in your wallet? Save the block explorer link for the token you plan to add and confirm the contract before you paste it into MetaMask. And if you hit an error, check troubleshooting-common-errors for quick fixes.