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 own hashrate

get/stats/mining/workers

What the workers connected to this client are doing, as rates and totals across every worker together. Narrower than /stats/local: no session identifiers, no fraud targets and no per-worker breakdown, so it carries nothing the Stratum connection count does not.

Each accepted share is credited the expected hashes behind the difficulty its job advertised. With reduced reporting on, miners are sent reductionMultiplier times the served difficulty (see StratumDifficulty), and each share they send carries that difficulty's work. At a multiplier of 10000 that is the super-share threshold, so every share is a super share. Either way the rates are in the same units as network difficulty and compare directly with /stats/mining/difficulty.

hashesPerSecond is the rate over the last 15 minutes — show this as current hashrate. windowShares is how many shares it rests on: fewer shares, noisier reading. sessionHashesPerSecond averages the whole session instead, so it reads low if the workers started after the client did.

nisp says whether the recent super shares make a NISP, and until which height.

Counters restart whenever the producer does, and sessionStartedAt is when that happened — the totals here are not lifetime figures.

Responses

200Current rates and totals; empty of values until a producer reports.LocalMiningSummary▶
  • statusstringrequired

    Freshness of the underlying producer observation.

    one ofdisabledloadingreadystalestopped
  • enabledbooleanrequired

    Whether statistics collection is on at all.

  • sessionStartedAtinteger · int64

    When the share producer last started, in Unix milliseconds. Every total below is since then.

  • observedAtinteger · int64

    When these counters were last sampled, in Unix milliseconds.

  • hashesPerSecondstring

    Current hashrate: assigned work gained over the last 15 minutes, divided by that time. Zero when no share arrived in that span. Falls back to the session rate until a second sample exists, and is omitted before there is any work.

    decimal string
  • sessionHashesPerSecondstring

    Assigned work over the whole session. Reads low when workers joined after the client started. Omitted before there is any work or elapsed time.

    decimal string
  • windowMsinteger · int64required

    The span hashesPerSecond was measured over. Zero when it fell back to the session rate.

  • windowSharesinteger · int64required

    Shares accepted inside that span. The estimate's noise shrinks with this count, so a handful of shares makes a jumpy reading.

  • acceptedSharesinteger · int64required
  • rejectedSharesinteger · int64required

    Every rejection code added together. See rejections for the split.

  • blockCandidatesinteger · int64required

    Accepted shares that also solved a block. A subset of acceptedShares.

  • superSharesinteger · int64required

    Accepted shares that met the super-share threshold on a job using collateral. These are the proofs a NISP is built from, so they are what earns a payout score.

  • superSharesPerHournumber · double

    Super shares averaged over the session. Absent until the session has elapsed time.

  • assignedWorkstringrequired

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

    decimal string
  • solutionsAcceptedinteger · int64required

    Block solutions the node accepted. Acceptance is not chain confirmation.

  • solutionsRejectedinteger · int64required
  • reducedReportingbooleanrequired

    True when miners are sent a difficulty raised by the stratum's reduction multiplier. The rates already account for it; expect fewer, larger samples and a noisier reading.

  • rejectionsmap<string, string>required

    Count per rejection code, keyed as rejected<code>.

  • ▶
    nispNispStatus

    Whether this client's recent super shares make a NISP. A NISP for a rollup starting at height P takes 10 super shares from heights P - windowBlocks through P, so one holds until the tenth-newest super share is windowBlocks behind. Counted from the NISP store at the committed score, so super shares from before a client restart are included. Absent while no Stratum job is being served.

    • heldbooleanrequired

      Whether a NISP could be submitted for a rollup starting at atHeight.

    • superSharesInWindowintegerrequired

      Super shares inside the window, counted up to required.

    • requiredintegerrequired

      Super shares a NISP carries.

    • windowBlocksintegerrequired

      How many blocks back from a rollup's start its super shares may come from.

    • atHeightintegerrequired

      The height a rollup would start at now, which the window is measured from.

    • validThroughHeightinteger

      The last rollup start height this NISP covers. Absent when none is held.

    • blocksRemaininginteger

      Blocks from atHeight until validThroughHeight. Absent when none is held.

    • sourcestringrequired

      store when counted from the NISP store. session when the store could not be read or no score is known yet, so only super shares found since the client started are counted.

      one ofstoresession
← PreviousNetwork difficulty by epochNext →This client's hashrate over time
Request
curl -X GET "http://localhost:9000/stats/mining/workers"
Response
{
  "status": "disabled",
  "enabled": true,
  "sessionStartedAt": 0,
  "observedAt": 0,
  "hashesPerSecond": "0",
  "sessionHashesPerSecond": "0",
  "windowMs": 0,
  "windowShares": 0,
  "acceptedShares": 0,
  "rejectedShares": 0,
  "blockCandidates": 0,
  "superShares": 0,
  "superSharesPerHour": 0,
  "assignedWork": "1000000000",
  "solutionsAccepted": 0,
  "solutionsRejected": 0,
  "reducedReporting": true,
  "rejections": {
    "key": "1000000000"
  },
  "nisp": {
    "held": true,
    "superSharesInWindow": 0,
    "required": 0,
    "windowBlocks": 0,
    "atHeight": 0,
    "validThroughHeight": 0,
    "blocksRemaining": 0,
    "source": "store"
  }
}