ETH/USD$2,393.43LIVE
BTC/USD$81,228.08LIVE
SOL/USD$103.53LIVE
XRP/USD$1.31LIVE
ADA/USD$0.21LIVE
DOT/USD$1.11LIVE
BNB/USD$740.10LIVE
ETH/USD$2,393.43LIVE
BTC/USD$81,228.08LIVE
SOL/USD$103.53LIVE
XRP/USD$1.31LIVE
ADA/USD$0.21LIVE
DOT/USD$1.11LIVE
BNB/USD$740.10LIVE
ETH/USD$2,393.43LIVE
BTC/USD$81,228.08LIVE
SOL/USD$103.53LIVE
XRP/USD$1.31LIVE
ADA/USD$0.21LIVE
DOT/USD$1.11LIVE
BNB/USD$740.10LIVE
ETH/USD$2,393.43LIVE
BTC/USD$81,228.08LIVE
SOL/USD$103.53LIVE
XRP/USD$1.31LIVE
ADA/USD$0.21LIVE
DOT/USD$1.11LIVE
BNB/USD$740.10LIVE
Skip to content
Guide + verified token list · Updated October 21, 2026

How to Import a Token to MetaMask (and the Real USDC, USDT & WETH Addresses)

Short answer · Updated October 21, 2026

Switch MetaMask to the network the token is on, open Manage tokens (Mobile: the + in the tokens section), search for it or choose Add custom token, paste the contract address and Import. Use the issuer’s address: native USDC is 0x8335…2913 on Base and 0xA0b8…eB48 on Ethereum; USDT is 0xdAC1…1ec7 on Ethereum. Or press Add to MetaMask below.

Privacy: We never ask to connect your account. Add to MetaMask only sends the token’s address, symbol and decimals to your own wallet for approval. The checker reads public contract data from the network’s RPC in your browser.

Verified token contract addresses (82 contracts, 24 networks)

Search a token (USDC, USDT, WETH…) or pick a network. Add to MetaMask switches your wallet to the right network if needed and asks it to import the token (you approve it in the wallet). Every address was read on-chain and matched to the issuer’s docs or a major token list.

