AERONDocs GitHub
scan.aeron.sh

Read the settlements back.

An open, keyless API over every agent payment on Robinhood Chain — every facilitator on the network, not only Aeron’s.

Aeronscan reads agent payments off Robinhood Chain itself, so every facilitator on the network is in it — Aeron’s is one row among the rest. Open, keyless, CORS on. One Worker, one database, one cron.

What counts as a payment

An x402 payment settles as an EIP-3009 transferWithAuthorization: the buyer signs, somebody else submits and pays the gas. That leaves two events on the token, and the pair is the whole index.

EventWhat it gives
AuthorizationUsed(authorizer, nonce)The buyer, and the fact that this was signed rather than sent.
Transfer(from, to, value)The seller and the amount.

A wallet moving its own money never emits the first one, which is what keeps ordinary transfers out of the index without anybody having to declare anything.

Attribution is the address that submitted the transaction — the only on-chain evidence of who settled a payment. A facilitator cannot claim volume it did not relay, and one nobody has named still appears, under its own address, with its real numbers.

API

Endpoint
GET /api/stats?window=1|24|168|720Totals, per-facilitator split, time series. Hours.
GET /api/transactionsThe feed — ?buyer= ?seller= ?facilitator= ?before= ?limit=
GET /api/tx/{hash}One settlement.
GET /api/address/{address}What one wallet spent and earned.
GET /api/facilitatorsWho is relaying, and how much.
GET /api/leaderboardTop buyers and sellers.
GET /api/statusIndex freshness and cursor.
bash
curl -s 'https://scan.aeron.sh/api/stats?window=24' | jq '.overview'

{ "windowHours": 24, "txns": 234, "volumeUsd": 682948.72,
  "buyers": 16, "sellers": 12, "facilitators": 10, "avgUsd": 2918.58 }

Freshness is part of the answer

An explorer that has stopped indexing and does not say so is worse than one that is down: the page still renders and the numbers still look like numbers. So every status response carries indexedAt, ageSeconds, and stalestale flips after ten minutes without a successful index run.

bash
curl -s https://scan.aeron.sh/healthz

{ "ok": true, "network": "eip155:4663", "cursor": 51421932,
  "settlements": 398, "indexedAt": "2026-09-01 04:07:45", "ageSeconds": 30, "stale": false }

Check stale before you trust a number from this API in anything that matters.

Updated 1 September 2026. Everything on this page is read from the running services; report a drift at github.com/aeronlabs.