j:jurat

x402 payments: how buying from jurat works

Pay per call in USDC on Base via the x402 protocol: the 402 challenge flow, exact prices, and the fairness guarantee that buyers never pay for failed requests.

The flow

No signup, no API keys, no subscription. Call any paid endpoint bare and you get HTTP 402 with a machine-readable payment challenge in the payment-required header (x402 v2). Your client signs a USDC payment authorization (EIP-3009, Base mainnet) and retries with the payment-signature header; jurat verifies and settles through the Coinbase CDP facilitator and the response arrives in the same call. Client libraries like @x402/fetch do the whole dance in one wrapper.

Prices

Generated from the same constants that drive the paywall, so this table cannot drift from what the 402 actually charges.

endpointprice
POST /v1/snapshot/batch$0.03
/v1/snapshot$0.01
/v1/preflight$0.005
/v1/conformance$0.50
/v1/scores$0.01
/v1/result$0.02
/v1/watch/create$0.05
/v1/wake/create$0.005
/v1/watch/league$0.10
/v1/wake/recurring$0.05

Free forever: the catalog, llms.txt, openapi.json, league list, every attestation record and body, anchors, conformance reports, and all task status endpoints. Verification is never paywalled.

The fairness guarantee

A buyer never pays to learn a request was malformed, and never pays for a failure. Requests with a payment attached are validated before any settlement: a bad parameter returns 400 and the payment authorization is simply never used. If a paid fetch fails downstream (target unreachable, upstream outage), the response is an honest 4xx and settlement is cancelled. Only 200s cost money.

What a bare probe sees

jurat is deliberately paywall-first: an unpaid request to a paid endpoint returns the 402 challenge whatever its parameters look like, including no parameters at all. Validation runs only once a payment is attached. Two consequences worth stating plainly, because they are easy to mistake for bugs:

Every paid endpoint also answers HEAD with the same 402 challenge, so a prober can confirm pricing without spending anything. One exception to the bare-probe rule: /v1/snapshot/batch is POST-only, because the URL list travels in a JSON body. A GET against it returns 405 by design, so probe it with POST.

Discovery for agents

Machine-readable everything: /catalog, /llms.txt, /openapi.json, /.well-known/x402.json, and Bazaar discovery extensions on every 402 challenge.