Showing 24 of 79 matching (82 total)

  • USDC on Ethereum Mainnet

    Stablecoin

    0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48

    On-chain: USD Coin (USDC) · 6 decimals · chain ID 1. Native USDC issued by Circle.

    Explorer Source
  • USDC on Arbitrum One

    Stablecoin

    0xaf88d065e77c8cC2239327C5EDb3A432268e5831

    On-chain: USD Coin (USDC) · 6 decimals · chain ID 42161. Native USDC issued by Circle.

    Explorer Source
  • USDC on OP Mainnet

    Stablecoin

    0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85

    On-chain: USD Coin (USDC) · 6 decimals · chain ID 10. Native USDC issued by Circle.

    Explorer Source
  • USDC on Base

    Stablecoin

    0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

    On-chain: USD Coin (USDC) · 6 decimals · chain ID 8453. Native USDC issued by Circle.

    Explorer Source
  • USDC on Polygon PoS

    Stablecoin

    0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359

    On-chain: USD Coin (USDC) · 6 decimals · chain ID 137. Native USDC issued by Circle.

    Explorer Source
  • USDC on BNB Smart Chain

    Stablecoin

    0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d

    On-chain: USD Coin (USDC) · 18 decimals · chain ID 56. Binance-Peg token issued by Binance, not by the original issuer; uses 18 decimals, not 6.

    Explorer Source
  • USDC on Avalanche C-Chain

    Stablecoin

    0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E

    On-chain: USD Coin (USDC) · 6 decimals · chain ID 43114. Native USDC issued by Circle.

    Explorer Source
  • USDC on ZKsync Era

    Stablecoin

    0x1d17CBcF0D6D143135aE902365D2E5e2A16538D4

    On-chain: USDC (USDC) · 6 decimals · chain ID 324. Native USDC issued by Circle.

    Explorer Source
  • USDC on Linea

    Stablecoin

    0x176211869cA2b568f2A7D4EE941E073a821EE1ff

    On-chain: USDC (USDC) · 6 decimals · chain ID 59144. Native USDC issued by Circle.

    Explorer Source
  • USDC on Unichain

    Stablecoin

    0x078D782b760474a361dDA0AF3839290b0EF57AD6

    On-chain: USDC (USDC) · 6 decimals · chain ID 130. Native USDC issued by Circle.

    Explorer Source
  • USDC on Celo

    Stablecoin

    0xcebA9300f2b948710d2653dD7B07f33A8B32118C

    On-chain: USDC (USDC) · 6 decimals · chain ID 42220. Native USDC issued by Circle.

    Explorer Source
  • USDC on Sonic

    Stablecoin

    0x29219dd400f2Bf60E5a23d13Be72B486D4038894

    On-chain: USDC (USDC) · 6 decimals · chain ID 146. Native USDC issued by Circle.

    Explorer Source
  • USDC on World Chain

    Stablecoin

    0x79A02482A880bCE3F13e09Da970dC34db4CD24d1

    On-chain: USDC (USDC) · 6 decimals · chain ID 480. Native USDC issued by Circle.

    Explorer Source
  • USDC on Ink

    Stablecoin

    0x2D270e6886d130D724215A266106e6832161EAEd

    On-chain: USDC (USDC) · 6 decimals · chain ID 57073. Native USDC issued by Circle.

    Explorer Source
  • USDC on Monad

    Stablecoin

    0x754704Bc059F8C67012fEd69BC8A327a5aafb603

    On-chain: USDC (USDC) · 6 decimals · chain ID 143. Native USDC issued by Circle.

    Explorer Source
  • USDC on HyperEVM (Hyperliquid)

    Stablecoin

    0xb88339CB7199b77E23DB6E890353E22632Ba630f

    On-chain: USDC (USDC) · 6 decimals · chain ID 999. Native USDC issued by Circle.

    Explorer Source
  • USDC on Sei

    Stablecoin

    0xe15fC38F6D8c56aF07bbCBe3BAf5708A2Bf42392

    On-chain: USDC (USDC) · 6 decimals · chain ID 1329. Native USDC issued by Circle.

    Explorer Source
  • USDC on Plasma

    Stablecoin

    0x2d661C89D812261039AF9764eceaAee884f5F67F

    On-chain: USDC (USDC) · 6 decimals · chain ID 9745. Native USDC issued by Circle.

    Explorer Source
  • USDC on Cronos EVM

    Stablecoin

    0x3D7F2C478aAfdB65542BCB44bCeeC05849999d2D

    On-chain: USDC (USDC) · 6 decimals · chain ID 25. Native USDC issued by Circle.

    Explorer Source
  • USDT on Ethereum Mainnet

    Stablecoin

    0xdAC17F958D2ee523a2206206994597C13D831ec7

    On-chain: Tether USD (USDT) · 6 decimals · chain ID 1. USDT issued by Tether.

    Explorer Source
  • USDT on Arbitrum One

    Stablecoin

    0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9

    On-chain: USD₮0 (USD₮0) · 6 decimals · chain ID 42161. USDT0, Tether's omnichain USDT (LayerZero); wallets show it as USD₮0 or USDT0.

    Explorer Source
  • USDT on OP Mainnet

    Stablecoin

    0x01bFF41798a0BcF287b996046Ca68b395DbC1071

    On-chain: USD₮0 (USD₮0) · 6 decimals · chain ID 10. USDT0, Tether's omnichain USDT (LayerZero); wallets show it as USD₮0 or USDT0.

    Explorer Source
  • USDTlegacy on OP Mainnet

    Stablecoin

    0x94b008aA00579c1307B0EF2c499aD98a8ce58e58

    On-chain: Tether USD (USDT) · 6 decimals · chain ID 10. Older bridged USDT from the OP standard bridge; Tether's current OP Mainnet token is USDT0.

    Explorer Source
  • USDT on Polygon PoS

    Stablecoin

    0xc2132D05D31c914a87C6611C10748AEb04B58e8F

    On-chain: USDT0 (USDT0) · 6 decimals · chain ID 137. USDT0, Tether's omnichain USDT (LayerZero); wallets show it as USD₮0 or USDT0.

    Explorer Source

