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

Mining and payment totals

get/stats/mining/totals

Running totals over the retained history: Lithos blocks, payout rewards, bond refunds, transaction fees, batching revenue, participation and confirmed fraud proofs. Keys under local. belong to this client's primary mining address; network. keys cover the whole configured protocol.

Label the period with the height and timestamp fields. Retention holds a rollback buffer and can run behind on pruning, so the period is often longer than the configured number of days. Only ready means collection reached the last checked chain tip — a loading or disabled response can return an empty totals map, which is not evidence that nothing happened. Reorgs and pruning can lower a total between two requests.

Responses

200The last published totals, with collection status and coverage.MiningTotalsResponse▶
  • statusstringrequired

    How far collection has got. ready means it reached the last checked chain tip. catching-up and recovering mean replay or reorg work is still running, stale means the last successful check is too old, and unavailable means collection failed. On disabled or loading the numbers are not evidence that the period was quiet.

    one ofdisabledloadingreadystaleunavailablecatching-uprecovering
  • persistentbooleanrequired

    Whether history survives a client restart.

  • observedAtinteger · int64

    When the last replay cycle started, in Unix milliseconds. Absent until the first check after a restart.

  • sourceHeightinteger

    Last processed height, or the starting anchor if nothing has been collected yet.

  • sourceBlockIdstring

    The block id at sourceHeight.

  • targetHeightinteger

    Last checked chain height. Collection can lag behind it.

  • fromHeightinteger

    First retained height. Higher than sourceHeight means the history is empty.

  • fromTimestampinteger · int64

    Timestamp of the first retained block, in Unix milliseconds. Absent when there are no block records.

  • totalsMiningAccountingMetricsrequired

    Exact sums and counts for the period, as decimal strings. A missing key means nothing was collected for it, which is not evidence that nothing happened outside the coverage. Amounts ending in NanoErg are nanoERG and LIT amounts are base units. New keys get added over time, so ignore ones you do not recognise.

    Payout families hold outputs, grossNanoErg, rewardNanoErg, bondNanoErg, surplusNanoErg, rewardLit and receivedLit. Gross ERG is reward plus refunded bond plus any surplus. rewardLit is what the protocol owes; receivedLit is what the outputs actually carried. Network totals already contain the local ones — never add the two together.

    Batching families hold orders, grossNanoErg, transactionFeeNanoErg and afterTransactionFeesNanoErg, counting recognised execution layouts only, not all pool activity. Gross is newly earned executor fees and excludes takings carried in from earlier. Liquidity-provider fees are a different thing and live on the DEX API. pool.batching pays no transaction fee, so it holds only orders and grossNanoErg. It and local.batching never count the same execution.

    Rollup families hold count, miners, claimedScore, bondNanoErg and valueNanoErg, plus localCount, localValueNanoErg, localBondNanoErg and localClaimedScore where the local miner is identifiable — the submitting miner for submissions, the prover input for fraud proofs. So rollup.submission.localBondNanoErg is the bond this client posted, and rollup.fraudProof.localValueNanoErg is the slashed bonds it was paid for proving fraud. miners counts entries at that transition, not unique people. valueNanoErg means a different thing per kind: added holding value for a top-up, zero for a submission, the full box value at evaluation, the slashed bond for a fraud proof, and distributable ERG excluding bonds at payout readiness. These are stages of the same funds, so summing them is not income.

    transaction.<kind> covers genesis, the rollup kinds above, payout, registration, ergodex, lithosdex, ergodexOtherPoolSpend and lithosdexOtherPoolSpend. Those fees overlap the block fee totals.

    Priority fees. lithos.priorityFeeNanoErg / lithos.blocks is the mean fee across every Lithos block; divide by lithos.blocksWithPriorityFee instead for the mean across the blocks that carried one. The amount is the WHOLE fee the lender posted, not the share the block's finder keeps out of it. The pool's share went into the holding box and is already inside holding.genesisNanoErg, so there is deliberately no separate key for it.

    Divide a sum by its matching count for an average. claimedScore is protocol accounting, not measured hashrate. A transaction fee is a transaction's cost and not automatically this client's expense, holding top-ups and executor fees can describe the same proceeds, and no key here is a net-income figure.

← PreviousStatistics overviewNext →Mining statistics by hour or day
Request
curl -X GET "http://localhost:9000/stats/mining/totals"
Response
{
  "status": "disabled",
  "persistent": true,
  "observedAt": 0,
  "sourceHeight": 0,
  "sourceBlockId": "string",
  "targetHeight": 0,
  "fromHeight": 0,
  "fromTimestamp": 0,
  "totals": {
    "chain.blocks": "720",
    "lithos.blocks": "12",
    "local.payout.outputs": "3",
    "local.payout.rewardNanoErg": "1500000000",
    "local.payout.bondNanoErg": "3000000",
    "batching.lithosdex.orders": "20",
    "batching.lithosdex.grossNanoErg": "40000000"
  }
}