x402 information desk
The web sells ads to people. This desk sells facts to machines.
Bots, crawlers, and agents already consume most of the interesting bytes on the internet. They do not see banners and they will not open a Stripe checkout. x402 puts a price on the HTTP request itself. Signaldesk is a working stall: four priced briefs, a real 402 loop, and a clear account of what is worth selling.
The handshake
Four HTTP steps. No account.
- GET01
Ask for the resource
An agent requests a brief the same way it requests any JSON API. No account, no API key, no OAuth dance.
- 40202
Read the invoice
If PAYMENT-SIGNATURE is missing, the desk answers Payment Required. The PAYMENT-REQUIRED header is a base64 JSON quote: price, asset, network, payTo.
- PAY03
Sign and retry
The client (wallet SDK, agent runtime, or this playground) signs a payload and retries the same URL with PAYMENT-SIGNATURE.
- 20004
Settle and read
The desk verifies, fetches the brief, then settles. PAYMENT-RESPONSE comes back with the body. Failed briefs are not charged.
On the desk today
Sell a packet, not “all information.”
Each SKU is a bounded JSON object with a source, a license, and a price an agent can compare to fetching the raw web itself.
The idea
Machine traffic is a customer, not a cost.
For thirty years the default deal was: humans see ads, platforms keep the rent, machines take a copy for free. That deal breaks when the reader is a model with a wallet and no retinas.
x402, from Coinbase and now the x402 Foundation, revives HTTP 402 so a server can quote a stablecoin price in a header. The buyer can be a person, a script, or an agent mid-tool-call. Settlement is cheap enough that a weather observation can cost a tenth of a cent and still clear.
The hard part is not the payment. The hard part is choosing information you have the right to sell, shaping it so a machine can use it, and pricing it against the free alternatives. The Operators page is honest about that.
For agents
GET /api/v1/briefs/entity?q=ethereum
→ 402 PAYMENT-REQUIRED
POST /api/demo/receipt { "sku": "entity" }
→ PAYMENT-SIGNATURE
GET /api/v1/briefs/entity?q=ethereum
PAYMENT-SIGNATURE: <base64>
→ 200 + brief JSONOpen the machine catalog