Is this token contract real? Check any address

Paste a token contract address and pick its network. We read its name, symbol, decimals and supply from the network’s public RPC, straight from your browser, and compare it with the verified list. No wallet connection.

82

token contracts verified on-chain across 24 networks

21

USDC contracts: Circle’s own on 18 mainnets and 2 testnets, plus Binance-Peg on BNB Chain

6 vs 18

decimals: USDC/USDT on most chains vs Binance-Peg on BNB Smart Chain

0x4200…0006

the same WETH address on Base, OP Mainnet, Unichain, Ink and World Chain

How to import a token to MetaMask, step by step

  1. 1

    Switch MetaMask to the token’s network

    A token contract exists on one network only. USDC on Base and USDC on Ethereum are different contracts at different addresses. Select the network the token was sent on first; if it isn’t in MetaMask yet, add it (see our add-a-network guide).

  2. 2

    Check whether MetaMask already found it

    MetaMask’s token detection runs on Ethereum and, with Basic Functionality on, on Linea, Avalanche, BNB Smart Chain, Polygon, Arbitrum, Optimism, Base and zkSync. If the token isn’t on your Tokens list, MetaMask’s Help Center suggests refreshing the list from the three-dot menu first.

  3. 3

    Get the contract address from a source you trust

    Use the issuer’s own site (Circle for USDC, Tether for USDT), the network’s block explorer, CoinGecko or the verified list on this page. Never use an address from a DM, an airdrop or a “support” chat.

  4. 4

    Open Import / Manage tokens

    Extension: click the three dots in the tokens section and choose “Manage tokens”, then search by name, or scroll to the bottom and choose “Add custom token”. Mobile: expand the tokens section and tap “+”, search, or switch to the “Custom token” tab.

  5. 5

    Paste the address, check the details, Import

    Paste the contract address. MetaMask fills in the symbol and decimals from the contract. Check they match the verified list (USDC and USDT use 6 decimals on most networks, but 18 on BNB Smart Chain), then click Next and Import.

  6. 6

    Still zero? Check the network and the transaction

    If the balance is 0, look up your address on the explorer for that network. If the tokens are on another network, switch to it. If there is no incoming transfer at all, nothing arrived yet.

Network missing from MetaMask? Use how to add a network to MetaMask (chain IDs and RPCs for 45 networks). Tokens sent on a network you didn’t expect? See sent crypto to the wrong network.

USDC contract address on every network

Native USDC is issued by Circle; these addresses match Circle’s list and were read on-chain. Older bridged versions (USDC.e, USDbC) are different tokens at different addresses. On BNB Smart Chain, Circle doesn’t issue USDC; the common token there is Binance-Peg USDC with 18 decimals.

