> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `https://v3.viem.sh/api/mcp` to find what you need.

# Watch Asset \[wallet.watchAsset]

Adds an EVM token to the wallet's watchlist so its balance is tracked.

## Usage

This example adds an EVM token to the wallet's watchlist so its balance is tracked.

:::code-group
```ts twoslash [example.ts]
import { client } from './viem.config'

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

```ts twoslash [viem.config.ts] filename="viem.config.ts"
import { Client, custom, walletActions } from 'viem'
import 'viem/window'

export const client = Client.create({
  transport: custom(window.ethereum!),
}).extend(walletActions())
```
:::

### Standalone Action

Call `Actions.wallet.watchAsset` directly by passing the Client as the first argument.

:::code-group
```ts twoslash [example.ts]
import { Actions } from 'viem'
import { client } from './viem.config'

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

```ts twoslash [viem.config.ts] filename="viem.config.ts"
import { Client, custom } from 'viem'
import 'viem/window'

export const client = Client.create({
  transport: custom(window.ethereum!),
})
```
:::

## Return Value

`boolean`

Whether the token was successfully added.

## Parameters

### options

* **Type:** `{ address: Address; decimals: number; symbol: string; image?: string }`

Token metadata. For `ERC20` assets, the contract `address`, `decimals`, and `symbol` are required; `image` is optional.

```ts twoslash
import { Actions } from 'viem'
// [!include ~/snippets/docs/reference-client.ts:setup]
// ---cut---
const success = await Actions.wallet.watchAsset(client, {
  type: 'ERC20',
  options: { // [!code focus]
    address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2', // [!code focus]
    decimals: 18, // [!code focus]
    symbol: 'WETH', // [!code focus]
  }, // [!code focus]
})
```

### type

* **Type:** `string`

The asset's interface type, such as `'ERC20'`.

```ts twoslash
import { Actions } from 'viem'
// [!include ~/snippets/docs/reference-client.ts:setup]
// ---cut---
const success = await Actions.wallet.watchAsset(client, {
  type: 'ERC20', // [!code focus]
  options: {
    address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
    decimals: 18,
    symbol: 'WETH',
  },
})
```
