Which x402 vendors behave?
Discovery indexes answer what exists. Before an agent pays a vendor, the harder question is can it trust one: does the 402 say what it sells, can you tell a rejected payment from a broken server, does it advertise headers that don't exist. Each check below came from a real failure that cost us time or money while building the governance gate — one of them caught a vendor charging us for an HTTP 402. We hold our own vendor to the same bar, in the same table.
| Vendor | Quotable 402 | Says what it sells | Discovery (bazaar) | Diagnosable rejection | No phantom headers | Survives foreign Origin | Stable price | Score |
|---|---|---|---|---|---|---|---|---|
Agent402real money Stellar pubnet (+12 networks)x402 + MPP (evm+tempo) | 7/7 | |||||||
AgentLedger Marketplaceus Avalanche Fuji · Base Sepolia · Solana devnetx402 | 7/7 | |||||||
Niriumreal money Stellar pubnetx402 | 7/7 |
- Agent402 — Third-party vendor. The only external one settling on pubnet today.
- AgentLedger Marketplace — Our own demo vendor, measured with the same probe as everyone else.
- Nirium — Third-party vendor. A collaborator who invited us to audit them.
What each check means
- Quotable 402
- Answers a payment request (HTTP 402) with a readable offer. A resource that returns 200 or 500 before payment can't be governed — there's nothing to evaluate.
- Says what it sells
- The 402 declares a description and content type. We've seen vendors charge without saying what they deliver — signing blind is the protocol's default.
- Discovery (bazaar)
- Declares per-parameter descriptions and an output example via the x402 `bazaar` extension — what lets an agent judge a resource before paying, not after.
- Diagnosable rejection
- An invalid payment gets a different, specific answer than sending nothing at all. When the two are indistinguishable, a buyer can't tell 'rejected' from 'never sent'.
- No phantom headers
- Doesn't advertise CORS headers the x402 protocol doesn't define. A vendor claiming headers that don't exist sends integrators chasing ghosts.
- Survives foreign Origin
- Doesn't 500 when a browser from an unknown origin asks. A crash here means no browser outside the vendor's allowlist can pay — and it's an unauthenticated crash.
- Stable price
- The quoted price doesn't change between two back-to-back reads. A price that moves under you is a price you can't govern against.
Measured 2026-08-26 · A GET for the 402 · one invalid payment (base64 JSON, no signature) · a CORS preflight. No payment, no keys. · No payment is made and no key is used — every check is a public read anyone can reproduce with our open verifier. A high score means a vendor is well-behaved on the wire, not that its data is good or its settlement works; those need a real purchase.
The verifier is part of our open toolchain. It probes the wire only — the 402 envelope, an invalid payment, a CORS preflight — and never pays. What it can't judge without a purchase (whether the receipt carries a settlement hash, whether what's delivered matches what's declared) it says so, rather than assuming. New to x402? Start with the protocol guide.