NetworkContract addressDecimalsNotes
Ethereum Mainnet0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB486Native USDC issued by Circle
Arbitrum One0xaf88d065e77c8cC2239327C5EDb3A432268e58316Native USDC issued by Circle
OP Mainnet0x0b2C639c533813f4Aa9D7837CAf62653d097Ff856Native USDC issued by Circle
Base0x833589fCD6eDb6E08f4c7C32D4f71b54bdA029136Native USDC issued by Circle
Polygon PoS0x3c499c542cEF5E3811e1192ce70d8cC03d5c33596Native USDC issued by Circle
BNB Smart Chain0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d18Binance-Peg token issued by Binance, not by the original issuer; uses 18 decimals, not 6
Avalanche C-Chain0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E6Native USDC issued by Circle
ZKsync Era0x1d17CBcF0D6D143135aE902365D2E5e2A16538D46Native USDC issued by Circle
Linea0x176211869cA2b568f2A7D4EE941E073a821EE1ff6Native USDC issued by Circle
Unichain0x078D782b760474a361dDA0AF3839290b0EF57AD66Native USDC issued by Circle
Celo0xcebA9300f2b948710d2653dD7B07f33A8B32118C6Native USDC issued by Circle
Sonic0x29219dd400f2Bf60E5a23d13Be72B486D40388946Native USDC issued by Circle
World Chain0x79A02482A880bCE3F13e09Da970dC34db4CD24d16Native USDC issued by Circle
Ink0x2D270e6886d130D724215A266106e6832161EAEd6Native USDC issued by Circle
Monad0x754704Bc059F8C67012fEd69BC8A327a5aafb6036Native USDC issued by Circle
HyperEVM (Hyperliquid)0xb88339CB7199b77E23DB6E890353E22632Ba630f6Native USDC issued by Circle
Sei0xe15fC38F6D8c56aF07bbCBe3BAf5708A2Bf423926Native USDC issued by Circle
Plasma0x2d661C89D812261039AF9764eceaAee884f5F67F6Native USDC issued by Circle
Cronos EVM0x3D7F2C478aAfdB65542BCB44bCeeC05849999d2D6Native USDC issued by Circle
Sepolia (testnet)0x1c7D4B196Cb0C7B01d743Fbc6116a902379C72386Native USDC issued by Circle
Base Sepolia (testnet)0x036CbD53842c5426634e7929541eC2318f3dCF7e6Native USDC issued by Circle

USDT contract address by network

On Ethereum, Avalanche and Celo, USDT is Tether’s own token. On Arbitrum, OP Mainnet, Polygon, HyperEVM, Ink, MegaETH and Berachain, Tether’s current version is USDT0 (an omnichain USDT). The old bridged USDT on OP Mainnet still exists and is marked legacy.

NetworkContract addressDecimalsNotes
Ethereum Mainnet0xdAC17F958D2ee523a2206206994597C13D831ec76USDT issued by Tether
Arbitrum One0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb96USDT0, Tether's omnichain USDT (LayerZero); wallets show it as USD₮0 or USDT0
OP Mainnet0x01bFF41798a0BcF287b996046Ca68b395DbC10716USDT0, Tether's omnichain USDT (LayerZero); wallets show it as USD₮0 or USDT0
OP Mainnet0x94b008aA00579c1307B0EF2c499aD98a8ce58e586Older bridged USDT from the OP standard bridge; Tether's current OP Mainnet token is USDT0
Polygon PoS0xc2132D05D31c914a87C6611C10748AEb04B58e8F6USDT0, Tether's omnichain USDT (LayerZero); wallets show it as USD₮0 or USDT0
BNB Smart Chain0x55d398326f99059fF775485246999027B319795518Binance-Peg token issued by Binance, not by the original issuer; uses 18 decimals, not 6
Avalanche C-Chain0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c76USDT issued by Tether
Celo0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e6USDT issued by Tether
Ink0x0200C29006150606B650577BBE7B6248F58470c16USDT0, Tether's omnichain USDT (LayerZero); wallets show it as USD₮0 or USDT0
HyperEVM (Hyperliquid)0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb6USDT0, Tether's omnichain USDT (LayerZero); wallets show it as USD₮0 or USDT0
MegaETH0xB8CE59FC3717ada4C02eaDF9682A9e934F625ebb6USDT0, Tether's omnichain USDT (LayerZero); wallets show it as USD₮0 or USDT0
Berachain0x779Ded0c9e1022225f8E0630b35a9b54bE7137366USDT0, Tether's omnichain USDT (LayerZero); wallets show it as USD₮0 or USDT0

WETH contract address by network

WETH is ETH wrapped as an ERC-20 token. You don’t need to import it to hold ETH: plain ETH, the gas coin, always shows automatically. Import WETH only if you received or swapped into it.

