Skip to main content
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

BlockchainToken IDToken address
Aptos298eebe2-3131-5183-b528-f925f70848d00xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b
Arbitrumc87ffcb4-e2cf-5e67-84c6-388c965d2a660xaf88d065e77c8cC2239327C5EDb3A432268e5831
Avalanche7efdfdbf-1799-5089-a588-31beb97ba7550xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E
Baseaa7bb533-aeb8-535c-bd65-354aed91ea3d0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
Ethereumb037d751-fb22-5f0d-bae6-47373e7ae3e30xA0b86991c6218b36c1D19D4a2e9Eb0cE3606eB48
Monad95401815-48ec-59eb-a06c-8fd1a8e82a8f0x754704Bc059F8C67012fEd69BC8A327a5aafb603
Optimism63ca9c9c-2f6d-594f-9070-ff2a4042be3a0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85
Polygon PoSdb6905b9-8bcd-5537-8b08-f5548bdf79250x3c499c542cef5e3811e1192cE70d8cc03d5c3359
Solana33ca4ef6-2500-5d79-82bf-e3036139cc29EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
Unichain643096e8-e4c5-5ee7-a5d5-38c80fdc3f3b0x078D782b760474a361dDA0AF3839290b0EF57AD6

Testnet

BlockchainToken IDToken address
Aptos Testnete3cbdafc-42c3-58cc-ae4c-b31dbb10354c0x69091fbab5f7d635ee7ac5098cf0c1efbe31d68fec0f2cd565e8d168daf52832
Arbitrum Sepolia4b8daacc-5f47-5909-a3ba-30d171ebad980x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d
Arc Testnetef87c8c3-85de-598a-af50-c5135eecfa740x3600000000000000000000000000000000000000
Avalanche Fujiff47a560-9795-5b7c-adfc-8f47dad9e06a0x5425890298aed601595a70ab815c96711a31bc65
Base Sepoliabdf128b4-827b-5267-8f9e-243694989b5f0x036CbD53842c5426634e7929541eC2318f3dCF7e
Ethereum Sepolia5797fbd6-3795-519d-84ca-ec4c5f80c3b10x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238
Monad Testnet17fe0589-b511-546c-9eff-84087524f47e0x534b2f3A21130d7a60830c2Df862319e593943A3
Optimism Sepolia20749a68-e55b-57d3-8359-195543efc2d40x5fd84259d66Cd46123540766Be93DFE6D43130D7
Polygon PoS Amoy36b6931a-873a-56a8-8a27-b706b17104ee0x41E94Eb019C0762f9Bfcf9Fb1E58725BfB0e7582
Solana Devnet8fb3cadb-0ef4-573d-8fcd-e194f961c7284zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU
Unichain Sepolia13ef30cd-309b-5c41-98cc-0fd68c4c8c440x31d0220469e10c4E71834a79b1f276d740d3768F

EURC token IDs

The following tables list the EURC token ID and contract address on each supported blockchain.

Mainnet

BlockchainToken IDToken address
Avalanche0a6f40c3-3952-5033-b08e-da5bf01c905f0xC891EB4cbdEFf6e073e859e987815Ed1505c2ACD
Base9e1530d7-6961-5b5d-8434-f9ad120552940x60a3E35Cc302bFA44Cb288Bc5a4F316Fdb1adb42
Ethereumdf63715d-ad2e-50ae-a183-f677905aafc60x1aBaEA1f7C830bD89Acc67eC4af516284b1bC33c
Solanac20b5a23-408c-518d-8add-0d0857c8666eHzwqbKZw8HxMN6bF2yFZNrht3c2iXXzpKcFu7uBEDKtr

Testnet

BlockchainToken IDToken address
Arc Testnet4ea52a96-e6ae-56dc-8336-385bb238755f0x89B50855Aa3bE2F677cD6303Cec089B5F319D72a
Avalanche Fuji9a930659-ee2a-5127-b5e7-365a14d1f7b30x5E44db7996c682E92a960b65AC713a54AD815c6B
Base Sepolia5b1ba740-7bb7-5695-bd2b-09243ce0f0790x808456652fdb597867f38412077A9182bf77359F
Ethereum Sepoliac22b378a-843a-59b6-aaf5-bcba622729e60x08210F9170F89Ab7658F0B5E3fF39b0E03C594D4
Solana Devnet6d0dbfb0-faee-5f0d-b60b-0fd5cd8430e5HzwqbKZw8HxMN6bF2yFZNrht3c2iXXzpKcFu7uBEDKtr

Native token IDs

The following tables list the native token ID on each supported blockchain.

Mainnet

BlockchainNative tokenToken ID
AptosAPTe963dad3-9eab-5b19-9613-95b1ad91aaee
ArbitrumETHb4f0f691-4398-5c5f-959a-be991be28d2f
AvalancheAVAX3bd775d6-d6e9-5095-ac09-b162e79debf7
BaseETH5b5a3157-72da-5e34-a9f0-806296910b7e
EthereumETHb18e71aa-c9a9-5f58-a02c-21b2f9e349e1
MonadMON116169ec-f0ee-5b9c-8d99-52a23fbdc206
OptimismETHebbac2b2-3621-57c2-af85-ecf4a3dbdf3c
Polygon PoSPOLab91b710-3322-50b9-8a55-4bff56cd4c16
SolanaSOL6b141f45-ff18-526a-8d1d-dd964788d05c
UnichainETH1771ea31-4962-5ab8-99e7-7cde889fdf99

Testnet

BlockchainNative tokenToken ID
Aptos TestnetAPTd457a992-b109-50eb-b5aa-9ef4609e81d2
Arbitrum SepoliaETH9ad91eb5-e152-5d81-b60e-151d5fd2b3d3
Arc TestnetUSDC15dc2b5d-0994-58b0-bf8c-3a0501148ee8
Avalanche FujiAVAX87a5c41c-fcb4-5973-8c66-72e2ed851ab8
Base SepoliaETHf2ab11ae-53fa-5373-86e5-8b38447b65fb
Ethereum SepoliaETH979869da-9115-5f7d-917d-12d434e56ae7
Monad TestnetMON8e87093c-64f1-5ddc-b0c2-54332fac04d0
Optimism SepoliaETHba2d9061-60ed-53b3-bade-4ad2305ffaf1
Polygon PoS AmoyPOL0c8f8485-f74f-5e28-80f2-3cc4e80ef71c
Solana DevnetSOLecf919b4-517f-5fde-b82b-393d1092e5fc
Unichain SepoliaETH1f9d5ff4-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:
ActionEndpointBehavior
Get the current listGET /config/entity/monitoredTokensReturns the configured token IDs. Returns 204 No Content when no tokens have been added.
Add tokensPOST /config/entity/monitoredTokensAdds the specified token IDs to the list.
Remove tokensPOST /config/entity/monitoredTokens/deleteRemoves the specified token IDs from the list.
Replace the listPUT /config/entity/monitoredTokensOverwrites the list with the specified token IDs.
Change the scopePUT /config/entity/monitoredTokens/scopeSets 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.