Independent review. This site is not the official website and is not affiliated with, endorsed by, or operated by the wallet vendor reviewed here. Never enter your seed phrase or private keys on any third-party site.

Token Management & Custom Token Contracts

Try Tangem secure wallet →

Quick summary

This page explains practical token management in MetaMask: how the software wallet discovers balances, how to add custom tokens, why a token can be missing, and the security trade-offs when you interact with token contracts. I use MetaMask daily for swaps and small DeFi positions, and I've learned (the hard way) to double-check contract addresses before adding a token. And yes, I once approved a malicious allowance — I revoked it later.

If you need setup help first, see the setup-desktop and setup-mobile guides. For adding networks like BSC or Polygon before adding tokens, see add-bsc and add-polygon.

How MetaMask shows tokens

MetaMask is a non-custodial hot wallet. It shows token balances by querying the blockchain via your current RPC provider. When the wallet lists an ERC-20 (or BEP20 on an EVM-compatible chain) token it generally calls balanceOf on the token contract and then applies the token's decimals to display a human number. Short version: MetaMask reads the contract; it does not invent balances.

That means two things:

Try Tangem secure wallet →
  • If the token lives on a different chain than the one you have active, MetaMask won't show it.
  • If the token has unusual decimals or the contract isn't verified, the balance can display wrong or not at all.

What I've found is that most "missing token" problems are just network or contract-metadata issues. Fix the network or add the token manually and the balance usually appears within seconds.

How to add a token — step by step

Why add a custom token? Because not every new token is in MetaMask's detection lists. Want to add one yourself? Follow the steps below.

Desktop extension (step by step)

  1. Open the MetaMask extension and make sure you're on the correct network.
  2. Click "Assets" then "Import tokens" (or "Add Token").
  3. Paste the token contract address into the Contract Address field.
  4. MetaMask will often auto-fill Token Symbol and Decimals. Confirm them.
  5. Click "Add Custom Token" then "Import Tokens".

Tip: take a screenshot of the token details (contract, symbol, decimals) before you confirm any transfers. That saved me when I cross-checked a confused transfer later.

Screenshot: Add Custom Token dialog (extension)

Mobile app (step by step)

  1. Open the mobile app and confirm the active network.
  2. Tap the "Assets" tab, then the plus/add icon.
  3. Choose "Custom Token" and paste the token contract address.
  4. Confirm symbol and decimals, then add.

Mobile and extension behave the same conceptually. The UI differs.

Add via token contract address (metamask token contract address)

Where do you get the contract address? From a blockchain explorer for the chain that hosts the token (for example, Etherscan for Ethereum). Look for a verified contract, check total supply and the project's official site or verified social links. But do not copy an address from a random Twitter post. But remember, copying contract addresses from social posts is risky.

MetaMask uses that contract address to call balanceOf and show your holding.

Adding BEP20 tokens (metamask token bep20)

BEP20 tokens live on Binance Smart Chain (BSC) but they follow the same ERC-20-like standard because BSC is EVM-compatible. To add a BEP20 token:

  1. Add the BSC network in MetaMask (see add-bsc or add-custom-network).
  2. Switch to BSC in MetaMask.
  3. Use the token contract address from BscScan and add it as a custom token.

If you try to add a BEP20 contract while on Ethereum mainnet, MetaMask won't show a balance — the contract exists only on BSC.

Troubleshooting: metamask token missing

Common causes and fixes:

  • Wrong network selected — switch networks.
  • Token not added — use the contract address to add it.
  • RPC node caching or slow responses — switch RPC in settings or retry later.
  • Incorrect decimals or symbol — manual correction when adding solves this.

If balances still don't appear, check the transaction on a block explorer and confirm the token transfer succeeded. See not-showing-balance for step-by-step debugging.

Token management feature comparison

Here is a quick feature table across MetaMask platforms to set expectations.

Feature Desktop extension Mobile app Hardware-connected (via extension)
Add custom token (by contract) Yes Yes Yes (via extension)
Auto token detection Yes (token lists + detection) Yes (mobile detection) Same as extension
Portfolio / simple chart Basic Basic Basic
Hide token from list Yes Yes Yes
Revoke token approvals (native) No (use external tools) No (use external tools) No (use external tools)
Add tokens on other chains (BEP20, Polygon) Yes (after adding network) Yes Yes

Note: For revoking approvals, see the revoke-approvals guide.

Token approvals and security (revoke & review)

Token allowance (token approval) is how dApps can move tokens on your behalf. Many dApps request an "infinite" approval to save users repeated transactions. That is convenient. It is also a risk. I believe you should limit approvals to what's needed, and check allowances regularly.

MetaMask shows connected sites and allows disconnects, but it does not provide a full revoke-allowance UI. Use the guide at revoke-approvals to scan and revoke large allowances. Also consider using a smart-contract wallet or session keys for higher-value operations.

Phishing dApps will ask for approvals they don't need. Ask: does this dApp need to move my tokens? If not, refuse. For more on scams, see phishing-scams-and-email-frauds.

Advanced: interacting with custom token contracts

Need to confirm token details manually? Use a block explorer to "Read Contract" for balanceOf and "Write Contract" only if you know what you're doing. When adding a token, decimals matter: a raw on-chain balance like 123450000000000000000000 maps to 123,450 tokens if the decimals are 18. Long math. But necessary.

If you're a developer or advanced user, you can also interact with the contract ABI from the explorer or use the extension's "Contact"/Add Token flow to test transfers at low value first. Why test? Because if the token has transfer hooks or tax logic, your first transfer may not equal the number you expect.

FAQ

Q: Is it safe to keep crypto in a hot wallet? A: Hot wallets like MetaMask are convenient and fine for daily DeFi activity. They are not as secure as hardware wallets for large holdings. Use small balances on hot wallets and move cold storage for long-term holdings. See hardware-best-practices and backup-and-recovery-options.

Q: How do I revoke token approvals? A: Use a dedicated allowance revocation tool or follow the steps at revoke-approvals. Disconnecting a site in MetaMask does not automatically remove allowances on token contracts.

Q: What happens if I lose my phone? A: If you have your seed phrase and private keys backed up (safely), you can restore your wallet on another device. Without your seed phrase, funds are unrecoverable. See backup-and-recovery-options.

Q: Why is my token balance zero after adding it? A: Usually because you added the token on the wrong network or used the wrong contract address. Double-check the contract address and the active network (e.g., BSC vs Ethereum).

Conclusion & next steps

Token management in this software wallet is straightforward once you understand networks, contract addresses, and decimals. Add tokens by contract address when they don't appear automatically, always verify the contract on a block explorer, and regularly review token approvals. But keep a healthy skepticism: confirm every contract before approving it.

If you want practical how-tos next, check: how-to-import-token, add-bsc, add-polygon, and revoke-approvals. For DeFi usage and swap tips see built-in-swap and connect-to-dapps.

Stay cautious. Test with small amounts first.

Try Tangem secure wallet →