NetworkContract addressDecimalsNotes
Ethereum Mainnet0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc218The original WETH9 contract
Arbitrum One0x82aF49447D8a07e3bd95BD0d56f35241523fBab118Bridged WETH from the Arbitrum token bridge
OP Mainnet0x420000000000000000000000000000000000000618OP Stack predeploy: same address on every OP Stack chain
Base0x420000000000000000000000000000000000000618OP Stack predeploy: same address on every OP Stack chain
Polygon PoS0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f61918Bridged WETH (Polygon PoS bridge)
ZKsync Era0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a9118Bridged WETH (ZKsync canonical bridge)
Linea0xe5D7C2a44FfDDf6b295A15c148167daaAf5Cf34f18Bridged WETH (Linea canonical bridge)
Scroll0x530000000000000000000000000000000000000418Scroll predeploy
Unichain0x420000000000000000000000000000000000000618OP Stack predeploy: same address on every OP Stack chain
World Chain0x420000000000000000000000000000000000000618OP Stack predeploy: same address on every OP Stack chain
Ink0x420000000000000000000000000000000000000618OP Stack predeploy: same address on every OP Stack chain
Sepolia (testnet)0xfFf9976782d46CC05630D1f6eBAb18b2324d6B1418Testnet WETH (no value)

DAI, WBTC, stETH, wstETH, LINK and other token addresses

TokenNetworkContract addressDec.
DAIEthereum Mainnet0x6B175474E89094C44Da98b954EedeAC495271d0F18
DAIArbitrum One0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da118
DAIOP Mainnet0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da118
DAIBase0x50c5725949A6F0c72E6C4a641F24049A917DB0Cb18
DAIPolygon PoS0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A06318
USDSEthereum Mainnet0xdC035D45d973E3EC169d2276DDab16f1e407384F18
EURCEthereum Mainnet0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c6
EURCBase0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb426
PYUSDEthereum Mainnet0x6c3ea9036406852006290770BEdFcAbA0e23A0e86
USDeEthereum Mainnet0x4c9EDD5852cd905f086C759E8383e09bff1E68B318
WBTCEthereum Mainnet0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C5998
WBTCArbitrum One0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f8
cbBTCEthereum Mainnet0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf8
cbBTCBase0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf8
stETHEthereum Mainnet0xae7ab96520DE3A18E5e111B5EaAb095312D7fE8418
wstETHEthereum Mainnet0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca018
wstETHArbitrum One0x5979D7b546E38E414F7E9822514be443A480052918
wstETHOP Mainnet0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb18
wstETHBase0xc1CBa3fCea344f92D9239c08C0568f6F2F0ee45218
rETHEthereum Mainnet0xae78736Cd615f374D3085123A210448E74Fc639318
cbETHEthereum Mainnet0xBe9895146f7AF43049ca1c1AE358B0541Ea4970418
ETH (Binance-Peg)BNB Smart Chain0x2170Ed0880ac9A755fd29B2688956BD959F933F818
WETH.eAvalanche C-Chain0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB18
WBNBBNB Smart Chain0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c18
WPOLPolygon PoS0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf127018
WAVAXAvalanche C-Chain0xB31f66AA3C1e785363F0875A1B74E27b85FD66c718
LINKEthereum Mainnet0x514910771AF9Ca656af840dff83E8264EcF986CA18
UNIEthereum Mainnet0x1f9840a85d5aF5bf1D1762F925BDADdC4201F98418
AAVEEthereum Mainnet0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE918
POLEthereum Mainnet0x455e53CBB86018Ac2B8092FdCd39d8444aFFC3F618
ARBEthereum Mainnet0xB50721BCf8d664c30412Cfbc6cf7a15145234ad118
ARBArbitrum One0x912CE59144191C1204E64559FE8253a0e49E654818
OPOP Mainnet0x420000000000000000000000000000000000004218
LDOEthereum Mainnet0x5A98FcBEA516Cf06857215779Fd812CA3beF1B3218
ENSEthereum Mainnet0xC18360217D8F7Ab5e7c516566761Ea12Ce7F9D7218
SHIBEthereum Mainnet0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE18
PEPEEthereum Mainnet0x6982508145454Ce325dDbE47a25d4ec3d231193318

