Pay with a passkey · no extension
The x402 observers report. Sign with a passkey.
A 7-day relative-frequency dataset of the agents and crawlers that show up at the paid x402 endpoint, served as structured JSON. This page pays for it from a Coinbase Smart Wallet — you authenticate with a passkey, not a browser extension, and the wallet signs the payment. A research-forward reference artifact, not a product.
This is the human counterpart to the machine front door. The report is JSON meant for an agent to consume; here a person pays for it directly. The companion market-report route is the human-facing PDF one.
GET /v1/x402-observers
$0.001 USDC · Base mainnet
This pays the real route on Base mainnet (eip155:8453) — $0.001 of actual USDC, settled on-chain. The passkey is the signer, not a funding source: it creates a brand-new smart wallet with no balance, so a fresh wallet cannot pay. Fund the smart wallet with mainnet USDC first, then the passkey flow completes the payment — no browser extension, no seed phrase.
The same /v1/x402-observers route is what funded machine/CLI buyers pay programmatically — one path, the only difference is whether a passkey or an agent's key signs. The payment is gasless (EIP-3009): you authorize the transfer, the facilitator submits it and fronts the gas.
Settled.
x402-observers.json
What happens when you click
A passkey signs — no extension, no gas.
-
01
A Coinbase Smart Wallet opens in a popup. You create or unlock it with a passkey — a device biometric or security key — not a browser extension. The result is an ERC-4337 smart account.
-
02
The browser requests the report and gets back 402 with the payment terms. Your passkey signs a gasless EIP-3009 USDC authorization for $0.001 — a signature, not an on-chain transaction.
-
03
The facilitator submits the signed authorization on-chain and fronts the gas; the smart account's EIP-1271 signature settles the same way an EOA's would. The 200 returns the JSON report with a settlement reference.
You need USDC on the target network for the $0.001, but no ETH — you sign the transfer, the facilitator submits it on-chain and fronts the gas. The same @x402/fetch client that runs on the server runs here in your browser; the only difference from the market-report page is that a passkey smart wallet is the signer. It pays the real Base-mainnet route, so the smart wallet must hold mainnet USDC first.
What the dataset is
Who shows up at an x402 paywall.
The report is a 7-day, relative-frequency view of the identified agents and crawlers that hit the paid endpoint: a window length, a stated denominator (so a share is read as a fraction of identified hits, not of all traffic), and a ranked list of observers with a count and share each. It is a reference artifact for a research question — who actually turns up when a bit of the web is put behind a per-request paywall — not a product or a complete census.
The dataset served here is a real 7-day slice of the agents and crawlers seen at the paid endpoint, ranked by relative frequency after stripping generic HTTP-client noise (node, undici, axios, curl, bare Mozilla, and the like). The share denominator is identified observers, not all traffic. It is refreshed daily — a sliding 7-day window, regenerated every day by a signals pipeline — and the response carries its own generated_at and window bounds. Raw user-agent is a claim, not verified identity — linking each observer to fingerprint, network, and signature evidence is a later edition.