CCTP V2 · live testnetLocal rails · partner-pending

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.

01Live testnet

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.

02Live testnet

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.

03Partner-pending

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.

Open testnet·Testnet preview

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
StableFX · Klaro