The handshake
402 → pay → 200 OK.
One HTTP round trip, settled inline. The 402 carries the price; the retry carries the payment.
01 GET the lane——02 402 · Ticket——03 Sign the Pass——04 200 · Receipt
① challenge
GET /premium ← 402 Payment Required x-toll-ticket: { scheme: "toll-exact", amount: "2000", asset: "USDC", payTo: "13Ev…" }
② sign
// transponder const pass = sign( transfer(payTo, 2000), memo(ticket.nonce), wallet, ) x-toll-pass: "‹signed transfer›"
③ settle
GET /premium x-toll-pass: … ← 200 OK x-toll-receipt: { tx: "5aUz…", settled: "0.002", asset: "USDC" }
Two sides of the gate
Callers pay. Sellers get paid.
The same handshake serves both ends: an autonomous caller settles a request inline, a seller prices a route and collects a payment on-chain.
Caller
Pay for a call — no card
- Pay for a call without a card, key, or account.
- Sign a single Solana transfer and retry the request.
- Every paid call returns an on-chain settlement receipt.
Try live console
Seller
Price a URL in one line
- Price any route in one line of middleware.
- The Gate collects the toll before serving a response.
- No keys to issue, no dashboards, no invoices to reconcile.
Monetize a URL