Skip to content

watchAsset

Requests that the user tracks the token in their wallet. Returns a boolean indicating if the token was successfully added.

Usage

example.ts
import { walletClient } from './client'
 
const success = await walletClient.watchAsset({ 
  type: 'ERC20',
  options: {
    address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
    decimals: 18,
    symbol: 'WETH',
  },
})

Returns

boolean

Boolean indicating if the token was successfully added.

Parameters

type

  • Type: string

Token type.

import { createWalletClient, custom } from 'viem'
import { mainnet } from 'viem/chains'
 
export const walletClient = createWalletClient({
  chain: mainnet,
  transport: custom(window.ethereum!),
})
// ---cut--
const success = await walletClient.watchAsset({
  type: 'ERC20', 
  options: {
    address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
    decimals: 18,
    symbol: 'WETH',
  },
});

options.address

The address of the token contract.

const success = await walletClient.watchAsset({
  type: 'ERC20',
  options: {
    address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', 
    decimals: 18,
    symbol: 'WETH',
  },
});

options.decimals

  • Type: number

The number of token decimals.

const success = await walletClient.watchAsset({
  type: 'ERC20',
  options: {
    address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
    decimals: 18, 
    symbol: 'WETH',
  },
});

options.symbol

  • Type: string

A ticker symbol or shorthand, up to 11 characters.

const success = await walletClient.watchAsset({
  type: 'ERC20',
  options: {
    address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
    decimals: 18,
    symbol: 'WETH', 
  }
})

options.image

  • Type: string

A string url of the token logo.

const success = await walletClient.watchAsset({
  type: 'ERC20',
  options: {
    address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
    decimals: 18,
    symbol: 'WETH',
    image: 'https://weth.com/icon.png', 
  }
})

JSON-RPC Methods

wallet_watchAsset