Add Custom Tokens to MetaMask: ERC-20, BEP-20 & Contract Addresses

Try Tangem secure wallet →

Table of contents


Why add a custom token to MetaMask?

MetaMask shows popular tokens automatically on supported networks. But not every token is listed by default. If you received a transfer, are interacting with a DeFi contract, or want to track a bridged token, you may need to add it manually by contract address. Adding a custom token is mostly a UI step. It does not create or move tokens on chain. It simply tells your hot wallet how to display balances and symbols (and decimals).

I've added custom tokens while testing bridges and swaps; the process takes under a minute when you have the right contract address. And yes, mistakes happen — so verify the contract before you paste it.

Token types and MetaMask support (quick comparison)

Token type Typical networks MetaMask support How you add it
ERC-20 (fungible) Ethereum, EVM-compatible L2s Native support Paste contract address (auto-fill symbol/decimals)
BEP-20 (BSC) BNB Smart Chain Native once BSC RPC is added Paste BEP-20 contract on BSC network
Wrapped tokens (e.g., wADA on Ethereum) EVM chains Supported as ERC-20s Add by contract for that chain
Native non‑EVM tokens (e.g., ADA, SOL) Cardano, Solana Not supported natively Use bridge tokens or a chain-native wallet

What to prepare before you add a token

Three pieces of data matter: the token contract address, the token symbol, and the decimals. MetaMask will auto-fill symbol and decimals for verified contracts. If auto-fill fails you can enter them manually. Always confirm:

How do you verify the contract? Check the block explorer for the network. For Ethereum use Etherscan (see using-etherscan-with-metamask). For BSC use BscScan or the equivalent. And do not fetch addresses from random forum posts.

How to add a custom token to MetaMask (Desktop / Browser extension)

Step-by-step (typical flow):

  1. Open the MetaMask extension and confirm you are on the correct network. Wrong network = no balance shown.
  2. Click the "Assets" tab, then "Import tokens" or "Add Token".
  3. Select "Custom Token" and paste the token contract address into the address field.
  4. MetaMask usually auto-populates Token Symbol and Token Decimal. If not, paste those from the block explorer.
  5. Click "Add Custom Token", then "Import Tokens" to finish. The token should appear in your asset list.

Tip: If a token has many decimals (e.g., 18) and your balance looks truncated, check the decimals field on the explorer and correct it manually.

For extension setup help see: install-metamask-chrome-extension.

How to add a custom token to MetaMask Mobile (iOS / Android)

Mobile steps (in-app):

  1. Open MetaMask mobile and switch to the intended network (top of the app).
  2. Tap "Assets" → "Add Tokens" → choose "Custom Token".
  3. Paste the contract address in the token address field. Wait a second for auto-fill.
  4. Confirm Symbol & Decimals, then tap "Add Token".

Mobile UI is optimized for quick adds. In my experience the auto-detect works reliably on common networks, but you may need to type decimals on lesser-known tokens.

If you use WalletConnect or an injected provider from a mobile dApp, the dApp sometimes suggests the token; confirm the contract before accepting.

See general mobile setup: metamask-mobile-ios-android.

Examples: add BUSD or USDT to MetaMask (best practice)

Want to add BUSD or USDT? Important: both exist on multiple chains (Ethereum ERC-20, BSC BEP-20, Tron TRC-20 for USDT). So first pick the network.

Do not copy an address for the wrong network. That mistake is common and leads to an empty balance display even if you hold tokens on another chain.

What about ADA and other non‑EVM tokens?

MetaMask is a software wallet for EVM-compatible chains. It cannot track native Cardano ADA or Solana SOL. You can, however, add a wrapped representation of ADA that exists as an ERC-20 or BEP-20 token; those have contract addresses and can be added if you understand they're bridge representations. But if you hold native ADA, use a Cardano-native wallet. That answers the question "add ada contract metamask"—you can add wrapped tokens, not native ADA.

Troubleshooting: token not showing or wrong balance?

Common causes and fixes:

If you accidentally imported a scam token, you can hide it in MetaMask and then go to token-allowances-and-revoke to check approvals for related contracts.

Security checklist before pasting any contract address

If you need a protocol guide for safe interaction, see security-checklist and using-etherscan-with-metamask.

FAQ: fast answers to common questions

Q: Is it safe to add a custom token?
A: Adding a token is safe — it only changes what your wallet displays. The risk is interacting with malicious contracts afterward. Always verify first.

Q: How do I remove or hide a token?
A: Open the token in MetaMask and use the hide/remove option. Hiding only affects the UI, not the ledger.

Q: What happens if I paste the wrong contract address?
A: You may see no balance or the wrong token. Double-check on the explorer and remove the incorrect token. But interacting with a wrong contract can be dangerous — avoid approvals unless verified.

Who should add custom tokens — and who should look elsewhere

Add custom tokens if you actively trade, bridge, or track bridged assets across EVM-compatible chains. I believe active DeFi users and testers benefit most. But if you only hold native coins on non‑EVM chains (Cardano, Solana), consider a chain-native wallet instead.

Conclusion & next steps

Adding a custom token to MetaMask is a short, repeatable process once you know the contract address and the right network. Double-check every address, verify on a block explorer, and avoid approving unknown contracts. But if you want step-by-step visual guides for installation or mobile setup, visit the install and mobile setup pages: install-metamask-chrome-extension and metamask-mobile-ios-android.

If you're working with bridges or L2s, check bridges-cross-chain-security and add-polygon-to-metamask for network-specific tips.

Try Tangem secure wallet →