Today: the money is gone.
Your agent asks for the top holders of NEAR, pays 0.40 USDC, and gets the holders of NEO. There is no chargeback for agents.
Paid API calls for AI agents, with refunds
The API seller is paid instantly and locks a bond. For 120 seconds after each call, a wrong, broken or missing answer is refunded out of that bond. No escrow. Live on NEAR testnet.
A 2-minute replay of a real testnet run, paid in test USDC. Nothing to install. · View on GitHub
1. Your agent pays 0.40 USDC for an API call.2. The seller is paid instantly. Nothing sits in escrow.3. The answer is wrong: asked for NEAR, got NEO.4. Your agent claims a refund. The contract pays it from the seller's bond.
Illustration with the amounts from the testnet run. The bond falls by 0.42: the 0.40 refund plus a 0.02 ruling fee.
Your agent asks for the top holders of NEAR, pays 0.40 USDC, and gets the holders of NEO. There is no chargeback for agents.
Holding each payment until the buyer is satisfied protects the buyer, and makes every honest seller wait for its money on every call.
The seller is paid in the same transaction. The refund risk sits on the seller's own bond, and only for 120 seconds.
Guards try to stop a bad payment before it happens. Certo gets the money back after one goes through.
An API seller deposits USDC into the Certo contract on NEAR. Anyone can read the bond before paying, and a seller can never owe more in refunds than its bond holds.
One transaction moves the price from the agent to the seller, minus a 1% fee. Nothing is held back.
If the answer is an error, missing, broken or wrong, the agent claims a refund and the contract pays it from the seller's bond. If nobody claims, the payment is final.
certo_dispute: no support ticket, no chargeback form.certo_quote shows the seller's bond, its lost refund claims and its fee. Your agent never pays more than its cap per call (default 1.00 USDC).Checked by the contract. No judgement and no AI involved.
Some answers look fine and are still wrong. "NEO" instead of "NEAR" arrives with status 200, valid JSON and every field present. No rule can catch it.
For these, three AI models from three companies (Qwen, GLM and DeepSeek) each read the request and the answer inside a secure enclave on NEAR AI Cloud, and each signs its vote. The contract checks all three signatures itself before any money moves.
What stops a buyer from lying? Claiming that an answer is wrong costs the buyer a small deposit (0.02 USDC on a 0.40 call). If the experimental panel disagrees, the deposit is gone, and the next one doubles. Known gap: a buyer who never asks the panel and lets the dispute time out gets only the seller's offer, but also the deposit back, so today the deposit deters only buyers who go through the panel. Details.
A 2-minute replay of a run from 13 November 2026. Every amount on screen comes from the run's on-chain events.
The experimental AI panel's answers in the replay were recorded from NEAR AI Cloud on 11 November 2026 and carry their real signatures. Asked live, the panel takes a median of 23 seconds.
Press the button and your browser asks NEAR testnet directly. It reads the contract and the refund transaction, rebuilds what each AI model of the experimental panel was asked, and checks the three signatures itself. From us come only the transaction IDs, the account names, the published contract hash and the panel's system prompt; the page checks that prompt against the hash the contract itself logged. Everything else is read from the chain.
Not checked here: that each key belongs to a genuine enclave. That check runs offline (make verify), and the Intel and NVIDIA certificate chains are not verified anywhere yet. What the check covers
Certo works with Claude Code, Codex and any MCP client. The playground runs on a local NEAR sandbox: no keys, no accounts.
npm ci && make playground
claude mcp add certo -- npx certo-mcp --playground
| Tool | What it does |
|---|---|
certo_quote | Look before paying: the price, the seller's bond and its record. |
certo_call | Pay and get the answer. |
certo_dispute | Wrong answer? One call, and the money is back. |
Get paid in the buyer's own transaction. No escrow period. Your risk is capped by the bond you choose.
npx certo seller init --bond 50 --terms terms.txt
One command registers you, publishes your terms and locks your bond. Then wrap your route with protect(). Add --panel to opt in to the experimental AI panel.
Testnet only today. No third-party seller has used Certo yet.
We would rather you read this here than find it out later.
v1.certo.testnet), and its code is locked: the account has no keys left, so nobody can replace itmake guards)Certo is the refund layer: the aim is to make agent payments refundable on any rail, not to replace the rails.
How NEAR is used Testnet transactions The ten attacks Design doc Hackathon disclosure