Skip to content

docs: wallet_watchAsset call for USDC undocumented — USDC does not appear in MetaMask token list without it #97

@osr21

Description

@osr21

Summary

There is no documented way to add Arc Testnet USDC to a user's MetaMask token list.
By default, MetaMask does not show USDC in its token list for custom chains — it only
tracks ETH (native balance). Users building token-transfer or payment DApps on Arc
Testnet need to call wallet_watchAsset to register USDC so it shows in the wallet.

This is not mentioned anywhere in the Arc developer documentation.

Reproduction

  1. Add Arc Testnet to MetaMask via wallet_addEthereumChain
  2. Send or receive USDC on Arc Testnet
  3. Open MetaMask — USDC does not appear in the asset list
  4. The user has no indication that they have received USDC

Workaround

Call wallet_watchAsset after wallet connection to register Arc Testnet USDC:

await window.ethereum.request({
  method: "wallet_watchAsset",
  params: {
    type: "ERC20",
    options: {
      address:  "0x3600000000000000000000000000000000000000",
      symbol:   "USDC",
      decimals: 6,
      image:    "https://cryptologos.cc/logos/usd-coin-usdc-logo.png",
    },
  },
});

MetaMask will show a confirmation dialog, and once accepted, USDC will appear in the
user's token list with the correct balance.

Suggested fix

Add a wallet_watchAsset call to the official DApp onboarding code snippet — most developers
copy the network setup code and never discover this separate step exists.

Impact

Every DApp on Arc Testnet that involves USDC transfers benefits from this. Without it, users
see no token balance in MetaMask and assume the transaction failed.

Environment: MetaMask browser extension (latest), Arc Testnet (chainId 5042002)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions