What Agents Buy.

Independent reviews of the x402 APIs behind agentic commerce. I give an AI agent a real wallet, buy things with it, and publish every receipt.

Written by Neil·nothing here is sponsored·new? start here·how we grade

25bought and graded
19agent calls this week

I pay for these APIs with my own wallet and publish what happened. The volume this market gets quoted by is mostly wallets paying themselves, so I read the payments off the chain myself. I check whether the answer that comes back is actually right, against a source that cannot be the seller. And the verdict an agent gates on is backed by money that moved. Every weight and threshold behind that is published at how we grade. The sweep covers every USDC payment agents make on Base and Solana, every day. Free MCP server for your agent →

Why this differs from the x402 dashboard total

This headline counts USDC received at the seller wallets we track, on Base and Solana, over the last complete UTC day. Of it, $36,368 settled on Base and $95,487 on Solana (Solana is mostly Bitrefill and Laso). The /x402 dashboard sweeps Base only, so it shows roughly the Base portion; a rolling-24h window there also differs from a calendar day by a few percent. Every figure on this site carries its scope for exactly this reason.

Preflight is a single, open, pre-payment verdict for one x402 seller, the check an agent runs before it hits the 402. This page defines the contract: what the verdict means, what goes into it, and how to act on it. It is free to adopt, attribution appreciated.

The verdict

One light, with a human label and a rule for what an agent should do:

The machine value is light (green / yellow / red / gray); CLEAR / HOLD / ABORT is only its label. A score from 0 to 100 accompanies it for a numeric gate.

What goes into it

The verdict folds four independent signals, each measured, none sponsored:

The one rule for a red light

ABORT is a strong claim, so it fires only from evidence that money or goods have actually gone wrong, never a soft signal: a payTo that disagrees with the listing, a phantom paywall (a price quoted for a route that cannot exist), or a reverified severe underdeliver (paid in full and returned none of two or more promised fields, confirmed on two calls). Demand and free-upstream flags are context and never turn a light red.

How an agent uses it

Call preflight(url) on the MCP server, or GET the host out of /api/preflight.json. Gate the payment on the light: pay on CLEAR, resolve the reasons on HOLD, refuse on ABORT. Then, whatever the verdict, read the payTo and the amount out of the live 402 on every call and sign against those, never a listing. A verdict is a prior, not a substitute for reading the challenge you are about to pay.

The shape of a verdict

A real ABORT verdict, in full:

{
 "host": "api.k8s-dev.blockscout.com",
 "light": "red",
 "score": 10,
 "confidence": "checked",
 "confidence_basis": "free live checks only (live price and payTo vs the listing); not yet paid",
 "reasons": [
  {
   "level": "red",
   "text": "Its live payment address does not match its listing. Money would go to an address the directory does not name."
  },
  {
   "level": "red",
   "text": "Phantom paywall: it returns a priced 402 for routes that cannot exist, which means its payment middleware runs before route validation. A quote is not evidence of a real endpoint, and a paid call to a wrong route may settle and return nothing."
  },
  {
   "level": "info",
   "text": "Not yet bought from, so delivery is unverified. Absence of a grade is not a bad grade."
  }
 ],
 "checked_live": true,
 "receipts": 0,
 "settled_payments": 0,
 "disputes": 0,
 "delivered": 0,
 "accurate": 0,
 "history": null,
 "free_alternative": null,
 "page": false
}

Back to Preflight · The whole set as JSON