Authz

the toll · answering 402 now

Tolls, not Turing tests.

A captcha is a ritual to prove you are not an agent. Captcha farms already sell that proof at $0.001 to $0.003 each, which agents pay today to lie about their species. A toll charges the same to come in telling the truth, and lets anyone with a wallet through, person or agent.

/toll/data costs 0.005 USDC on Base Sepolia, test money, paid over x402. No captcha, no account, no key.

Sunday 18 October

9:41

Authzmbp-m5-max

Pay 0.005 USDC to authz.space

Base Sepolia (test) · to 0x7432…5558

the terms

what the server sends

Ask for https://authz.space/toll/data without paying and it answers 402 Payment Required. Its price is data in a header, not words on a page: PAYMENT-REQUIRED, base64 JSON. This is the header the live server sent when this page was built.

GET /toll/data
HTTP/2 402
content-type: application/json
payment-required: eyJ4NDAyVmVyc2lvbiI6MiwiZXJyb3IiOiJQYXltZW50IHJl…
payment-required, decoded
{
  "x402Version": 2,
  "error": "Payment required",
  "resource": {
    "url": "https://authz.space/toll/data",
    "description": "Today's toll data: proof that a price can stand where a captcha stood",
    "mimeType": "application/json"
  },
  "accepts": [
    {
      "scheme": "exact",
      "network": "eip155:84532",
      "amount": "5000",
      "asset": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
      "payTo": "0x7432188ed7c7b7aAb0E61772f9FCd0B3cd665558",
      "maxTimeoutSeconds": 300,
      "extra": {
        "name": "USDC",
        "version": "2"
      }
    }
  ]
}

read as a person would

price
0.005 USDC
in atomic units
5000, 6 decimal places
network
Base Sepolia · eip155:84532
token
USDC · 0x036C…CF7e
paid to
0x7432…5558
scheme
exact, one signed transfer
time to pay
300 s

exact on EVM is an EIP-3009 transfer authorization: the payer signs the amount, the recipient, a validity window and a nonce. A facilitator settles it and pays the gas, and can change neither the amount nor the recipient.

paying it

one command, one touch

An agent, a script or a person at a terminal pays it with the same line:

authz ask --pay https://authz.space/toll/data --wallet <ref>
Terminal

Pay for authz.space?

0.005 USDC on Base Sepolia (test)

from your wallet 0x3399…D413

to 0x7432…5558

<ref> names a wallet key kept in 1Password under a signing rule. Authz reads its address and asks for one signature; the key itself never leaves the secrets helper.

no wallet

the other door

A person without a wallet comes through free. Nothing to solve: one press, and an invisible check that a person is at this page (Vercel BotID). An agent that fails it pays at the toll instead, telling the truth.

step by step

from 402 to the data

  1. 01

    402

    Authz fetches the resource. It answers 402 with its terms, and Authz picks the offer it pays: exact, USDC on Base.

  2. 02

    the transfer, fixed whole

    Before anyone is asked, every byte to sign is settled: your wallet's address, the payee, the amount, a random nonce, and a window long enough to answer in plus the server's timeout.

  3. 03

    the ask

    “Pay for authz.space?” reaches whichever device you are at. The amount comes first, and the yes reads “Pay 0.005 USDC”.

  4. 04

    Touch ID

    A payment's yes is always verified: a finger on the Mac, Face ID on the iPhone, signed by a key in the Secure Enclave.

  5. 05

    one signature, released

    The secrets helper checks that the yes approved exactly these bytes, for this key, and signs that one transfer. Anything else would be asked on its own.

  6. 06

    paid

    Authz fetches again with the signature in PAYMENT-SIGNATURE. The facilitator verifies and settles it, the server answers with the data, and the transaction goes on the request's receipt.

on chain

paid once, on chain

The first payment went through this flow on 2026-10-18, against the toll's first address on Cloudflare Workers: one Touch ID, then the balances read back from the chain, 19.995 and 0.005.

tx 0xf8fa…4c8b on Basescan

  • a retry never pays twice

    Authz sends each payment with an id (x402's payment identifier) and retries with the same signature; the toll answers a repeat with its first answer, and the transfer's one-use nonce stops a second charge on chain.

  • where it stops

    Most uses of proof of personhood are anti-spam, and anti-spam needs a price. Where one person, one vote is the point, a toll does not replace it.