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

Local mining activity

get/stats/localapi_key

Cumulative counters from this client's own share validator, solution submitter and fraud-proof evaluator — local activity and health, not chain facts. A producer is missing until it publishes its first observation, and each carries its own freshness status, session id and sequence number.

Counters restart whenever a producer starts a new session, so only compare observations sharing a session. A missing or stopped producer is not zero activity, and reduced share reporting drops work, so accepted share work is not a full local hashrate. Node-accepted solutions and fraud transactions are submissions, not chain confirmations.

Fraud observations keep at most 100 recent targets. Once older ones are evicted deduplicationComplete turns false, and a repeat target may then be counted twice.

Responses

200The latest observation per producer; the map may be empty.LocalMiningResponse▶
  • enabledbooleanrequired

    Whether statistics collection is on at all. Local observations do not need persisted mining history.

  • ▶
    producersobjectrequired

    The latest observation per producer. A missing key means that producer has not reported.

    • ▶
      sharesLocalMiningActivityView
      • statusstringrequired

        Freshness of this producer's latest observation. stopped is its final snapshot.

        one ofreadystalestopped
      • ▶
        observationLocalMiningObservationrequired
        • kindstringrequired
          one ofsharessolutionsfraud
        • sessionstringrequired

          Session id. A new one means the counters reset.

        • sequenceinteger · int64required

          Snapshot number within the session. It only increases, but can skip values.

        • startedAtinteger · int64required

          When the session started, in Unix milliseconds.

        • observedAtinteger · int64required

          Snapshot time in Unix milliseconds.

        • countersmap<string, string>required

          Cumulative counters for this session, as exact decimal strings. A missing counter means nothing of that kind was seen in the session.

          shares — accepted, acceptedAssignedWork, acceptedBelowAdvertised, blockCandidates, superShares, acceptedWithReducedReporting, and a rejected<code> per rejection code seen. Assigned work adds up the expected hashes behind each share that met its job's advertised difficulty. acceptedBelowAdvertised counts shares that passed validation but missed that difficulty; they carry no work, and a count that keeps pace with accepted means a miner is not using the difficulty it was sent. Candidates and super shares overlap and are both subsets of accepted.

          solutions — nodeAccepted and nodeRejectedOrFailed.

          fraud — discoveriesWithinSession, nodeAcceptedProofsWithinSession and discoveryEvictions.

          Accepted means the node took the submission, not that the chain confirmed it.

        • ▶
          fraudFraudObservation[]required

          Recent fraud targets, capped at 100. Always empty for the share and solution producers.

          • rollupBlockIdstringrequired

            The Lithos block whose rollup holds the target miner entry.

          • minerHashstringrequired

            Hash identifying the target miner entry. Not a miner address.

          • proofContractHashstringrequired

            Hash of the compiled proof contract. Encoded differently from the proof value recorded on chain.

          • observedAtinteger · int64required

            When the target was discovered, or last submitted, in Unix milliseconds.

          • transactionIdstring

            The fraud transaction the node accepted, if one was seen. Not proof of chain confirmation.

        • superShareHeightsinteger[]

          Heights of the ten highest super shares this session, highest first. Only the share producer fills it.

        • stoppedbooleanrequired

          Whether this is the producer's last observation before it stopped.

      • deduplicationCompletebooleanrequired

        False once fraud targets have been evicted, after which a repeat discovery or submission may be counted twice.

    • ▶
      solutionsLocalMiningActivityView
      • statusstringrequired

        Freshness of this producer's latest observation. stopped is its final snapshot.

        one ofreadystalestopped
      • ▶
        observationLocalMiningObservationrequired
        • kindstringrequired
          one ofsharessolutionsfraud
        • sessionstringrequired

          Session id. A new one means the counters reset.

        • sequenceinteger · int64required

          Snapshot number within the session. It only increases, but can skip values.

        • startedAtinteger · int64required

          When the session started, in Unix milliseconds.

        • observedAtinteger · int64required

          Snapshot time in Unix milliseconds.

        • countersmap<string, string>required

          Cumulative counters for this session, as exact decimal strings. A missing counter means nothing of that kind was seen in the session.

          shares — accepted, acceptedAssignedWork, acceptedBelowAdvertised, blockCandidates, superShares, acceptedWithReducedReporting, and a rejected<code> per rejection code seen. Assigned work adds up the expected hashes behind each share that met its job's advertised difficulty. acceptedBelowAdvertised counts shares that passed validation but missed that difficulty; they carry no work, and a count that keeps pace with accepted means a miner is not using the difficulty it was sent. Candidates and super shares overlap and are both subsets of accepted.

          solutions — nodeAccepted and nodeRejectedOrFailed.

          fraud — discoveriesWithinSession, nodeAcceptedProofsWithinSession and discoveryEvictions.

          Accepted means the node took the submission, not that the chain confirmed it.

        • ▶
          fraudFraudObservation[]required

          Recent fraud targets, capped at 100. Always empty for the share and solution producers.

          • rollupBlockIdstringrequired

            The Lithos block whose rollup holds the target miner entry.

          • minerHashstringrequired

            Hash identifying the target miner entry. Not a miner address.

          • proofContractHashstringrequired

            Hash of the compiled proof contract. Encoded differently from the proof value recorded on chain.

          • observedAtinteger · int64required

            When the target was discovered, or last submitted, in Unix milliseconds.

          • transactionIdstring

            The fraud transaction the node accepted, if one was seen. Not proof of chain confirmation.

        • superShareHeightsinteger[]

          Heights of the ten highest super shares this session, highest first. Only the share producer fills it.

        • stoppedbooleanrequired

          Whether this is the producer's last observation before it stopped.

      • deduplicationCompletebooleanrequired

        False once fraud targets have been evicted, after which a repeat discovery or submission may be counted twice.

    • ▶
      fraudLocalMiningActivityView
      • statusstringrequired

        Freshness of this producer's latest observation. stopped is its final snapshot.

        one ofreadystalestopped
      • ▶
        observationLocalMiningObservationrequired
        • kindstringrequired
          one ofsharessolutionsfraud
        • sessionstringrequired

          Session id. A new one means the counters reset.

        • sequenceinteger · int64required

          Snapshot number within the session. It only increases, but can skip values.

        • startedAtinteger · int64required

          When the session started, in Unix milliseconds.

        • observedAtinteger · int64required

          Snapshot time in Unix milliseconds.

        • countersmap<string, string>required

          Cumulative counters for this session, as exact decimal strings. A missing counter means nothing of that kind was seen in the session.

          shares — accepted, acceptedAssignedWork, acceptedBelowAdvertised, blockCandidates, superShares, acceptedWithReducedReporting, and a rejected<code> per rejection code seen. Assigned work adds up the expected hashes behind each share that met its job's advertised difficulty. acceptedBelowAdvertised counts shares that passed validation but missed that difficulty; they carry no work, and a count that keeps pace with accepted means a miner is not using the difficulty it was sent. Candidates and super shares overlap and are both subsets of accepted.

          solutions — nodeAccepted and nodeRejectedOrFailed.

          fraud — discoveriesWithinSession, nodeAcceptedProofsWithinSession and discoveryEvictions.

          Accepted means the node took the submission, not that the chain confirmed it.

        • ▶
          fraudFraudObservation[]required

          Recent fraud targets, capped at 100. Always empty for the share and solution producers.

          • rollupBlockIdstringrequired

            The Lithos block whose rollup holds the target miner entry.

          • minerHashstringrequired

            Hash identifying the target miner entry. Not a miner address.

          • proofContractHashstringrequired

            Hash of the compiled proof contract. Encoded differently from the proof value recorded on chain.

          • observedAtinteger · int64required

            When the target was discovered, or last submitted, in Unix milliseconds.

          • transactionIdstring

            The fraud transaction the node accepted, if one was seen. Not proof of chain confirmation.

        • superShareHeightsinteger[]

          Heights of the ten highest super shares this session, highest first. Only the share producer fills it.

        • stoppedbooleanrequired

          Whether this is the producer's last observation before it stopped.

      • deduplicationCompletebooleanrequired

        False once fraud targets have been evicted, after which a repeat discovery or submission may be counted twice.

