Indexer
A GraphQL API over the protocol's events, for anything the chain cannot answer directly.
The chain can tell you what a market's totals are. It cannot tell you who your borrowers are without replaying every log. That is what the indexer is for.
It is a Ponder indexer over Robinhood Chain testnet, served at:
https://indexer.paboxo.xyz/graphqlPublic and unauthenticated, rate limited. The Prometheus endpoint behind it is not exposed.
Shape
Ponder's GraphQL: every table is pluralised and wraps rows in items. Root arguments are where,
orderBy, orderDirection, limit and cursor pagination via after / pageInfo.
query Markets {
markets {
totalCount
items {
id # the router address
pool # the pool address — what the app writes to
name
collateralSymbol
ltv
liquidationThreshold
totalSupplyAssets
totalBorrowAssets
utilization
windDown
}
}
}A market's id is its router; pool is the pool. Event rows reference their market by the
router too. Confusing the two produces empty results rather than an error.
Tables
markets | config and current totals per market |
marketSnapshots | totals, utilisation, borrow and supply rate over time |
positions | per-borrower collateral and debt shares |
borrows, repays | borrow-side activity |
supplyLiquiditys, withdrawLiquiditys | lender activity |
supplyCollaterals, withdrawCollaterals | collateral movement |
liquidations, badDebts | what happened when a position failed |
interestAccruals | accrual events |
vaults, vaultMarkets, vaultDeposits, vaultWithdraws, vaultSnapshots | earn vault |
stableConfigs, troves, stableMints, stableRepays, stableLiquidations, stableRedemptions | pUSD |
oracleStatus | per-token feed status, freshness and last price |
Examples
Positions that currently owe something:
{
positions(where: { borrowShares_gt: "0" }, limit: 500) {
totalCount
items { market user borrowShares liquidated }
}
}A partially liquidated position keeps liquidated: true and outstanding debt, so filter on
borrowShares, not on the flag.
Indexing progress, which is how you tell a stale answer from a current one:
{ _meta { status } }Rates over time
marketSnapshots carries borrowRate and supplyRate as WAD values per year, already net of the
reserve factor on the supply side — so a chart does not need to recompute it.
Amounts
Raw integers in the token's own units. USDG is 6 decimals; everything else is 18.