A token ID is a UUID that uniquely identifies a token across blockchains in
Circle Wallets. The Wallets API uses the token ID anywhere it references a
specific token, including
balance lookups,
transaction lists,
and
monitored token configuration.
For each blockchain’s chain code, see
Supported blockchains.
Arc Testnet uses
USDC as its native gas token,
so an Arc Testnet wallet’s USDC appears twice in the Wallets API: once as the
native token and once as an ERC-20. Both entries reference the same underlying
USDC balance. They aren’t separate assets, and gas payments don’t charge the
wallet twice.
USDC token IDs
The following tables list the USDC token ID and contract address on each
supported blockchain.
Mainnet
| Blockchain | Token ID | Token address |
|---|
| Aptos | 298eebe2-3131-5183-b528-f925f70848d0 | 0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b |
| Arbitrum | c87ffcb4-e2cf-5e67-84c6-388c965d2a66 | 0xaf88d065e77c8cC2239327C5EDb3A432268e5831 |
| Avalanche | 7efdfdbf-1799-5089-a588-31beb97ba755 | 0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E |
| Base | aa7bb533-aeb8-535c-bd65-354aed91ea3d | 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 |
| Ethereum | b037d751-fb22-5f0d-bae6-47373e7ae3e3 | 0xA0b86991c6218b36c1D19D4a2e9Eb0cE3606eB48 |
| Monad | 95401815-48ec-59eb-a06c-8fd1a8e82a8f | 0x754704Bc059F8C67012fEd69BC8A327a5aafb603 |
| Optimism | 63ca9c9c-2f6d-594f-9070-ff2a4042be3a | 0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85 |
| Polygon PoS | db6905b9-8bcd-5537-8b08-f5548bdf7925 | 0x3c499c542cef5e3811e1192cE70d8cc03d5c3359 |
| Solana | 33ca4ef6-2500-5d79-82bf-e3036139cc29 | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |
| Unichain | 643096e8-e4c5-5ee7-a5d5-38c80fdc3f3b | 0x078D782b760474a361dDA0AF3839290b0EF57AD6 |
Testnet
| Blockchain | Token ID | Token address |
|---|
| Aptos Testnet | e3cbdafc-42c3-58cc-ae4c-b31dbb10354c | 0x69091fbab5f7d635ee7ac5098cf0c1efbe31d68fec0f2cd565e8d168daf52832 |
| Arbitrum Sepolia | 4b8daacc-5f47-5909-a3ba-30d171ebad98 | 0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d |
| Arc Testnet | ef87c8c3-85de-598a-af50-c5135eecfa74 | 0x3600000000000000000000000000000000000000 |
| Avalanche Fuji | ff47a560-9795-5b7c-adfc-8f47dad9e06a | 0x5425890298aed601595a70ab815c96711a31bc65 |
| Base Sepolia | bdf128b4-827b-5267-8f9e-243694989b5f | 0x036CbD53842c5426634e7929541eC2318f3dCF7e |
| Ethereum Sepolia | 5797fbd6-3795-519d-84ca-ec4c5f80c3b1 | 0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238 |
| Monad Testnet | 17fe0589-b511-546c-9eff-84087524f47e | 0x534b2f3A21130d7a60830c2Df862319e593943A3 |
| Optimism Sepolia | 20749a68-e55b-57d3-8359-195543efc2d4 | 0x5fd84259d66Cd46123540766Be93DFE6D43130D7 |
| Polygon PoS Amoy | 36b6931a-873a-56a8-8a27-b706b17104ee | 0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582 |
| Solana Devnet | 8fb3cadb-0ef4-573d-8fcd-e194f961c728 | 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU |
| Unichain Sepolia | 13ef30cd-309b-5c41-98cc-0fd68c4c8c44 | 0x31d0220469e10c4E71834a79b1f276d740d3768F |
EURC token IDs
The following tables list the EURC token ID and contract address on each
supported blockchain.
Mainnet
| Blockchain | Token ID | Token address |
|---|
| Avalanche | 0a6f40c3-3952-5033-b08e-da5bf01c905f | 0xC891EB4cbdEFf6e073e859e987815Ed1505c2ACD |
| Base | 9e1530d7-6961-5b5d-8434-f9ad12055294 | 0x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42 |
| Ethereum | df63715d-ad2e-50ae-a183-f677905aafc6 | 0x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c |
| Solana | c20b5a23-408c-518d-8add-0d0857c8666e | HzwqbKZw8HxMN6bF2yFZNrht3c2iXXzpKcFu7uBEDKtr |
Testnet
| Blockchain | Token ID | Token address |
|---|
| Arc Testnet | 4ea52a96-e6ae-56dc-8336-385bb238755f | 0x89B50855Aa3bE2F677cD6303Cec089B5F319D72a |
| Avalanche Fuji | 9a930659-ee2a-5127-b5e7-365a14d1f7b3 | 0x5E44db7996c682E92a960b65AC713a54AD815c6B |
| Base Sepolia | 5b1ba740-7bb7-5695-bd2b-09243ce0f079 | 0x808456652fdb597867f38412077A9182bf77359F |
| Ethereum Sepolia | c22b378a-843a-59b6-aaf5-bcba622729e6 | 0x08210F9170F89Ab7658F0B5E3fF39b0E03C594D4 |
| Solana Devnet | 6d0dbfb0-faee-5f0d-b60b-0fd5cd8430e5 | HzwqbKZw8HxMN6bF2yFZNrht3c2iXXzpKcFu7uBEDKtr |
Native token IDs
The following tables list the native token ID on each supported blockchain.
Mainnet
| Blockchain | Native token | Token ID |
|---|
| Aptos | APT | e963dad3-9eab-5b19-9613-95b1ad91aaee |
| Arbitrum | ETH | b4f0f691-4398-5c5f-959a-be991be28d2f |
| Avalanche | AVAX | 3bd775d6-d6e9-5095-ac09-b162e79debf7 |
| Base | ETH | 5b5a3157-72da-5e34-a9f0-806296910b7e |
| Ethereum | ETH | b18e71aa-c9a9-5f58-a02c-21b2f9e349e1 |
| Monad | MON | 116169ec-f0ee-5b9c-8d99-52a23fbdc206 |
| Optimism | ETH | ebbac2b2-3621-57c2-af85-ecf4a3dbdf3c |
| Polygon PoS | POL | ab91b710-3322-50b9-8a55-4bff56cd4c16 |
| Solana | SOL | 6b141f45-ff18-526a-8d1d-dd964788d05c |
| Unichain | ETH | 1771ea31-4962-5ab8-99e7-7cde889fdf99 |
Testnet
| Blockchain | Native token | Token ID |
|---|
| Aptos Testnet | APT | d457a992-b109-50eb-b5aa-9ef4609e81d2 |
| Arbitrum Sepolia | ETH | 9ad91eb5-e152-5d81-b60e-151d5fd2b3d3 |
| Arc Testnet | USDC | 15dc2b5d-0994-58b0-bf8c-3a0501148ee8 |
| Avalanche Fuji | AVAX | 87a5c41c-fcb4-5973-8c66-72e2ed851ab8 |
| Base Sepolia | ETH | f2ab11ae-53fa-5373-86e5-8b38447b65fb |
| Ethereum Sepolia | ETH | 979869da-9115-5f7d-917d-12d434e56ae7 |
| Monad Testnet | MON | 8e87093c-64f1-5ddc-b0c2-54332fac04d0 |
| Optimism Sepolia | ETH | ba2d9061-60ed-53b3-bade-4ad2305ffaf1 |
| Polygon PoS Amoy | POL | 0c8f8485-f74f-5e28-80f2-3cc4e80ef71c |
| Solana Devnet | SOL | ecf919b4-517f-5fde-b82b-393d1092e5fc |
| Unichain Sepolia | ETH | 1f9d5ff4-7957-5ac6-9aee-e742af3772e7 |
Find a token ID
The preceding tables provide a manual reference. The Wallets API also returns
the token ID alongside each token a wallet holds (native tokens, USDC, other
ERC-20s, and NFTs) in responses from:
Cache the token IDs your integration uses. Token IDs are stable, so a local
lookup is faster than calling the Wallets API on every request.
Monitored tokens
By default, the Wallets API returns every token held in a wallet across balance,
NFT, and transaction responses. Use monitored tokens to narrow that scope so the
Wallets API only surfaces tokens your integration depends on (for example, to
hide unrelated assets from end users). Token IDs are how you reference each
token when managing the monitored list.
Use the following endpoints to manage the monitored token list:
| Action | Endpoint | Behavior |
|---|
| Get the current list | GET /config/entity/monitoredTokens | Returns the configured token IDs. Returns 204 No Content when no tokens have been added. |
| Add tokens | POST /config/entity/monitoredTokens | Adds the specified token IDs to the list. |
| Remove tokens | POST /config/entity/monitoredTokens/delete | Removes the specified token IDs from the list. |
| Replace the list | PUT /config/entity/monitoredTokens | Overwrites the list with the specified token IDs. |
| Change the scope | PUT /config/entity/monitoredTokens/scope | Sets the scope to SELECTED (only monitored tokens appear in responses) or MONITOR_ALL (every token appears, default). |
Adding a token automatically sets the scope to SELECTED. To temporarily
include every token in a single response, set includeAll=true on
GET /wallets/{id}/balances,
GET /wallets/{id}/nfts,
or
GET /transactions.