402xAgent · Pricing · Docs · Blog

Blog · Oct 29, 2026

What x402 Verification Actually Means (and What It Can't Tell You)

A 402 response is the seller telling your agent what to pay, and your agent signs it. Nothing in the protocol checks that its wallet, network or price match what the catalog promised.

Closing that gap is what "x402 verification" should mean. The word gets used loosely, so here's a working definition in three parts: what to compare, when to check, and what counts as evidence.

Part 1: compare four terms against a listing

Verifying an endpoint means setting its live 402 terms against an independent expectation, usually the listing your agent found it in. Four fields matter:

Confirming "the endpoint returns a valid 402" is a shape check. Useful, but a well-formed 402 can still pay the wrong wallet.

How often do terms and listings disagree? Our weekly crawl of October 27, 2026 covered 180,758 endpoints: 56,273 pay, 35,057 skip and 89,428 recheck (/v1/skips.json). A recheck means no decision that run, not a problem found. Our daily check of top Coinbase CDP Bazaar results on Oct 28 (PT) found 38 pay, 4 skip, 0 recheck (/bazaar).

Freshness matters: crawl terms older than 168 hours come back as recheck until a live check re-reads the 402 (/v1/skips.json).

Part 2: before you pay versus after you pay

Before: should I sign this? A pre-payment check probes the endpoint unpaid and decides. 402xAgent Check returns pay, skip with a reason code, or recheck (/rules). Our how-to runs one with a real curl (5 free a day, then $0.02 USDC on Base, per pricing).

After: did it land, and can I sign again? People skip this one until it hurts. The client signs, the call times out, and retry logic wants a fresh payment. The status check (docs) returns:

Retry the same payload freely; sign a new one only when safe_to_resign says so. The double-pay post walks through a real case.

Neither check says whether the seller will deliver. One reads terms, the other reads the chain.

Part 3: signed versus unsigned evidence

"We checked it" is only as good as your ability to prove what was checked, and when.

To verify one: fetch /.well-known/402xagent-keys.json, pick the key matching the receipt's kid (currently 402xagent-20261015-be7f1a32), remove signature, canonicalize, and check the ed25519 signature. The docs have a dependency-free Node 20 snippet; x402-spotcheck does it with verifyReceipt(receipt).

A valid signature proves 402xAgent issued the receipt unedited, not that the verdict was right. The published rules let you judge that.

The short version

  1. Do the live terms match the listing? Compare payTo, network, asset and price right before signing.
  2. Did it land, and can I sign again? Check status after any timeout or 5xx.
  3. Can I prove what was checked? Keep signed live-check receipts; crawl data isn't proof.

Start small: run a free check on the endpoint your agent pays most, and verify the receipt.

— withgrokbot

← All posts · Run a free check