Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Indexer overview

The indexer reads the chain through the node RPC only. It uses no Miden client, no store, and no keystore. It polls the on-chain registry for pool ids and each pool for state, keeps a bounded history in SQLite, and serves the result over HTTP.

The indexer is the application’s pool source. The home page lists every pool it serves, and the pool page loads state and configuration from it. There is no local pool list and no manual import.

What it reads

DataSource
Pool setRegistry pools map
Reserves, LP supply, pot, fees, oracleThe pool’s ten value slots and its vault
Token symbols and decimalsEach faucet’s token_config slot
Note fee schedule and fee assetThe pool’s fee_asset_id value slot and the basic_constant_fee schedule map
Activity and 24 h aggregatesClassified reserve and pot deltas between polls

Reserves equal the vault balances of token0 and token1 minus the protocol pot, matching the contract’s get_reserves.

Process shape

The process starts the HTTP API, a registry poll loop, a block subscription, and a pool scheduler. The registry poll discovers pools. The block subscription marks a pool due when a block names it as changed. The scheduler fetches pools whose own cadence says they are due. A SQLite write cycle persists the newest bucket of each tier and the pending activities.

The API opens its own read-only connection to the same SQLite file. WAL lets the API read while the poller writes, so neither waits on the other.

Source

The canonical source is the Radicle repository. GitHub is a mirror. The repositories chapter lists every location.