Paboxo

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/graphql

Public 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

marketsconfig and current totals per market
marketSnapshotstotals, utilisation, borrow and supply rate over time
positionsper-borrower collateral and debt shares
borrows, repaysborrow-side activity
supplyLiquiditys, withdrawLiquidityslender activity
supplyCollaterals, withdrawCollateralscollateral movement
liquidations, badDebtswhat happened when a position failed
interestAccrualsaccrual events
vaults, vaultMarkets, vaultDeposits, vaultWithdraws, vaultSnapshotsearn vault
stableConfigs, troves, stableMints, stableRepays, stableLiquidations, stableRedemptionspUSD
oracleStatusper-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.

On this page