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.
And always double-check the contract on the block explorer for that chain before you paste it into MetaMask.
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.)
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.
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.
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.
| 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 |
How do you know the contract is safe? Ask these three quick questions before importing:
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.
But remember: hot wallets trade convenience for risk. Use small test transfers and hardware for large holdings.
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.
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.