Skip to main content

Watch an asset

After a user acquires your token, it may not appear in their wallet until they add it manually. wallet_watchAsset (EIP-747) lets your dapp offer that as one click.

Ask Core to track a token

const added = await provider.request({
method: 'wallet_watchAsset',
params: {
type: 'ERC20',
options: {
address: '0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB', // WETH.e
symbol: 'WETH.e',
decimals: 18,
image: 'https://example.com/weth-logo.png',
},
},
});

if (added) {
// The user confirmed; the token now shows in their balance list.
}

Note the parameter shape: unlike most methods, params is an object, not an array — a quirk inherited from EIP-747.

Core shows the token's contract address, symbol, and image on the approval screen. The values you pass are suggestions for display; the balance itself always comes from the contract.

When to offer it

  • right after a successful swap or mint that pays out your token,
  • on a "add TOKEN to wallet" button next to your token's contract address.

Don't fire it on page load — an unprompted approval screen reads as spam, and users decline it reflexively (4001).

Timing matters

If you call wallet_watchAsset in the same tick as the payout transaction's confirmation, the token may show a zero balance for a few seconds until the next block is indexed. Waiting for the transaction receipt first gives a better first impression.