Specie

Accept USDC payments on Arc, Circle's stablecoin-native L1.

Your server creates a payment, the customer pays, you get a webhook. Stripe Checkout, settling in USDC, with no custody in the middle.

Three ways to pay

Every payment offers all three, on equal footing.

Connect a wallet. A single transaction. USDC is Arc's native gas token, so there is no approve + transferFrom round trip — one signature and it is done.

Send to an address — on any chain. Every payment gets its own deposit address, and it is the same address on Arc, Base, Ethereum, Arbitrum, Avalanche and Monad. The customer sends USDC to it from anywhere — an exchange, a hardware wallet, a phone — with no wallet connection and no app to trust. USDC arriving on another chain is bridged to Arc over Circle's CCTP and settles like a direct transfer.

Pay from a wallet on another chain. For a connected wallet, the checkout sizes the transfer so the payer covers the bridge fee and the merchant receives the exact invoice.

The address path is the one card rails cannot copy, and it is why a customer with no browser wallet — or no funds on Arc at all — can still pay you by sending USDC from wherever they already hold it.

Non-custodial by construction

We never hold merchant funds, and this is enforced by contracts rather than by policy.

The router forwards to the merchant in the same transaction, so its balance is always zero. On the address path, the merchant, the fee and the fee collector are baked into the address derivation — settlement is permissionless, and any other set of parameters derives a different address holding nothing.

Nobody, including us, can redirect a payment. That is a property of the arithmetic, not of our good behaviour.

The protocol fee is capped by an immutable MAX_FEE_BPS of 1% that cannot be raised without redeploying.

Where to go next

QuickstartFirst payment in five minutes
Cross-chainLet customers pay from Base, Ethereum, Arbitrum, Avalanche or Monad
API referenceEvery endpoint and field
SDKServer-side integration
WidgetEmbeddable checkout
WebhooksGetting told when money arrives
SecurityThreat model and key separation
ArchitectureContracts, watcher, relayer

Status

Arc is testnet-only today, so this is a testnet deployment. There is no mainnet, and therefore no live payment volume. Everything here works against Arc testnet and is ready for mainnet the day it exists.