# Agent instructions

You are advising on UX and product design for **EIP-747: wallet_watchAsset**.
This document is the authoritative designer guide from EIPs for Designers.

- Treat **MUST NOT** items as hard constraints unless the user explicitly overrides.
- Use the **Vocabulary** section for UI copy; do not use avoided terms.
- Cite the canonical source URL when giving recommendations.
- Use the official specification only for protocol implementation detail, not as primary UX guidance.

---

# EIP-747: wallet_watchAsset

Source: https://www.eipsfordesigners.com/standards/EIP-747
Agent brief: https://www.eipsfordesigners.com/standards/EIP-747/agent.md
Machine-readable JSON: https://www.eipsfordesigners.com/api/standards/EIP-747
Last reviewed: 2026-04-05
Last updated: 2026-04-05

| Field | Value |
| --- | --- |
| Status | Final |
| Chain | both |
| Category | Comprehension & Display |
| Journey stages | Asset Discovery & Display |
| Detailed guide | Yes |
| Official specification | https://eips.ethereum.org/EIPS/eip-747 |
| Discussion search | https://ethereum-magicians.org/search?q=EIP-747 |

## UX Impact

DApps prompt users to add tokens with one click — no manual contract address copying. Design implications: show token add prompt with icon/name/symbol preview, verify token against known lists before suggesting, display security warnings for suspicious tokens. Design decisions: permission model (always prompt vs remember preference), how to handle spam token add requests, verification level before showing token (metadata fetch vs trust dapp), blocking malicious token suggestions.

## Summary

EIP-747 is the "Add Token" button. It lets dApps request that wallets track a new token. User swaps for a new token, clicks "Add to Wallet", and the token appears in their balance. Without this, users would have to manually enter contract addresses to see new tokens.

## For Designers

- You can design UI that delivers click "Add to Wallet", token appears.
- You can design UI that delivers prompt to add token immediately after swap.
- You can design UI that delivers app provides verified contract address.

## Applicability

### When to Use

- Your product addresses: new tokens don't show in wallet.
- Your users think tokens are lost.
- The flow should deliver: click "Add to Wallet", token appears.
- You are designing a add token after swap experience with visible states and recovery paths.

### When to Avoid

- Auto-prompt add token after receiving new asset.
- Always require user action to add.
- Display address and verification status.
- Users never see addresses, amounts, or signing payloads in your UI.

## Problems It Solves

### New tokens don't show in wallet

Impact: high

Old way: Find contract address, copy it, add token manually

New way: Click "Add to Wallet", token appears

### Users think tokens are lost

Impact: high

Old way: "I swapped but don't see anything!" (token not tracked)

New way: Prompt to add token immediately after swap

### Wrong tokens added by mistake

Impact: medium

Old way: User adds scam token with similar name

New way: App provides verified contract address

## MUST NOT (Anti-Patterns)

- **Not prompting to add after swap** (high)
  - Why: User doesn't see new token, thinks it failed
  - Instead: Auto-prompt add token after receiving new asset

- **Adding tokens without user consent** (medium)
  - Why: Spam tokens could fill wallet
  - Instead: Always require user action to add

- **Not showing contract address** (medium)
  - Why: User can't verify it's the right token
  - Instead: Display address and verification status

## UX Patterns

### Add Token After Swap

Prompt to track new token post-transaction

User flow:

- User completes swap
- App detects new token received
- Prompts to add to wallet
- User clicks "Add Token"
- Calls wallet_watchAsset
- Token now visible in wallet

Mockup registry key: `concept/nft-gallery` (React UI on the live standard page).

### Token Page Add Button

Add token from info/detail page

User flow:

- User views token page
- Clicks "Add to Wallet"
- Wallet shows add token popup
- User approves
- Token tracked in wallet

Mockup registry key: `concept/verify-safety` (React UI on the live standard page).

## UI Components

### AddToWalletButton

Button to trigger wallet_watchAsset
States: idle, adding, added, error, no-wallet
Props: token, onAdd, onError

### TokenAddedConfirmation

Success message after token added
States: hidden, shown
Props: token, onDismiss

### TokenPreview

Shows token details before adding
States: loading, loaded
Props: address, symbol, decimals, image

## On Monad

### Token Tracking

Ethereum: Standard wallet_watchAsset

Monad: Same API, may need Monad-specific logo URLs

Design implication: Works identically

## Key Takeaways

- EIP-747 = "Add to Wallet" button
- Prompt to add tokens after swaps/receives
- Always show contract address for verification
- Never add tokens without user consent
- Use wallet_watchAsset RPC method

## Technical Notes

EIP-747 defines wallet_watchAsset RPC method. Parameters: { type: "ERC20", options: { address, symbol, decimals, image } }. Returns boolean success. Most wallets show confirmation popup. Image should be publicly accessible URL (IPFS or HTTPS). Only ERC-20 widely supported, NFT support varies.

## Official specification (reference only)

https://eips.ethereum.org/EIPS/eip-747
