← SmartFlow Observatory /verify
x402 growth, decomposed
The headline transaction count everyone screenshots is real, but it is not one thing. This page splits every tracked x402-era micro-USDC transfer on Base into what it actually is: smart-wallet plumbing, recycled wash volume, and the facilitator-settled core that survives scrutiny. Recomputed daily from our independent ledger. Every number on this page is verifiable against a sealed dataset.
15.5Mtransfers, last 30d
$15.67Mvolume, last 30d
858.2Kdistinct payers, last 30d
1.49%unflagged facilitator-settled core (tx share)
Decomposition, last 30 days
Share of the 15.5M tracked transfers. Categories overlap; they do not sum to 100 percent.
Wash-flagged (rules R1 to R5)8.1M tx · 52.16% of tx · $7.15M (45.6% of volume) · $0.886/tx avg
Facilitator-mediated1.9M tx · 12.18% of tx · $111.3K (0.71% of volume) · $0.059/tx avg
Bundler-mediated (ERC-4337 plumbing)2.1M tx · 13.82% of tx · $2.63M (16.75% of volume) · $1.23/tx avg
Unflagged facilitator-settled core230.6K tx · 1.49% of tx · $75.3K (0.48% of volume) · $0.326/tx avg
Average ticket by category: facilitator-mediated $0.059 per transfer vs bundler-mediated $1.23 (21x). Facilitator rails carry 12.18% of transfers but 0.71% of volume; that ratio, not the raw transfer count, is the honest way to read the facilitator headline.
Wash rules R1 (self-transfers) and R2 (bursts within 300 s) depend only on the transfer and its five-minute neighbourhood, so they settle within about two days: 518.5K transfers from the most recent 48h are still pending classification and are counted as neither wash nor clean. R3 (dust from wallets that exceed 100 transfers in any UTC day), R4 (reciprocal pairs) and R5 (channel recycling, refreshed daily) have no such horizon: they are re-evaluated over all unflagged history, so a wallet, pair or channel that qualifies later relabels its older transfers and past wash shares can still move. Corrected 29 Sep 2026 (R3, R4) and 3 Oct 2026 (R5 added; the limitation below that said classification lags ingest by up to 48h was wrong for these three rules); this note previously said all wash flags settle within two days. Self-correction note: R5 channel flags were frozen 2026-06-25 to 2026-07-10 (backfilled 2026-07-10); clean-core figures shown here in that window were overstated.
Concentration check on the core itself: 24.11% of the 30d unflagged core flows into a single recipient (0x6839…1a2b), and 0.23% of that comes from one payer. The distributed unflagged core, excluding that pair, is 175.0K transfers. Caveat: the R5 channel pass refreshes daily since 2026-07-10, but a channel needs 14 active days to qualify, so brand-new automated pairs can inflate the core for up to ~3 weeks before flags catch up.
Where categories overlap
| Overlap | Transfers, 30d | Share of universe |
|---|---|---|
| Bundler-mediated that is also wash-flagged | 806,301 | 5.22% |
| Facilitator-mediated that is also wash-flagged | 1,638,166 | 10.6% |
87.0% of facilitator-mediated transfers also carry a wash flag. That is why the unflagged core is the number to watch, not the facilitator total.
Trend, 7 days vs previous 7 days (both windows exclude the newest 48h, so R1 and R2 flags are settled; R3, R4 and R5 can still move older rows)
| Category | Previous 7d tx | Current 7d tx | Change |
|---|---|---|---|
| Universe (all tracked micro-USDC) | 3.6M | 3.8M | +5.1% |
| Wash-flagged (rules R1 to R5) | 2.0M | 2.0M | -1.7% |
| Facilitator-mediated | 621.7K | 479.4K | -22.9% |
| Bundler-mediated (ERC-4337 plumbing) | 527.5K | 497.3K | -5.7% |
| Unflagged facilitator-settled core | 82.7K | 60.2K | -27.2% |
Definitions
- Universe (all tracked micro-USDC)
- All USDC micro-transfers (0.0005 to 5.0 USDC) on Base captured by our independent tracker.
- Bundler-mediated (ERC-4337 plumbing)
- Transfers whose transaction sender is a known ERC-4337 bundler, i.e. smart-wallet plumbing rather than a person pressing pay.
- Facilitator-mediated
- Transfers settled through a recognized x402 facilitator contract path (is_facilitator_mediated = 1).
- Wash-flagged (rules R1 to R5)
- Transfers flagged by our wash-detection rules R1 to R5 (self-pay, burst, dust, loop, channel recycling).
- Unflagged facilitator-settled core
- Facilitator-settled transfers with no wash flag, at least 48h old so the two bounded rules (R1, R2) have run; R3, R4 and R5 have no time horizon and can still relabel older rows.
What this does not show
- Only micro-USDC transfers between 0.0005 and 5.0 USDC on Base. Larger transfers are out of scope by design.
- is_facilitator_mediated is populated for a subset of the window; 11137998 of 15456361 30d transfers are unclassified, so the facilitator share is a lower bound.
- tx_sender is missing for 15504 of 15456361 30d transfers, so the bundler share is a lower bound.
- R1 and R2 wash labels settle within about 48h of ingest; R3, R4 and R5 have no time horizon, so labels on older rows can change at any later pass (corrected 3 Oct 2026; this limitation previously said classification lags ingest by up to 48h). The most recent two days are reported as pending, not yet classified.
- The R5 channel rule needs 14 active days before a channel qualifies (requalified weekly), so a brand-new wash channel can be counted as clean for up to ~3 weeks. R5 flags were frozen 2026-06-25 to 2026-07-10 and were backfilled on 2026-07-10; clean-core figures published in that window were overstated.
- Trend windows (7d vs previous 7d) are both offset 48h back from the snapshot so each side is past the R1/R2 maturity buffer; R3, R4 and R5 can still move either window.
- Timestamps are ingest times (hourly batch), not block times. Day boundaries can shift by up to an hour. Metrics stop at the effective bound, 2 hours before the source maximum timestamp, so asynchronous facilitator classification can settle before publication.
- Rows ingested up to 2026-09-26T10:06Z hold one row per transaction by construction (first qualifying transfer only). From then on the ledger stores every qualifying transfer leg, keyed by (chain, tx_hash, log_index); for continuity every tx, volume and payer figure in this file still counts one leg per transaction, the one with the lowest log_index. The legs and legs_amount_usdc fields in each window give the full leg count and amount for the same filter.
- The unflagged core is not evenly distributed; a single recipient can dominate it. See clean_core_concentration_30d and cite the distributed core alongside the headline share.
How to verify
Do not trust this page. Recompute it.
- The full dataset behind this page is published at decomposed.json, including every category definition and limitation.
- The dataset is sealed:
sha256 175cf425c0bcda2f91ca21ad83a5942aec0aafad6dce1d9452d0fbd418967938 - Recipe: Take the value of the top-level 'data' key, serialize with python: json.dumps(data, sort_keys=True, separators=(',', ':'), ensure_ascii=False), then sha256 the UTF-8 bytes.
- Recompute it yourself in python:
import json, hashlib, urllib.request
doc = json.load(urllib.request.urlopen("https://verify.smartflowproai.com/decomposed/decomposed.json"))
payload = json.dumps(doc["data"], sort_keys=True, separators=(",", ":"), ensure_ascii=False)
print(hashlib.sha256(payload.encode("utf-8")).hexdigest() == doc["seal"]["sha256"])
Data snapshot: 2026-10-06T06:02Z (ingest time) · generated 2026-10-06T06:35:13Z · bundler set: 210 addresses (n1-classification)