# Agent Payments Index Neutral open data for agentic commerce. x402 settlements and MPP session settlements on Tempo are indexed. Other protocols are metadata only and are not mixed into volume. ## What a row is A raw payment is a USDC Transfer log inside a transaction whose sender is a registered facilitator settlement wallet. The buyer is topic1 and the seller (payTo) is topic2. Fee legs paid to another facilitator wallet count as raw and fail the organic screen. Organic v1, evaluated on the selected window (7d, 30d, 90d, or all): - revenue >= $100 - distinct buyers >= 3 - average payment (revenue / payment count) >= $0.001 - seller address is not a facilitator settlement wallet ## Storage Postgres keeps raw transfers for the last 180 days, partitioned by month. Dashboards and the API read precomputed hourly and daily rollups, which keep full history. Older months are archived to Supabase Storage as Parquet by a script, not by an Edge Function. There is no ClickHouse in this MVP. Sample and live are separate datasets. Sample transaction hashes start with sample- and are not chain history. ## Free API All routes accept dataset=sample|live, range=7d|30d|90d|all, and protocol= unless noted. Omit protocol to read every indexable protocol together. - GET /api/v1/protocols - GET /api/v1/protocols/{id} - GET /api/v1/overview - GET /api/v1/facilitators - GET /api/v1/facilitators/{slug} - GET /api/v1/chains - GET /api/v1/sellers?q=&limit=&offset= - GET /api/v1/sellers/{address}&chain= - GET /api/v1/resources?q=&tag=&min=&max=&source= - GET /api/v1/methodology - GET /api/v1/series.csv Headline buyers are distinct across the window. Chart buyers are distinct inside each bucket and do not sum to the headline. ## Paid API GET /api/v1/x402/export Bulk seller-day rollups (one row per day, seller, facilitator, chain). This is not the same payload as the free seller endpoint. Payment uses x402 exact on Base USDC via @x402/next. Price defaults to $0.005 and is set with X402_PRICE. Payee is X402_PAY_TO. The route returns 503 when the payee is unset and 402 when payment is required. Cursor query params: afterDay, afterSeller, afterFacilitator. limit max 5000. ## MCP POST /api/mcp Tools: get_overview, list_facilitators, get_facilitator, list_chains, list_sellers, get_seller, search_resources, get_methodology. ## Ingestion Base, Polygon, Solana, and Arc incremental scans run every 5 minutes in a Supabase Edge Function, woken by pg_cron and a pgmq queue. An EVM run is budgeted to about 20 blocks on public RPC (12 on Polygon) or 200 blocks on HyperSync (400 on Arc). Arc is mainnet chain id 5042 and scans the 6-decimal USDC ERC-20. Solana pages api.mainnet-beta.solana.com from a stored signature until that address is caught up, and uses api.uniblock.dev after a 429. publicnode getTransaction calls are one signature at a time. An empty signature page is not treated as finished until a second public RPC agrees. One address error does not stop the others. Helius standard RPC is a fallback after the public RPCs fail, capped at 18,000 credits per day. Enhanced transactions are not used. The Bazaar catalog crawl is hourly. Historical backfill is workers/src/backfill.ts (npm run backfill:base, backfill:polygon, backfill:solana, backfill:arc, backfill:tempo). Tempo uses the public RPC only. Arc history starts 2026-09-16. It writes with the Supabase HTTPS API, not a Postgres port.