A verifiable floor on real x402-style settlement on Base — not a headline. Trackers disagree 10x on "x402 volume," so this deliberately measures less, provably: gasless EIP-3009 USDC settlements, wash-suspects flagged with clickable receipts, chain coverage disclosed next to every number. It is not total x402 volume, and it doesn't pretend to be.
Denominator warning: our Real-Agent Index measures wash among behaviorally-identified agents — a different population than ecosystem-wide "reported x402 volume" estimates. The two are not comparable, and we don't compare them. Anyone who puts this tape's wash % next to an ecosystem-wide wash estimate is making a denominator error.
Gray bars = immature days (sample or coverage below the gate) — shown, never headline-cited. Data: /history.json (rail_* fields, daily, oldest first).
Every flagged settlement resolves to on-chain transactions. "Suspect" means the round-trip fingerprint fired — you can verify each one on Basescan yourself. Full receipts JSON →
| settlement tx | amount | predicate | reverse tx |
|---|---|---|---|
| loading… | |||
A USDC transfer on Base whose transaction carries an AuthorizationUsed event with authorizer == sender — the exact EIP-3009 transferWithAuthorization / receiveWithAuthorization fingerprint that x402 payments settle on. Mechanism, not guesswork: no behavioral scoring, no agent filter, no hub filter in this population.
A rail settlement is flagged when either predicate fires:
This is a conservative under-count by design. It catches naive wash only. Linked-wallet, multi-hop (A→B→C→A) and multi-day self-dealing are invisible to this method and not claimed. The headline share is by count; the value-weighted share is published but whale-outlier-dominated.
The indexer reads Base near-head. If it falls behind and jumps forward, the skipped block ranges are recorded, not hidden, and published per day. coverage_pct = blocks indexed ÷ blocks the chain produced. A day is citable only when it has ≥1,000 rail settlements AND ≥95% coverage — below that it renders as "measuring", never as a number.
Reported x402 volume spans chains, assets and settlement schemes this tape does not see (Permit2/"upto", facilitator batching, Injective, Solana). Anyone can inflate a bigger number; nobody can fake a floor made of receipts. When two trackers disagree 10x, the floor is the number that survives scrutiny.
Predicates never change silently: any definition change bumps the version and lands in the changelog below. Data is CC-BY-4.0 — free to cite with attribution.
Cite as: AgentFlow Base Settlement Tape v1.0.0, <UTC date> · agentflow.watch/rail Data: curl -s https://agentflow.watch/rail.json Receipts: curl -s https://agentflow.watch/rail/receipts.json History: curl -s "https://agentflow.watch/history.json?days=90" (rail_* fields) MCP tool: x402_rail_tape (POST /mcp — in the official MCP Registry)
v1.0.0 — 2026-07-02 · tape start. EIP-3009 tagging, round-trip/self-loop predicates, coverage ledger, maturity gate (≥1,000 tx & ≥95% coverage).