Statistics overview
/statsOne snapshot of everything the collector tracks: the Stratum job being mined right now, DEX and storage collection status, and a short summary of recent mining and payment history.
Each section carries its own status and observation time. The active job is the last
publication this client broadcast, which is not proof every worker received it. Payment
totals here are gross — reward plus refunded bond — so use /stats/mining/totals when
rewards and refunds have to be shown apart.
Responses
200The current snapshot, or the last one with a stale status.StatsView▶
enabledbooleanrequired▶
localobjectrequired▶
stratumStratumStatsViewrequiredstatusstringrequiredA stale snapshot can still show its last job. That job is not known to be live.
one ofdisabledwaitingactivestalestoppedobservedAtinteger · int64When the producer last reported, in Unix milliseconds. Periodic refreshes count.
connectedConnectionsintegerrequiredOpen Stratum connections, not unique miners.
▶
activeJobActiveStratumJobjobIdstringrequiredheightintegerrequiredparentIdstringrequiredworkMessagestringrequiredHex-encoded work message identifying the candidate.
publicationIdstring · uuidrequiredpublishedAtinteger · int64requiredWhen the job was published, in Unix milliseconds. Periodic observations do not move it.
modestringrequiredone ofsologenesisaugmented▶
blockPackageBlockPackageViewThe transactions this client put into the job being served. The node can add mempool transactions on top that the client cannot see, so this is not the whole block. Expected revenue is what the package proposes to earn, not confirmed income, and the totals cover only the transactions whose size and cost are known — the rest report null.
genesisIdstringrequiredcollateralBoxIdstringrequiredThe collateral box the genesis transaction spends.
lenderAddressstringrequiredThe collateral box's lender, who receives this block's coinbase.
collateralPriorityFeeNanoErgstringrequirednanoERG the collateral box carries above the principal floor. '0' means it was posted at the floor.
decimal stringcollateralFinderFeeNanoErgstringrequiredThe part of
collateralPriorityFeeNanoErgthe genesis transaction pays to this client's wallet: a fifth of it, or '0' when the genesis transaction has no finder output to carry it and it stays with the pool.decimal stringrevisionintegerrequiredexpectedRevenueNanoErgstringrequirednanoERG as a decimal string.
sourcesstring[]requiredNames of the subsystems that got at least one transaction into this package.
lateSourcesstring[]requiredSubsystems that missed the collection deadline, so nothing of theirs is in this package.
▶
transactionsPackageTransactionView[]requiredThe genesis first, then the client's additions in order.
idstringrequiredkindstringrequiredsizeBytesintegerrequirednullablecoststringrequirednullableExecution cost as a decimal string, when it is known.
revenueNanoErgstringrequiredUnspent nanoERG this transaction left for the holding top-up to collect. An output a later member of the package spent was carried forward rather than earned twice, so it is credited to neither and these sum to
expectedRevenueNanoErg. Members that create no spendable output — the genesis, a carried mempool ancestor, the top-up itself — are zero, which is a fact about them rather than a missing value.decimal stringproofLeafMatchedbooleanrequiredWhether this transaction's leaf matched one the node returned. It is a correspondence check, not full Merkle-proof validation. False on an ordinary member only means the match is unproven, not that the node dropped the transaction. False on the genesis or the holding top-up drops the package's extras, since everything else hangs off those two.
transactionScopestringrequiredone ofclient-suppliedknownSizeBytesstringrequiredBytes across the transactions above, as an exact decimal integer.
knownCoststringrequiredValidation cost across the transactions above, as an exact decimal integer.
allSizesKnownbooleanrequiredallCostsKnownbooleanrequiredblockMaxSizeBytesstringThe node's active block size limit. Absent when its parameters could not be read, in which case the packing ran unbounded and there is no denominator to compare against.
decimal stringblockMaxCoststringThe node's active block cost limit. Absent on the same terms as blockMaxSizeBytes.
decimal stringpackageMaxSizeBytesstringThe share of the block's size limit one Lithos package may occupy, which is the budget admission actually measured against. Space under the block limit but over this is left for the node to fill from its own mempool.
decimal stringpackageMaxCoststringThe same share of the block's cost limit.
decimal string
▶
difficultyStratumDifficultyThe difficulties this stratum works with, each as a score — the number a
diffsetting names, as an exact decimal string. The configureddiffis on/mining.servedstringrequiredWhat jobs are built on: the commitment in force, or the config diff when
forcedConfigis true. Apendingscore higher thancommittedis served from two blocks before its declared height, 62 blocks before it binds, so the super shares its first rollups draw on are found at it.decimal stringadvertisedstringrequiredWhat mining software is sent.
servedtimesreductionMultiplierunder reduced reporting, otherwiseserved. EqualssuperShareat a multiplier of 10000.decimal stringsuperSharestringrequiredThe difficulty a share must clear to count toward a NISP, 10,000 times
served.decimal stringreducedReportingbooleanrequiredWhether miners are sent
advertisedinstead ofserved.reductionMultiplierintegerrequiredThe factor
advertisedsits aboveservedwhilereducedReportingis true. Only a multiplier of 10000 makes every share a miner sends a super share.one of10100100010000forcedConfigbooleanrequiredWhether
forceConfigDiffmakes the stratum serve the config diff instead of the commitment.committedstringThe committed score NISPs are judged against now. Absent until a commitment is in force or before the first read.
decimal stringpendingstringA newer commitment still waiting out the NISP window. Absent when there is none.
decimal stringpendingFromHeightintegerThe height
pendingtakes effect at.checkedHeightintegerThe chain height the commitments were last read at.
▶
dexDexStatsViewrequiredstatusstringrequiredFreshness only. Coverage is a separate question — read
historyCompleteand a graph'spartial.one ofdisabledloadingreadystaleunavailableupdatedAtinteger · int64When the last successful refresh began, in Unix milliseconds, before it read the node.
sourceHeightinteger · int32sourceBlockIdstringThe chain tip checked before and after the read. Current price and activity can also include the mempool.
windowStartHeightinteger · int32Earliest height you can ask for, max(0,
sourceHeight- 21600).coverageStartHeightinteger · int32Oldest retained pool snapshot, including a predecessor where one exists.
historyCompletebooleanWhether the history read reached the start of the index, or a predecessor, before the requested window.
refreshingbooleanrequiredrestoredbooleanrequiredLoaded from disk. Stale until a node read succeeds, and never overwrites newer live data.
errorstringShort refresh failure message. Details stay in the client log.
▶
storageStatsStorageViewrequiredWhether DEX snapshots are being saved. Mining history reports its own storage failures through
mining.status.statusstringrequiredone ofdisabledloadingreadyerrorbusybooleanrequiredA write is running. No second writer starts until it finishes.
pendingbooleanrequiredOne newer snapshot is queued behind the running write.
lastSavedObservationAtinteger · int64Observation time of the last snapshot saved or restored, in Unix milliseconds.
lastPrunedAtinteger · int64Last successful pruning pass, in Unix milliseconds. A backlog can remain after one.
coalescedSnapshotsinteger · int64requiredQueued snapshots dropped in favour of a newer one since the client started.
errorstringShort storage failure message. Details stay in the client log.
▶
miningMiningStatsViewrequiredA summary of canonical mining history, held in memory. Counts cover retained history, not everything that ever happened. Only
readyhas caught up to the checked chain tip; other statuses can hold older or partial data. A reorg removes the displaced contributions before the status goes back toready.statusstringrequiredone ofdisabledloadingreadystaleunavailablecatching-uprecoveringobservedAtinteger · int64When the last replay cycle started, in Unix milliseconds. Absent after a disk restore with no replay yet.
persistentbooleanrequiredFalse when storage is off, in which case history lives only in process memory.
sourceHeightintegerLast processed height, or the starting anchor if nothing has been collected yet.
sourceBlockIdstringtargetHeightintegerLast checked chain height. It can run ahead of what is indexed and readable.
fromHeightintegerFirst retained height. Higher than
sourceHeightwhile the history is empty.fromTimestampinteger · int64Timestamp of the first retained block. Retention keeps a 256-block rollback buffer.
recentFromHeightintegerThe recent lists below cover the latest 120 retained chain blocks, capped at 50 records each.
totalsScopestringrequiredone ofretained-historyblockScopestringrequiredGenesis transactions under this client's configured protocol contracts.
one ofconfigured-protocolpaymentScopestringrequiredone ofprimary-mining-addresspaymentAmountScopestringrequiredPayout amounts are gross — reward plus refunded bond plus any surplus. Not net earnings.
one ofgross-output-including-bond-refund▶
totalsMiningTotalsrequiredblocksinteger · int64requiredDistinct chain blocks in retained history that carried a Lithos genesis transaction.
paymentsinteger · int64requiredPayout outputs to the primary mining address in retained history.
grossPaidNanoErgstringrequiredExact decimal integer. Includes bond refunds and any surplus, so it is not net earnings.
▶
blocksLithosBlockRecord[]requiredRecent Lithos genesis records, newest first.
blockIdstringrequiredheightintegerrequiredtimestampinteger · int64requiredtransactionIdstringrequiredholdingBoxIdstringrequiredcollateralBoxIdstringrequiredcollateralNanoErgstringrequiredExact value of the collateral box that was spent.
initialHoldingNanoErgstringrequiredExact value of genesis output zero, before any top-ups. Not the block's final revenue.
▶
paymentsMiningPaymentRecord[]requiredRecent confirmed payouts to this client, newest first. Wallet change and empty-tree drains are left out.
transactionIdstringrequiredoutputIdstringrequiredpayoutBoxIdstringrequiredrollupNftstringrequiredNFT minted from the original collateral box id.
minedBlockIdstringrequiredThe block holding the rollup genesis, even when that block is older than retained history.
minedHeightintegerrequiredminedTimestampinteger · int64requiredTimestamp of
minedBlockId, in Unix milliseconds. Withtimestamp, how long the payout took.blockIdstringrequiredThe block holding this payout transaction.
heightintegerrequiredtimestampinteger · int64requiredgrossNanoErgstringrequiredExact output value, including the refunded bond and any surplus.
difficultystringrequiredNetwork difficulty at
sourceHeight, as an exact decimal integer. For the curve over time use /stats/mining/difficulty.errorstringShort failure message. Details stay in the client log.