LithosDocs
ProtocolPayoutsTokenStatsDocs
Start mining
Documentation home
Protocol
  • Lithos Protocol
  • LFSM
    • Rollups
    • NISPs
    • Emissions
    • Mining on Lithos
    • Candidate building
    • Ergo Voting
  • LithosDex
    • Trading with orders
    • Providing liquidity
Run Lithos
  • Startup guide
    • Setting up an Ergo testnet node
  • Configuration
    • Node connection and security
    • Stratum and difficulty
    • Block packages
    • Batching and orders
    • Collateral and emission
    • Wallet and consolidation
    • Statistics and web panels
    • Synchronization and storage
    • Tasks and dispatchers
    • Failure modes
    • Reporting issues
Client API
  • Overview
    • getLithos client information
    • getList UTXO ids for blocks
    • getUTXO ids by block height
    • getBlock info by UTXO id
    • postBlock info for multiple UTXO ids
    • getGet a block's miner set
    • getList all pool blocks
    • getGet Lithos payouts
    • getStatistics overview
    • getMining and payment totals
    • getMining statistics by hour or day
    • getEstimate Lithos hashrate
    • getNetwork difficulty by epoch
    • getThis client's own hashrate
    • getThis client's hashrate over time
    • getThis client's payouts and claims
    • getCollateral inventory
    • getLocal mining activity
    • getCollateral market snapshot
    • getList queue boxes
    • getList the active set
    • getPermit price history
    • getYour locked block rewards
    • postClaim unlocked block rewards
    • postQuote joining the queue
    • postJoin the collateral queue
    • getLithosDex pool state
    • getLithosDex fee vault state
    • getList your outstanding orders
    • postQuote a swap order
    • postPlace a swap order
    • postQuote a deposit order
    • postPlace a deposit order
    • postQuote a redeem order
    • postPlace a redeem order
    • postCancel an order
    • postQuote a swap
    • postQuote a swap by desired output
    • postExecute a swap
    • postQuote a liquidity deposit
    • postDeposit liquidity
    • postQuote a liquidity redemption
    • postRedeem liquidity
    • getList liquidity provisions
    • postClaim settled fees for a provision
    • postQuote a provision resize
    • postResize a provision
    • postCheck a pending fee flush
    • postFlush pending fees to the vault
    • getPool-wide fee history
    • getPool price history
    • getRecent pool activity
    • getFee history for one provision
    • getWallet balances and lending status
    • getGet Stratum information
    • getGet candidate settings
    • getGet difficulty commitment
    • postCommit a difficulty
    • getGet best NISP at height
Lithos

A decentralized mining pool protocol on Ergo. Miners build their own blocks; contracts pay them for proven work.

Live on Ergo mainnet
Protocol
  • How Lithos works
  • Mining on Lithos
  • NISPs
  • Emissions
  • LFSM contracts
Run Lithos
  • Startup guide
  • Configuration
  • LithosDex
  • Client API
  • Failure modes
Network
  • Live stats
  • Public stats API
  • Ergo Platform↗
  • SOAT Miner↗
Community
  • Telegram↗
  • X / Twitter↗
  • GitHub↗
Lithos
© 2026 Lithos Protocol. Open source under the MIT licence.λίθος — stone
Docs/Client API/Statistics

Collateral inventory

get/stats/collateral

How many unspent boxes match the configured collateral script and token, what they hold in total, and what they bid. This is protocol-wide inventory — not this client's spendable balance, not mining income, and no promise that the local miner can use any given box.

fees is the live bid book. A miner spends whichever collateral box pays it most, so the distribution there is what a lender is bidding against and fees.bestNanoErg is the bid to beat. Read it with /collateral/active, which names the individual boxes behind it.

Each background read looks at up to 1,000 boxes; hitting that cap sets partial and reports only what was scanned. Check status and observedAt before showing the numbers as current: loading and disabled responses hold placeholders, and a failed refresh keeps the previous inventory under an unavailable status. The request never refreshes the inventory itself.

Responses

200The cached inventory, with freshness and completeness.CollateralStats▶
  • statusstringrequired

    Freshness of the inventory. Only ready is current as of the last successful check.

    one ofloadingdisabledreadystaleunavailable
  • observedAtinteger · int64

    When the inventory was read, in Unix milliseconds. Absent before the first successful read.

  • ▶
    sourceMiningCursor

    The processed chain point a statistics result was read from.

    • heightintegerrequired
    • blockIdstringrequired
    • parentIdstringrequired
    • timestampinteger · int64required

      The block's own timestamp in Unix milliseconds, not the time the client read it.

  • boxesintegerrequired

    Unspent collateral boxes seen. A partial result counts only what was scanned.

    0 – 1000
  • nanoErgstringrequired

    Exact total nanoERG in those boxes. Not a wallet balance and not mining income.

    decimal string
  • partialbooleanrequired

    True when the scan hit its cap, or no complete observation exists yet.

  • ▶
    feesCollateralFeeStatsrequired

    The priority bids carried by the observed boxes — the book a miner picks from, since a miner spends whichever box pays it most.

    Percentiles cover every observed box, floor and bid alike, because that is the distribution a lender competes against. While most boxes sit at the floor the median is 0, which is the honest answer rather than a gap in the data. bestNanoErg is the bid to beat.

    • atFloorintegerrequired

      Boxes bidding nothing.

      0 – …
    • biddingintegerrequired

      Boxes offering the finder something.

      0 – …
    • unreadableintegerrequired

      Boxes whose R4 could not be read. Always 0 in practice — the contract writes it — and a non-zero value means the inventory counts more boxes than the distribution does.

      0 – …
    • totalNanoErgstringrequired

      An exact nonnegative integer as a decimal string. Parse it without going through a float.

      decimal string
    • bestNanoErgstringrequired

      An exact nonnegative integer as a decimal string. Parse it without going through a float.

      decimal string
    • medianNanoErgstringrequired

      An exact nonnegative integer as a decimal string. Parse it without going through a float.

      decimal string
    • p90NanoErgstringrequired

      An exact nonnegative integer as a decimal string. Parse it without going through a float.

      decimal string
    • ▶
      bucketsCollateralFeeBucket[]required

      The floor band first, then quarters of break-even, then everything above it.

      • fromNanoErgstringrequired

        An exact nonnegative integer as a decimal string. Parse it without going through a float.

        decimal string
      • toNanoErgstring

        Absent on the open-ended top band, which holds every bid above break-even.

        decimal string
      • boxesintegerrequired
        0 – …
  • errorstring

    Short failure summary. Details stay in the client log.

← PreviousThis client's payouts and claimsNext →Local mining activity
Request
curl -X GET "http://localhost:9000/stats/collateral"
Response
{
  "status": "loading",
  "observedAt": 0,
  "source": {
    "height": 0,
    "blockId": "string",
    "parentId": "string",
    "timestamp": 0
  },
  "boxes": 0,
  "nanoErg": "0",
  "partial": true,
  "fees": {
    "atFloor": 0,
    "bidding": 0,
    "unreadable": 0,
    "totalNanoErg": "1000000000",
    "bestNanoErg": "1000000000",
    "medianNanoErg": "1000000000",
    "p90NanoErg": "1000000000",
    "buckets": [
      {
        "fromNanoErg": "1000000000",
        "toNanoErg": "0",
        "boxes": 0
      }
    ]
  },
  "error": "string"
}