403The api_key header is missing or wrong.ApiError▶
  • errorintegerrequired

    Error code

  • reasonstringrequired

    Error message explaining the reason of the error

  • detailstringrequirednullable

    Detailed error description

← PreviousCollateral inventoryNext →Collateral market snapshot
Request
curl -X GET "http://localhost:9000/stats/local" \
  -H "api_key: $LITHOS_API_KEY"
Response
{
  "enabled": true,
  "producers": {
    "shares": {
      "status": "ready",
      "observation": {
        "kind": "shares",
        "session": "string",
        "sequence": 0,
        "startedAt": 0,
        "observedAt": 0,
        "counters": {
          "key": "1000000000"
        },
        "fraud": [
          {
            "rollupBlockId": "string",
            "minerHash": "string",
            "proofContractHash": "string",
            "observedAt": 0,
            "transactionId": "string"
          }
        ],
        "superShareHeights": [
          0
        ],
        "stopped": true
      },
      "deduplicationComplete": true
    },
    "solutions": {
      "status": "ready",
      "observation": {
        "kind": "shares",
        "session": "string",
        "sequence": 0,
        "startedAt": 0,
        "observedAt": 0,
        "counters": {
          "key": "1000000000"
        },
        "fraud": [
          {
            "rollupBlockId": "string",
            "minerHash": "string",
            "proofContractHash": "string",
            "observedAt": 0,
            "transactionId": "string"
          }
        ],
        "superShareHeights": [
          0
        ],
        "stopped": true
      },
      "deduplicationComplete": true
    },
    "fraud": {
      "status": "ready",
      "observation": {
        "kind": "shares",
        "session": "string",
        "sequence": 0,
        "startedAt": 0,
        "observedAt": 0,
        "counters": {
          "key": "1000000000"
        },
        "fraud": [
          {
            "rollupBlockId": "string",
            "minerHash": "string",
            "proofContractHash": "string",
            "observedAt": 0,
            "transactionId": "string"
          }
        ],
        "superShareHeights": [
          0
        ],
        "stopped": true
      },
      "deduplicationComplete": true
    }
  }
}