Token not showing in MetaMask? Six reasons and fixes

CauseFix
You’re on a different networkYour 0x address is the same on every EVM network, but each balance is per network. Switch to the network the tokens were sent on.
The token isn’t detected automaticallyMetaMask only auto-detects tokens on a list of supported networks, using community token lists. Import it by contract address.
You imported the wrong contractBridged and native versions have different addresses (e.g. native USDC vs USDC.e, USDT0 vs old bridged USDT on OP Mainnet). Use the address from the issuer.
The decimals are wrongA wrong decimals value shows a tiny or huge balance. Remove the token and re-import it; MetaMask reads decimals from the contract.
The token was hiddenHidden tokens stay hidden until you turn them back on in Manage tokens.
The transfer never happenedExplorers show every incoming transfer. If there’s no transfer to your address, the sender didn’t send it, or sent it to another network or address.

Fake tokens: how to tell a real USDT from a copy

The name and symbol of a token prove nothing: anyone can deploy a contract called “Tether USD” with the symbol USDT in minutes. MetaMask itself says it doesn’t keep a list of “valid” tokens; detection uses community lists. The contract address is the only identity a token has.

  • Unknown tokens that appear in your wallet are usually airdropped bait. Don’t visit the site in the token name.
  • A “claim” or “swap” page that asks you to approve or sign is the drain. Check what you’ve approved with the token approval checker.
  • Before buying a new token, run it through the rug pull checker and read how to spot a rug pull.
  • Compare every character of the address, not just the start and end; scammers create look-alike addresses (address poisoning). Our ETH address checker has a compare mode.

The checker in the tool above reads a pasted contract’s symbol and flags it when it claims to be a token we have verified on that network but sits at a different address.

For developers: prompt users to add a token (wallet_watchAsset)

EIP-747’s wallet_watchAsset asks the wallet to track a token. It works on the network the wallet is currently on, so switch first with wallet_switchEthereumChain. The symbol can be at most 11 characters. This is what the Add to MetaMask buttons above do.

// Ask the wallet to show native USDC on Base (EIP-747)
await window.ethereum.request({
  method: 'wallet_switchEthereumChain',
  params: [{ chainId: '0x2105' }], // Base, 8453
})
await window.ethereum.request({
  method: 'wallet_watchAsset',
  params: {
    type: 'ERC20',
    options: {
      address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
      symbol: 'USDC',
      decimals: 6,
    },
  },
}) // resolves true if the user approved

How we verified the list

On October 21, 2026 we called eth_getCode on every address (each has contract code) and read name(), symbol(), decimals() and totalSupply() from the network’s public RPC. We then matched each address to the issuer’s documentation (Circle, Tether/USDT0, Lido, Chainlink, Paxos, Ethena, Coinbase, Scroll, Arbitrum) or to the Uniswap, Optimism or Linea token lists. We list what the contract reports, so USDT0 shows as USD₮0 or USDT0, as it will in your wallet.

Download the token address list (CC BY 4.0)

Cite this data

Free to reuse in articles, research, reports and apps under CC BY 4.0. Copy a ready-made citation below; the HTML version includes the credit link the license asks for.

