Versioned rules for what counts as an agent payment and which sellers stay in the organic series. Each protocol's own rules are on its protocol page. The free API and the dashboard read the same rollups.
Raw counts every USDC transfer in a facilitator-sent transaction. Organic keeps payments to sellers that clear a windowed activity bar and are not facilitator wallets.
Effective Oct 23, 2026
Agent Payments Index counts x402 settlement volume from chain data. It is not a facilitator, and it does not trust self-reported dashboards.
On an EVM chain, a payment is a native USDC `Transfer` log inside a transaction whose **sender** is a registered facilitator settlement address.
Base, Polygon, and Arc run this scanner. Base defaults to `https://base-rpc.publicnode.com`. A `BASE_RPC_URL` of exactly `https://mainnet.base.org` is ignored, because that host returns 429 on receipt reads. Polygon defaults to `https://polygon-bor-rpc.publicnode.com`. Arc defaults to `https://rpc.mainnet.arc.io`. Arc blocks are about half a second, so a useful scan needs HyperSync (`https://arc.hypersync.xyz/query`).
On Solana, a payment is a native USDC owner-balance increase in a successful transaction whose **fee payer** is a registered facilitator. The largest USDC outflow owner is the buyer. Each positive USDC delta is its own raw row, so a fee leg stays in raw volume and drops out of organic volume when the recipient is a facilitator wallet. The USDC mint is `EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v` (6 decimals).
Solana signature pages try `https://api.mainnet-beta.solana.com` and, after a 429, `https://api.uniblock.dev/uni/v1/json-rpc?chainId=solana`. `https://solana-rpc.publicnode.com` is not used for `getSignaturesForAddress`. An empty first page is not the end of history until a second public RPC returns an empty page too. Live ingest pages from the stored signature until that address is caught up. `getTransaction` uses the public RPC, then one-call requests to `https://solana-rpc.publicnode.com` and `https://solana-mainnet.gateway.tatum.io`. A host that rejects a `getTransaction` batch is retried as single calls. A cold cursor stores the newest signature and does not walk history. One address error does not stop the other addresses. A run that is still behind requeues itself. `HELIUS_API_KEY` is an optional standard-RPC fallback after those public RPCs fail, capped at 18,000 credits per UTC day. Enhanced transactions are not used.
A seller is organic **for the selected window** (7d, 30d, 90d, or all) when all of the following hold on that window:
Comparisons are inclusive (`>=`). Raw and organic are shown side by side. A seller can be organic over 90 days and not over 7 days.
All-time organic columns on `daily_rollups` / `hourly_rollups` use the same rules on lifetime totals. The dashboard range selector uses `range_daily_series` and `range_hourly_series`, which apply the windowed classification.
Dashboards and `/api/v1` read precomputed rollups, not the raw transfer log.
Postgres stores raw transfers for the last **180 days**, partitioned by month, with a BRIN index on `block_time`. A month is eligible for archive only when it has fully aged out of that window. The archive script writes Parquet to the private `transfer-archive` Storage bucket, records `archive_manifest`, then drops the partition. The script refuses to drop a month that has no manifest.
Do not add the two together.
Settlement addresses ship as typed adapters under `adapters/`. The registry is 36 facilitators and 196 addresses. The 2026-10-23 x402scan snapshot is still the base list. Later rows store the publisher on `facilitator_addresses.source_url`, a retirement date on `active_until`, and a JSON note on `evidence`:
The older Corbits, thirdweb, and x402.rs Polygon addresses stay in the registry and stay deprecated. Incremental Solana ingest skips deprecated addresses. Backfill still loads them so older settlements can be attributed.
Avalanche and Sei showed a positive nonce for at least one published PayAI signer on 2026-10-23. They are not ingested: Avalanche chain id 43114 does not fit `chains.id` (`smallint`), and Sei does not yet have a verified USDC settlement log in this registry. IoTeX showed a nonce of 1 for one PayAI signer. XDC nonce for the sampled signers was 0. Wildcard signer lists were not copied onto those chains.
A live spot check on Base did see snapshot addresses sending transactions in blocks 52992718–52992736.
MPP on Tempo is a planned protocol row with no adapter yet.
Free JSON lives under /api/v1. Pass dataset=sample or dataset=live and range=7d, 30d, 90d, or all.
/api/v1/series.csv is the chart series. /api/v1/sellers/{address} is one seller. It is not the bulk export.
/api/v1/x402/export is the paid seller-day file. It returns 402 until a Base USDC payment settles, and 503 when X402_PAY_TO is unset.
/api/mcp exposes the same free reads as tools for an MCP client.