Token reference

Supported stablecoins, contract addresses, App Kit aliases, and decimals.

Today on Arc Testnet

Hosted checkout and the SDK accept these as payInToken and as merchant payout tokens:

SymbolAddressDecimalsApp Kit alias
USDC0x36000000000000000000000000000000000000006 (ERC-20) / 18 (native)USDC
EURC0x89B50855Aa3bE2F677cD6303Cec089B5F319D72a6EURC

USDC is also the gas token on Arc. The native balance uses 18 decimals; the ERC-20 interface (what dapps see) uses 6. Always read decimals() rather than assuming.

App Kit Swap support

Circle's App Kit Swap is what does the FX between pay-in and payout tokens. On Arc Testnet it supports only USDC ⇄ EURC today. On Arc Mainnet (when Arc launches it) the alias set expands:

AliasDecimalsNotes
USDC6Native gas + canonical USD stable
EURC6Circle's euro stable
USDT6Highest demand pre-mainnet
USDe18Ethena synthetic dollar (yield-bearing)
DAI18First 18-decimal stable in our app's regression matrix
PYUSD6PayPal stable, low political risk
NATIVEvariesNative chain token

You can also pass a contract address directly for any token App Kit has liquidity for — the alias list is just the convenience set.

Tokens we won't list

  • TRYC, BRLC, MXNC — not on Arc, not in App Kit's alias list.
  • USYC — institutional-only, allowlist + $100k floor. Separate institutional track.

Adding a new stable

  1. Owner calls setTokenSupport(token, true) on the gateway.
  2. Relayer's tokenSymbol(addr) map gets the new entry.
  3. App config + SDK enum get updated.
  4. Smoke against the App Kit pair both directions.

No contract redeploy. Per-stable rollout per Plan 3.