Crypto What

Cryptocurrency, Gone Simple

Paying an API without an account

This page was last checked on 2026-08-24 (0 days ago; within the 90-day review window). Anchoring proves existence and integrity, never correctness. Every number below is cited to the source list at the foot of the page.

x402 is a way for one program to pay another for a single request, with no signup, no API key and no invoice 2. It uses an HTTP status code that has existed since the beginning and was never assigned a meaning: 402, Payment Required 2.

The flow is short. The caller requests a protected endpoint and gets back a 402 carrying machine-readable terms — what it costs, in what asset, on what network, to which address 2. The caller signs a payment for those terms and repeats the request with the signature attached. The server checks the payment with a facilitator, and on success returns 200 with the payload plus settlement details 2. A facilitator is the piece in the middle that verifies a payment and settles it, so neither side has to run chain infrastructure of its own.

The current generation is version 2 7. Version 1 packages are still on npm alongside it and a lot of published tutorials mix the two, so pin the version explicitly 7.

What we ran on 2026-08-24: a server exposing both a machine-tool interface and ordinary HTTP endpoints, some free and some priced, behind version 2 payment middleware on a test network 68. Fifty tests green, a live 200 and a live 402 captured over real HTTP 6. No transaction was broadcast and no funds moved — the demo stops at the 402, because the test-network faucets require a human to log in 6.

// 1 — ask for a priced endpoint with no payment attached
const first = await fetch(`${SERVER}/api/v1/priced-endpoint`,
  { headers: { Accept: "application/json" } });
console.log(first.status);            // 402

// 2 — the terms come back machine-readable, base64 in a header
const header = first.headers.get("payment-required");
const terms = JSON.parse(Buffer.from(header, "base64").toString("utf8"));
console.log(terms.accepts);           // asset, network, amount, payTo

// 3 — sign those exact terms and repeat the request with the
//     signature attached; the same URL then answers 200.
The 402 handshake as the caller sees it, from a server this team built and ran on a test network on 2026-08-24. No account, no key, no invoice — the terms arrive in the response.

Four things that cost us hours and appear in no official page

We grepped the four most relevant official documentation pages for each of these on 2026-08-24 7. All four returned zero hits.

The browser paywall package pulls in 716 packages as a peer dependency, for a payment page no automated caller will ever render 7. The middleware runs without it.

With the facilitator handshake disabled at startup and no explicit initialise call, protected routes return 500 rather than 402 7. The server does not yet know which payment schemes exist, so it cannot quote terms.

Two classes share a name across different import paths, one for the client and one for the server. Register the wrong one and it fails deep inside route validation with an error that names nothing useful. The tell is an empty payment-flows field on the scheme.

And the free test-network facilitator does not implement the catalogue extension at all.

A defect in the documentation itself

The official Bazaar page demonstrates catalogue discovery against https://x402.org/facilitator 1. Probed on 2026-08-24: that facilitator's supported-schemes endpoint lists no bazaar, and its discovery endpoint returns the site's own HTML rather than the JSON the guide implies 7. The endpoint that does work is a different one, on Coinbase's platform API, and it answers unauthenticated — anyone can read the catalogue with no account and no key. That catalogue reported 15,259 resources on 2026-08-24 7.

What the numbers actually look like

In a 1,000-item sample, 242 listings accepted payment on Base mainnet and one on Base Sepolia, the test network 7. A test-network listing is a demonstration, not a discovery channel.

Across 415 accept-blocks the median listed price was $0.005 7. Coinbase's April 2026 figure of $0.028 is a median per transaction 7. Different bases; never average them.

A Visa and Artemis dataset put roughly $15.0 million of adjusted volume across about 109.6 million transactions to 2026-04-21 4. An independent authenticity audit estimates roughly 81% of that volume and 48% of those transaction counts may be self-dealing or gamed 5. That is one research shop's estimate, corroborated in direction, not in magnitude.

Facilitator pricing on mainnet, effective 2026-01-01: the first 1,000 settled payments a month free, $0.001 after 3. The fee lands on settlement, not on verification.

Verify the run described here: cryptowhat.net/verify/

Sources

  1. [1] x402 documentation — Bazaar extension retrieved 2026-08-24
  2. [2] Coinbase Developer Platform — x402 quickstart for sellers retrieved 2026-08-24
  3. [3] Coinbase Developer announcement — facilitator settlement pricing from 2026-01-01 retrieved 2026-08-24
  4. [4] Visa via Artemis — cumulative x402 settled value to 2026-04-21 retrieved 2026-08-24
  5. [5] Independent authenticity audit of x402 volume, Q3 2026 retrieved 2026-08-24
  6. [6] Internal build record — agent-payment server on a test network, 2026-08-24 — team build log, 2026-08-24 retrieved 2026-08-24
  7. [7] Ward — lane C, agent-era angle and feasibility (version state, probes and measurements, 2026-08-24) — Deliverables/2026-08-24-cryptowhat-strategy/03-ward-lane-c-agent-era-angle-and-feasibility.md retrieved 2026-08-24
  8. [8] Session log — x402 payment server built and run on a test network, 2026-08-24 — Team Knowledge/session-logs/2026/08/2026-08-24-21-15_ward_thecryptoport-rung-3-x402-port.md retrieved 2026-08-24