The public indexer at https://api.aere.network serves indexed history so you do not have to scan blocks over RPC.
Routes
| Route | Returns |
|---|---|
/api/stats | chainId, block, timestamp, gasPriceWei, baseFeeWei |
/api/blocks?limit=N | { chainId, blocks: [...] }, newest first |
/api/block/{number} | One block, fields at the top level, plus transactions |
/api/transactions?limit=N | { chainId, scanned_back, transactions: [...] } |
/api/tx/{hash} | One transaction |
/api/address/{address} | address, balanceWei, nonce, isContract, codeSize |
A request to an unknown route returns 404 with a JSON body that lists the routes above, so the API describes itself.
The field naming is not uniform, and you must not assume
This is the part that costs an afternoon if you assume. The shapes differ by route:
| Route | Field style |
|---|---|
/api/blocks items | camelCase: gasUsed, gasLimit, baseFeePerGas, txCount, parentHash |
/api/block/{n} | camelCase, at the top level, with no wrapper object |
/api/block/{n} → transactions items | from, to, valueWei, block, gas, gasPriceWei |
/api/transactions items | snake_case: block_number, from_addr, to_addr, gas_limit, gas_price |
/api/address/{a} | camelCase: balanceWei, isContract, codeSize |
In JavaScript a missing field is not an error, it isundefined, and a formatter turns that into a convincing0. Readingtx_countwhere this API returnstxCountyields zero for every block; expecting ablockwrapper on/api/block/{n}, where the fields are at the top level, yields "not found" for blocks that exist. Neither throws, and the request returns 200. Check the shape against a real response before you trust a number.
Examples
curl -s https://api.aere.network/api/stats
curl -s https://api.aere.network/api/blocks?limit=2
curl -s https://api.aere.network/api/block/17389117
What it does not have
There is no token-transfers route and no total-transaction count. If a route is not in the list the API returns on a 404, it does not exist, and a client should not call it hopefully: an endpoint that answers 404 on every call is not a feature that is coming, it is noise in someone's console.
Which to use when
- Live chain state, calls, sending transactions: the JSON-RPC endpoints.
- History for an address or a range: this indexer.
- Anything you intend to rely on cryptographically: your own node, and
eth_getProof.