Your checkouts
Share a URL. Agents inspect it, pay it, and get your goods — no account on their side.
Live checkouts
Create a checkout
Four questions, and each one decides the next. Everything else has a default.
Payments
Settled purchases, newest first. Each row is a receipt a buyer can verify — and download.
Narrow it and every figure below follows. Test and live are never mixed into one total.
By checkout
Payments in this window
Archive
Retired checkouts. Their links
answer 410 Gone, but the records stay: receipts, payouts
and on-chain history are all intact, and you can bring one back.
Payout wallets
Where you get paid, one address per chain. New checkouts use these automatically — set them once instead of pasting an address every time. Changing them never re-points checkouts you have already published.
Confirm this change
Recovery phrase
Addresses
Private keys
Import the recovery phrase into MetaMask or Phantom instead where you can — one phrase restores both chains, and it is what those apps ask for. These are for tooling that wants a raw key.
Change history
Marketplace (B2B2X) — take a cut of your sellers' sales
Your sellers' products, sold through you. Each sale pays the seller's wallet directly — your cut goes to yours, in the same payment. Your cut can be up to 20%. Read the guide.
Your cut lands in your payout wallets above — set one per chain your sellers sell on. A chain without one disappears from your fee-carrying checkouts, and its buyers with it.
Agent budget
A small float your agent spends on purchases. We hold the key; you set the limits.
- Budget created
- Funded
- Agent connected
- First purchase
Give your agent a budget
It starts empty. You fund it, connect your agent, and it pays for what it needs, up to the limits you set.
This budget pays in USDC on Base. The other chain has its own budget, picked above.
Base
Active
Fund it
Send it a little USDC. The page notices when it lands.
Add $5
Your browser wallet opens with the transfer filled in. You only confirm.
The app opens with the transfer filled in. You only confirm.
Scan with the wallet app on your phone. Amount, token and chain are in the code.
Waiting for the transfer…
From an exchange
Buy USDC. Send. Network: Base. Paste the address above.
Open Coinbase ↗Buy USDC. Withdraw. Network: Base. Paste the address above.
Open Kraken ↗Buy USDC. Withdraw. Network: Base. Paste the address above.
Open Binance ↗What am I sending?
USDC is a dollar token: one USDC is one dollar. It exists on several chains, and a transfer must use the chain this address lives on, Base; the same token sent on another chain arrives nowhere we can reach. Any wallet app or exchange lets you pick the network when you send. A transfer takes a few seconds to a few minutes. Send only USDC: any other token sent here is lost. A spending budget is a float for paying as you go, not a place to keep money; we hold its key.
Connect your agent
Claude connects with one approval. Claude Code and any other agent connect with a key we create for it; the key can spend up to your limits and can never take the money out.
Claude Code
One command. The key inside it is shown once.
The agent gets five tools: list_spending_wallets,
spending_wallet_balance, spending_budget,
pay_x402 and spending_wallet_events. There is no
reveal tool and never will be.
Try it, free
Ask your agent this. It pays a rehearsal checkout through the real tool; nothing settles and nothing is charged.
Loading…
Purchases
Loading…
More
There is no withdrawal button. The way money leaves is you revealing the key and moving it yourself, so keep the float small.
Escrow
Hold a buyer's money until they're happy, instead of settling it instantly. The money sits in a contract with exactly two ways out — the seller is paid, or the buyer is refunded — and nobody, including us, can send it anywhere else. Read the guide.
Who settles disputes (advanced)
If you sell your own products, leave these empty and we settle disputes for you. If you run a marketplace (platform account), these are required to offer escrow: your marketplace's disputes are yours to decide, never ours. Either way a dispute wallet can only choose between paying the seller and refunding the buyer — the escrow contract has no third exit. A chain you leave empty simply won't offer escrow on your marketplace's checkouts. Use a wallet whose key you can actually sign with — an exchange deposit address can hold ETH and still never rule — and on Base keep a little ETH in it: a ruling is a transaction.
Live escrows
Money being held right now. A buyer who pauses one has a window to approve or dispute it; if a dispute is never settled the buyer is refunded automatically, so nothing is ever stuck. Disputes on your own arbiter wallets show Pay seller / Refund buyer buttons here — connect that wallet in this browser to rule.
Put it on your website
A block you paste into your own page. No JavaScript and no stylesheet, so crawlers and agents that fetch rather than render still read it — that is the point of it.
Paste into your page
Also serve a .well-known file
For agents that probe the convention on your domain
rather than parsing a page. Save this as
/.well-known/checkout402 on your own site.
.well-known/checkout402
Create a live checkout first — a catalogue of nothing is not worth embedding.
Or put a working checkout on the page
The block above is a catalogue — it links out. This one is the checkout itself, running inside your page, so the buyer never leaves. It renders in a frame we serve, which is why your wallet button cannot be reached by anything else on your site.
One per line. Until a site is listed here the frame stays blank — that is deliberate: these pages carry a button that moves money, so nobody may frame them until you say who.
This checkout was created without the wallet button, so buyers can
SEE it in your page but cannot pay there — they'd have to pay by
402 instead. Create it with "wallet_button": true to
sell inside your page.
Paste this where the checkout should appear
Your page hears what happens:
window.addEventListener("c402:paid", …).
For an escrow checkout that fires when the money is released, not
when it is deposited — c402:held is the deposit, and
it is not yours yet.
Use in Claude
Connect this account and Claude can create checkouts, read your earnings and pull receipts — the same things this page does. You approve access; there is no key to copy.
- Claude Code — run
- Claude apps — Settings → Connectors → Add custom connector, paste the URL above
- Approve the Allow screen. You are already signed in here, so there is no second login.
API keys
For scripts and the
c402 CLI. A test key drives everything without
moving real money; a live key sells for real the moment a
checkout exists.