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

This client's hashrate over time

get/stats/mining/workers/history

The same worker hashrate as /stats/mining/workers, measured per UTC hour or day so it can be graphed. Each point sums the differences between consecutive stored observations that end in its interval, divided by the time they cover. One point per interval.

Only observations from one producer session can be differenced — a restart resets the counters — so intervals spanning a restart are left out rather than clamped. A gap therefore means the interval was not measured, not that nothing was mined.

Range and interval rules match /stats/mining/buckets.

Query parameters

  • frominteger · int64required

    Inclusive start in Unix milliseconds, on a UTC hour or day boundary to match interval.

  • untilinteger · int64required

    Exclusive end in Unix milliseconds. On the same boundary, later than from, and at most 500 intervals after it.

  • intervalstringdefault "hour"hour | day

    Bucket size. Both range boundaries must be a whole number of these since the Unix epoch.

Responses

200Measured intervals, oldest first. The list may be empty.LocalHashrateHistory▶
  • frominteger · int64required

    The inclusive start you asked for, in Unix milliseconds.

  • untilinteger · int64required

    The exclusive end you asked for, in Unix milliseconds.

  • widthMsinteger · int64required
    one of360000086400000
  • ▶
    pointsLocalHashratePoint[]required

    Measured intervals, oldest first. Intervals spanning a producer restart are absent, since resetting counters makes them unmeasurable.

    • startinteger · int64required

      Inclusive UTC interval start in Unix milliseconds.

    • widthMsinteger · int64required
      one of360000086400000
    • hashesPerSecondstringrequired

      Assigned work gained over this interval, divided by its elapsed time.

      decimal string
    • acceptedSharesinteger · int64required
    • superSharesinteger · int64required
    • reducedReportingbooleanrequired

      True when the interval's shares arrived under reduced reporting.

    • measuredMsinteger · int64required

      Milliseconds of work measured for this interval, which hashesPerSecond is rated over. Can exceed widthMs when the stretch began in an earlier interval.

  • 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
400A timestamp is missing, malformed, off a bucket boundary, or the range is too long; or `interval` is not hour or day.ApiError▶
  • errorintegerrequired

    Error code

  • reasonstringrequired

    Error message explaining the reason of the error

  • detailstringrequirednullable

    Detailed error description

503History is loading, disabled, busy, or unreadable. Check `mining.status` in /stats before retrying.ApiError▶
  • errorintegerrequired

    Error code

  • reasonstringrequired

    Error message explaining the reason of the error

  • detailstringrequirednullable

    Detailed error description

← PreviousThis client's own hashrateNext →This client's payouts and claims
Request
curl -X GET "http://localhost:9000/stats/mining/workers/history?from=0&until=1"
Response
{
  "from": 0,
  "until": 0,
  "widthMs": 3600000,
  "points": [
    {
      "start": 0,
      "widthMs": 3600000,
      "hashesPerSecond": "0",
      "acceptedShares": 0,
      "superShares": 0,
      "reducedReporting": true,
      "measuredMs": 0
    }
  ],
  "status": "disabled"
}