LithosDocs
ProtocolPayoutsTokenStatsDocs
Start mining
Documentation home
Protocol
  • Lithos Protocol
  • LFSM
    • Rollups
    • NISPs
    • Emissions
    • Mining on Lithos
    • Candidate building
    • Ergo Voting
  • LithosDex
    • Choosing a pool
    • Trading with orders
    • Providing liquidity
    • Creating a pool
    • Difficulty forwards
Run Lithos
  • Startup guide
    • Setting up an Ergo 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
    • Renting hashrate into Lithos
    • Checking your wallet
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
    • getThis wallet's lending earnings
    • getLocal mining activity
    • getCollateral market snapshot
    • getList queue boxes
    • getList the active set
    • getPermit price history
    • getYour lending status
    • postQuote joining the queue
    • postJoin the collateral queue
    • getLithosDex pool state
    • getEvery LithosDex pool
    • getOne LithosDex pool and its vault
    • getList your outstanding orders on any pool
    • postQuote a direct swap on any pool
    • postSwap directly on any pool
    • postQuote a direct deposit on any pool
    • postDeposit directly on any pool
    • postQuote a direct redemption on any pool
    • postRedeem a provision directly on any pool
    • getList your provisions on any pool
    • postClaim a provision's fees on any pool
    • postCheck a flush on any pool
    • postFlush any pool
    • getA verified pool's price history
    • getA verified pool's fee history
    • getA verified pool's recent activity
    • getA provision's fee history on a verified pool
    • postQuote a new LithosDex pool
    • postCreate a LithosDex pool
    • postQuote a swap order on any pool
    • postPlace a swap order on any pool
    • postQuote a deposit order on any pool
    • postPlace a deposit order on any pool
    • postQuote a redeem order on any pool
    • postPlace a redeem order on any pool
    • 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
    • postLook up provision NFTs
    • 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
    • getDifficulty accumulator and the next epoch's difficulty
    • getList open offers
    • postCreate an offer
    • postQuote an offer
    • postQuote filling an offer
    • postFill an offer
    • postQuote cancelling an offer
    • postCancel an offer
    • getThe whole market
    • getYour settled positions and closed offers
    • getList your positions and offers
    • postQuote settling a position
    • postSettle a position
    • getWallet balances
    • getYour block rewards
    • postClaim unlocked block rewards
    • getVerified tokens
    • 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
  • Difficulty forwards
  • Client API
  • Failure modes
Network
  • Live stats
  • Public stats API
  • Ergo Platform↗
  • SOAT Miner↗
Community
  • Telegram↗
  • X / Twitter↗
  • GitHub↗
Lithos
© 2026 Lithos Protocol. The Lithos client, its contracts and Lithos Launcher are open source under CC0.λίθος — stone
Docs/Client API/Difficulty Forwards

Difficulty accumulator and the next epoch's difficulty

get/forwards/accumulator

The chain's current epoch and difficulty, the next epoch's difficulty computed from block timestamps, the accumulator's recorded epochs and balance, and the limits an offer must meet right now. Answers on every network; deployed is false where no accumulator exists, and then nothing can be offered, filled or settled.

Responses

200The accumulator and the chain around itDFAccumulatorInfo▶
  • deployedbooleanrequired

    Whether this network has an accumulator. Without one, nothing can be offered, filled or settled.

  • heightinteger · int32required

    The newest block.

  • currentEpochinteger · int32required

    The newest block's epoch, (height - 1) / 128.

  • blocksLeftInEpochinteger · int32required

    Blocks after the newest one before the epoch ends.

  • currentDifficultystringrequired

    The newest block's difficulty, which the whole epoch keeps.

  • ▶
    nextDifficultyDFNextDifficulty

    The next epoch's difficulty, computed with Ergo's retarget rule from the last 9 epochs' final block timestamps.

    • epochinteger · int32required

      The epoch it applies to, the one after the current epoch.

    • difficultystringrequired
    • exactbooleanrequired

      True once the current epoch has ended, so this is the value the next blocks carry. Otherwise the current epoch's end is projected at its pace so far, which is close only late in the epoch.

    • fromHeightinteger · int32required

      The newest block it was computed from.

    • changenumber · doublerequired

      Move from the current difficulty, as a fraction.

  • nextDifficultyUnavailablestring

    Why nextDifficulty is absent, such as the difficulty table still loading.

  • accumulatorNFTstring
  • boxIdstring

    The accumulator box, its newest one including unconfirmed spends.

  • lastEpochinteger · int32

    The newest epoch the accumulator has recorded.

  • balancestring

    LIT base units left to pay 5 LIT for each recorded epoch.

  • ▶
    recentDFEpochDifficulty[]required

    The 128 epochs the accumulator holds, oldest first. Empty without an accumulator.

    • epochinteger · int32required
    • difficultystringrequired
  • accumulatorUnavailablestring

    Why the accumulator could not be read, when one is deployed.

  • ▶
    limitsDFOfferLimitsrequired

    What an offer must satisfy to be created or filled by this client now.

    • minWindowStartinteger · int32required

      Earliest window start a fill in the next block accepts, 2 epochs after the current one.

    • maxWindowStartinteger · int32required

      Latest, 120 epochs after the current one.

    • maxWindowLengthinteger · int32required
    • defaultExpiryinteger · int32required

      The expiry an offer takes when none is given, the last block of the current epoch.

    • shortWindowEpochsinteger · int32required

      Windows shorter than this are size-limited (forwards.offers.shortWindowEpochs).

    • shortWindowMaxNotionalstringrequired

      Largest notional for such a window, in LIT base units (forwards.offers.shortWindowMaxNotionalLit).

503Node unavailable. Retry.ApiError▶
  • errorintegerrequired

    Error code

  • reasonstringrequired

    Error message explaining the reason of the error

  • detailstringrequirednullable

    Detailed error description

defaultErrorApiError▶
  • errorintegerrequired

    Error code

  • reasonstringrequired

    Error message explaining the reason of the error

  • detailstringrequirednullable

    Detailed error description

← PreviousFee history for one provisionNext →List open offers
Request
curl -X GET "http://localhost:9000/forwards/accumulator"
Response
{
  "deployed": true,
  "height": 0,
  "currentEpoch": 0,
  "blocksLeftInEpoch": 0,
  "currentDifficulty": "64267743133696",
  "nextDifficulty": {
    "epoch": 0,
    "difficulty": "63980371640320",
    "exact": true,
    "fromHeight": 0,
    "change": -0.0045
  },
  "nextDifficultyUnavailable": "string",
  "accumulatorNFT": "string",
  "boxId": "string",
  "lastEpoch": 0,
  "balance": "string",
  "recent": [
    {
      "epoch": 0,
      "difficulty": "64267743133696"
    }
  ],
  "accumulatorUnavailable": "string",
  "limits": {
    "minWindowStart": 0,
    "maxWindowStart": 0,
    "maxWindowLength": 120,
    "defaultExpiry": 0,
    "shortWindowEpochs": 8,
    "shortWindowMaxNotional": "1000000000000"
  }
}