Plain text (APA style)
GrowYourEthereum. (2026). Verified ERC-20 Token Contract Addresses (82 contracts, 24 networks) [Data set]. Updated October 21, 2026. https://growyourethereum.com/guides/import-token-to-metamask. Licensed CC BY 4.0.
HTML with credit link
<a href="https://growyourethereum.com/guides/import-token-to-metamask">Verified ERC-20 Token Contract Addresses (82 contracts, 24 networks)</a> by GrowYourEthereum, licensed under <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>.
BibTeX
@misc{growyourethereum_token_contract_addresses_2026,
  author       = {{GrowYourEthereum}},
  title        = {Verified ERC-20 Token Contract Addresses (82 contracts, 24 networks)},
  year         = {2026},
  howpublished = {\url{https://growyourethereum.com/guides/import-token-to-metamask}},
  note         = {Data set, updated October 21, 2026. CC BY 4.0}
}

More datasets, JSON files and embeddable widgets: free Ethereum data for journalists, researchers and builders.

Import token to MetaMask FAQ

How do I import a token into MetaMask?

Switch MetaMask to the token’s network. In the Extension, click the three dots in the tokens section and choose Manage tokens, search for the token, or choose Add custom token and paste the contract address, then Next and Import. On Mobile, expand the tokens section, tap +, search or use the Custom token tab. The Add to MetaMask buttons on this page do the same thing with one approval.

What is the USDC contract address on Base?

Native USDC on Base is 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 (6 decimals), as listed by Circle. On Ethereum it is 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48, on Arbitrum One 0xaf88d065e77c8cC2239327C5EDb3A432268e5831, on OP Mainnet 0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85 and on Polygon PoS 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359. We read each one on-chain on October 21, 2026.

What is the USDT contract address on Ethereum?

Tether USD on Ethereum is 0xdAC17F958D2ee523a2206206994597C13D831ec7 (6 decimals). On Arbitrum One, OP Mainnet and Polygon PoS, Tether’s token is now USDT0 (shown as USD₮0 or USDT0): 0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9 on Arbitrum, 0x01bFF41798a0BcF287b996046Ca68b395DbC1071 on OP Mainnet and 0xc2132D05D31c914a87C6611C10748AEb04B58e8F on Polygon. On BNB Smart Chain, the USDT most people hold is the Binance-Peg token 0x55d398326f99059fF775485246999027B3197955 with 18 decimals.

What is the WETH address on Base and Optimism?

WETH is 0x4200000000000000000000000000000000000006 on Base, OP Mainnet, Unichain, Ink and World Chain, because it is an OP Stack predeploy with the same address on every OP Stack chain. On Ethereum, WETH is 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2 and on Arbitrum One 0x82aF49447D8a07e3bd95BD0d56f35241523fBab1.

Why do I need to import tokens at all?

Wallets don’t scan for every token. MetaMask uses community token lists to detect popular tokens on supported networks and shows nothing for the rest. Importing only adds the token to your view; it doesn’t move or create anything, and your tokens were on-chain at your address all along.

Is it safe to import a token to MetaMask?

Importing a real token by its correct address is safe; it only changes what your wallet displays. The danger is fake tokens: anyone can deploy a token called “USDT” or “USDC”. Scammers airdrop them and point you to a website to “claim” or “swap” them, which asks you to sign an approval that drains your wallet. Check the address against the issuer or the verified list, and don’t interact with tokens you didn’t expect.

Why is my token showing 0 balance in MetaMask?

Usually you’re on the wrong network, or you imported a different contract (for example bridged USDC.e instead of native USDC). Open your address on the explorer for that network and look at the token transfers; the contract shown there is the one to import.

What decimals should I enter for USDC and USDT?

Circle’s USDC and Tether’s USDT use 6 decimals on Ethereum, Arbitrum, Base, OP Mainnet, Polygon and most other networks. The Binance-Peg USDC and USDT on BNB Smart Chain use 18. You rarely need to type decimals: MetaMask reads them from the contract when you paste the address.

Can I import a token by its name instead of the address?

Yes, MetaMask lets you search by name or symbol in Manage tokens (Extension) or after tapping + (Mobile) for tokens on its lists. Searching by symbol can still return look-alikes, so compare the contract address before you trust the result.

Is stETH or wstETH better to hold in MetaMask?

Both are Lido staked ETH. stETH (0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84 on Ethereum) rebases, so your balance grows a little every day. wstETH (0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0) keeps a fixed balance whose value in stETH rises, which is easier for DeFi and is the version bridged to L2s.

Sources checked October 21, 2026

Sources

Related

Educational guide, not financial advice. GrowYourEthereum is not affiliated with MetaMask, Consensys, Circle, Tether, Lido or any token issuer named here. Listing a token is not an endorsement; issuers can upgrade or change contracts, so check the issuer’s page for anything large.