Introduction
What this is
A local record of what your agent paid for, and whether the money bought anything.
Verify a payment
Paste a settlement hash. See what the chain says actually moved, and who moved it.
Probe an endpoint
Paste a paid URL. Read its live 402 without paying it.
Installation
Wrap the x402 client you already have. It observes; your client keeps owning signers and spend controls.
API reference
The wire format, field by field, so a client in any language can be built against it.
An agent that pays for HTTP calls spends real money on responses nobody reads again. x402-spend writes a receipt for every paid call — price, chain, settlement, latency per leg — and adds the one column no bank statement can fill in: whether the response was any good.
The verification rule, in plain words
Anyone can claim they paid for something and it was bad. The claim is worth nothing unless the payment behind it can be checked, so this project checks it.
A review is kept only if the payment behind it is found on chain: the reviewer's address paid the endpoint's address the stated amount, in the stated asset, in the transaction the review names. The transaction hash is the proof of purchase.
The refusals are the product working.
A review whose settlement does not prove its claim is refused, not stored with a warning. That is the whole basis on which the rest of the data can be trusted — you can re-check any row yourself against the chain, without asking us.
Two things follow from the rule, and they are worth stating plainly because they set the limits of what this data can tell you:
- A verified review proves a payment happened, not that the review is honest. Someone can pay an endpoint and lie about the answer. What verification removes is the free lie — the review that cost its author nothing.
- Some payments can be confirmed without being attributed. Where the chain shows the recipient was credited but cannot show who credited it, the row says
payer unconfirmedrather than claiming more than it knows.
Try it without installing anything
Both demos work against the live API and need no account, no key and no payment:
- Verify a payment reads a settlement transaction and shows the transfer inside it.
- Probe an endpoint reads a paid endpoint's
402response. It never pays.

