StableFX
Cross-chain stablecoin routing.
Klaro takes USDC in from any major chain, settles it on Arc with sub-second finality, and hands it to a verified liquidity partner for local payout. CCTP V2 handles the cross-chain hop; partners handle the last mile.
How it works
Three hops. One settlement.
Source chain in
Buyer pays USDC from whatever chain they hold it on — Arbitrum, Base, Polygon, Solana, OP. Klaro reads the corridor and locks the quote.
Arc as settlement hub
CCTP V2 burns USDC on the source chain and mints native USDC on Arc. No wrapped tokens, no DEX, no IOU. One canonical balance.
Local rail out
An invited LP picks up the cashout order and confirms local-rail receipt. The escrow releases USDC to the LP only after the vendor confirms fiat.
What it gives you
Properties Arc + Circle make easy to claim — and easy to prove.
Sub-second finality on Arc
Arc's deterministic consensus settles in under a second. No 12-block waits, no probabilistic reorg windows. The buyer sees a confirmation before they put the phone down.
Native USDC, not wrapped
CCTP V2 is Circle's first-party burn-and-mint protocol. Every dollar on Arc is the same Circle USDC the buyer started with — no bridge custody, no wrapped-token de-peg risk.
Adapter-routed swaps
StableFXAdapterRegistry routes each (srcToken, dstToken) pair to its registered adapter. Operator swaps adapters atomically; vendors see no observable middle state.
Quote-frozen pricing
The quote your customer sees is the quote that settles. The InvoiceEscrow locks the rate at acceptance; CCTP V2 fees and Arc finality remove the FX-drift window other rails leave open.
Honesty ledger
What is live, what is gated, what is pending.
StableFX ships as a registry of adapters. Some adapters call real Circle infrastructure today. Others are mock implementations behind the same interface — clearly labelled so the demo flow works end-to-end without claiming real settlement.
- Live testnet
- CCTP V2 routing into Arc, InvoiceEscrow quote-lock, AuditReceipt anchoring, StableFXAdapterRegistry contract.
- Access-gated
- USDC ↔ EURC via Circle StableFX — wired through MockStableFXAdapter today; CircleStableFXAdapter takes over the pair on TEST access grant.
- Partner-pending
- Every local-currency rail (INR, BRL, MXN, NGN, KES, PHP, ZAR, JPY, KRW). Adapters and state machines ship; no real fiat moves until an LP partner is signed.
- Mainnet-only
- Real fiat settlement across any corridor. Mainnet target lands when partner agreements + KYB-grade LP onboarding are in place.
Contracts on Arc testnet
- StableFXAdapterRegistrypackages/contracts/src/StableFXAdapterRegistry.sol
- IStableFXAdapterpackages/contracts/src/adapters/IStableFXAdapter.sol
- MockStableFXAdapterpackages/contracts/src/adapters/MockStableFXAdapter.sol
Deployed addresses land in apps/web/lib/env.ts after each testnet cut. Until then the registry runs through MockStableFXAdapter per the registry comments — labelled simulated in every consumer surface.
Issue your first
invoice in 90 seconds.
No credit check. No US bank required. No waitlist. Klaro testnet is free for everyone. Sign up with Google or email, plug in your ERP, issue your first invoice in 90 seconds.
- Testnet simulation clearly labelled
- Security audit planned
- WCAG 2.1 AA target