AgentFlow · settlement tape
tape running · Base · EIP-3009 · updates every 2 min · v1.0.0

The Base Settlement Tape

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.

The citable number — newest frozen UTC day
measuring…
the first citable day completes at 00:00 UTC — the tape can't be backfilled, so day one is day one

What this tape does NOT measure — read this first
  • loading scope…

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.

Clean settlement volume by day · USD

Gray bars = immature days (sample or coverage below the gate) — shown, never headline-cited. Data: /history.json (rail_* fields, daily, oldest first).

Wash-suspect receipts — click and judge

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 txamountpredicatereverse tx
loading…
Methodology · v1.0.0 · frozen definitions

What counts as a rail settlement

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.

What counts as wash-suspect

A rail settlement is flagged when either predicate fires:

  1. self-loop — sender equals receiver;
  2. round-trip — a reverse transfer (receiver→sender) exists within ±20% of the amount and ±1 hour.

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.

Coverage — the honesty column

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.

Why a floor beats a headline

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.

Versioning & license

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)

Changelog

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).

chain · Baseasset · native USDCscheme · EIP-3009window · UTC dayslicense · CC-BY-4.0tape start · 2026-07-02