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.