Skip to main content
Celo is a stablecoin-native EVM L2 where gas can be paid in a stablecoin via CIP-64, and where a first-party x402 facilitator already exists. A-Identity runs agent identity there and sells its trust tools over that facilitator, settled in native USDC.

Why Celo

A facilitator already exists

Celo runs its own x402 facilitator, so a buyer signs an EIP-3009 authorization and pays no gas. We did not have to build the rail.

Native Circle USDC

Real USDC, not a bridged twin, with an EIP-712 domain we read off the contract before signing anything.

Gas in stablecoins

CIP-64 fee abstraction lets a transaction pay its own fee in USDC, which removes the “hold a second token” problem for an agent.
Celo mainnet is live: agent #9759 is ours on the canonical registry, and the x402 rail has real settlements recorded in a durable log you can read at /celo-proof. Every one of them so far was paid by our own buyer wallet, on 2026-08-09, and is labeled internal. The registration, two settlement receipts and the caveats are at /proof/celo. Celo Sepolia is beta.

Network config

Alfajores is deprecated; Celo Sepolia is the current testnet. Also note that both networks carry a ValidationRegistry proxy from their ERC-8004 family (read live 2026-10-11; an earlier version of this page said neither did, which was wrong), but we do not wire either, so a KYA result is not anchored on-chain here. We verify and record it off-chain and say so, rather than reporting an anchor count of zero that would read like a real measurement.

Connect with viem

What is deployed

The mainnet identity registry is the same address Arc Mainnet, Base, Arbitrum One, X Layer and Robinhood Chain carry, and the Celo Sepolia pair matches Arc’s. That is the point of a deterministic deployment: one agent id means the same thing wherever you resolve it.

Verify it yourself

Pay a check from your own wallet

a-identity.xyz/check/celo sells one risk_check on Celo mainnet to a browser wallet, with no key and no code:
  1. Connect Rabby or MetaMask; the page switches it to Celo, adding the network from our registry if the wallet has never seen it.
  2. Type an ERC-8004 agent id (#9759 is ours) and press the button. The page reads the 402 terms and refuses them if they name another network, token, payee or price than the rail publishes at /api/celo/status.
  3. Approve one EIP-3009 TransferWithAuthorization in the wallet. It is a signature, not a transaction: the Celo facilitator broadcasts it and pays the gas, so the buyer needs a little USDC and no CELO.
The answer is ALLOW, WARN or DENY with its reasons, the settlement hash on Celoscan, and a line on /proof/celo. A deep link prefills the id and never pays on load: https://a-identity.xyz/check/celo?q=%239759.

Where Celo fits

Celo is the rail that proved the product works against someone else’s facilitator, which is what made it obvious what to do on a chain that has none. See Robinhood Chain, where we built the facilitator ourselves.