# Reading #2 — x402 Buyer Census (Bazaar frame), 2026-09-01

Interactive page: x402-buyer-census.html (also published as a Claude
artifact). Data: market-data.json (v2 build). Authorization audit:
selector-audit.json (fail-closed input).

## Method (v2, sol-reviewed same day)

1. Registry snapshot: full CDP Bazaar dump 2026-09-01 → 1,119 unique Base
   payTos with listed amounts (14,811 listings). Snapshot semantics:
   mid-window delistings are invisible (settlement-refresh churn is a
   measured burn class), so the frame under-counts by construction.
2. Scan: 168h of USDC Transfer logs into those payTos (~302k blocks,
   grouped topic filters, ≤2,000-block chunks, free RPC). Known gap: some
   rate-limited chunks were dropped without a persisted manifest in this
   reading; the collector package now records a manifest (coverage is a
   computed number from Reading #3 on).
3. Price-match: a transfer counts only when its value equals a listed
   amount of its payTo.
4. Authorization audit, FAIL-CLOSED ≥ $10: selector check via
   eth_getTransactionByHash (transferWithAuthorization/
   receiveWithAuthorization on USDC = x402; plain transfer = not).
   Result: 8/11 big auth, 3 plain (the $3,000 Bitrefill false positive),
   40/40 sampled sub-$10 auth.
5. Build: house payers excluded; cohorts and breadth count distinct payTo
   wallets (200/1,119 payTos serve 2–77 hostnames — hostname counts are
   meaningless); shared wallets labeled '+N hosts'.

## Headline numbers

$2,096.69 · 123,687 purchases · 1,817 paying wallets · 296 recurring
(≥4 of 8 UTC dates) · 50 clock-regular crons · crawlers 113 · loyal
workers 1,037. Ecosystem context (x402-list, unverified): ~$1.34M USDC /
14.5M settlements / 30d across 25 facilitators.

Corrections history: tradewind
raw/sources/2026-09-01--x402-buyer-census-bazaar-frame.md.
