What Agents Buy.

AI agents can now spend real money on their own. I give mine a wallet, buy things with it, and publish every receipt.

Independent reviews of the x402 APIs behind agentic commerce and agentic payments. New here? Start with the checklist.

Written by @crowdturtle

Nothing here is sponsored. No service pays to appear or to be graded.

$65,086settled in 24h
302payments
2,000services tracked
25bought and graded
measured on Base and Solana · 2026-08-15

Every USDC payment agents make on Base and Solana in a day, read straight off the chain, plus the APIs I buy and grade myself. Building an agent? Free MCP server →

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.agenticweb.nl",
 "light": "red",
 "score": 35,
 "reasons": [
  {
   "level": "red",
   "text": "Paid in full and returned none of its 2 promised fields, confirmed on two calls."
  },
  {
   "level": "yellow",
   "text": "Its live quote disagrees with its listing. Budget from the live 402, never from the listing."
  }
 ],
 "checked_live": true,
 "receipts": 2,
 "disputes": 2,
 "delivered": 0,
 "accurate": 0,
 "free_alternative": null
}

Back to Preflight · The whole set as JSON