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
    • SigmaFi bonds
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
    • getList open orders
    • postCreate an order
    • postQuote an order
    • postQuote cancelling an order
    • postCancel an order
    • postQuote filling an order
    • postFill an order
    • getList live bonds
    • postQuote repaying a bond
    • postRepay a bond
    • postQuote liquidating a bond
    • postLiquidate a bond
    • postQuote a claim
    • postClaim a settled bond
    • postLook up bond assets
    • getThis wallet in SigmaFi
    • getList configured oracle feeds
    • getCurrent oracle state and recent confirmed history
    • getWallet balances
    • getYour block rewards
    • postClaim unlocked block rewards
    • getVerified tokens
    • getArb stake
    • postReclaim the arb stake
    • 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/Oracle Feeds

Current oracle state and recent confirmed history

get/oracles/{feedId}

The confirmed pool NFT box, its exact R4 raw rate and R5 epoch, converted price, age and recent history. USD v2 stores nanoERG per USD; USD per ERG is 1000000000 / rawValue. The displayed price is rounded to 18 decimal places; priceNumerator / priceDenominator preserves the exact rational conversion. Current and history boxes must match the configured NFT, guard hash and register types. History is newest first, including the current point on the first page, and defaults to the latest 100 confirmed pool updates. Set limit=0 for current state only. Offsets count NFT boxes, including governance transitions and the initial zero-price bootstrap box, which is omitted from price points. Follow nextOffset and pass the returned blockId as atBlockId to keep pagination on the same tip. stale uses creation-height age and the configured maxAgeBlocks, not wall-clock market freshness. Timestamps are confirmed block timestamps when available; missing ones are omitted and reported by timestampsComplete=false. A lagging index or unavailable/unsupported pool is 503; a tip change is 409.

Path parameters

  • feedIdstringrequired

Query parameters

  • offsetintegerdefault 0
  • limitintegerdefault 100
  • atBlockIdstring

    Optional tip id returned by the preceding page; a changed tip requires pagination to restart.

Responses

200Confirmed node snapshot; a stale published price is returned with `stale=true`.OracleState▶
  • ▶
    feedOracleFeedrequired
    • idstringrequired
    • namestringrequired
    • networkstringrequired
      one ofMAINNETTESTNET
    • protocolstringrequired
    • poolNftstringrequired
    • ergoTreeHashstringrequired

      Configured full ErgoTree blake2b256. Governance changes require review of this pin.

    • baseAssetstringrequired
    • quoteAssetstringrequired
    • rawUnitstringrequired
    • priceUnitstringrequired
    • baseDecimalsintegerrequired
    • maxAgeBlocksintegerrequired
  • heightintegerrequired
  • blockIdstringrequired
  • indexedHeightintegerrequired
  • ▶
    currentOraclePointrequired
    • boxIdstringrequired
    • transactionIdstringrequired
    • creationHeightintegerrequired

      Height committed by the pool box; used to compute ageBlocks.

    • inclusionHeightintegerrequired
    • epochintegerrequired
    • rawValuestringrequired

      Exact positive R4 Long in the feed's rawUnit.

    • pricestringrequired

      Converted quote units per base unit, rounded to 18 decimal places.

    • priceNumeratorstringrequired
    • priceDenominatorstringrequired
    • ergoTreeHashstringrequired
    • timestampinteger · int64

      Inclusion block timestamp in milliseconds, omitted if unavailable.

  • ageBlocksintegerrequired
  • stalebooleanrequired

    ageBlocks exceeds the configured maxAgeBlocks; no wall-clock freshness is implied.

  • ▶
    historyOraclePoint[]required
    • boxIdstringrequired
    • transactionIdstringrequired
    • creationHeightintegerrequired

      Height committed by the pool box; used to compute ageBlocks.

    • inclusionHeightintegerrequired
    • epochintegerrequired
    • rawValuestringrequired

      Exact positive R4 Long in the feed's rawUnit.

    • pricestringrequired

      Converted quote units per base unit, rounded to 18 decimal places.

    • priceNumeratorstringrequired
    • priceDenominatorstringrequired
    • ergoTreeHashstringrequired
    • timestampinteger · int64

      Inclusion block timestamp in milliseconds, omitted if unavailable.

  • offsetintegerrequired
  • limitintegerrequired
  • totalinteger

    Indexed NFT box count, including the bootstrap box; omitted with limit=0.

  • nextOffsetinteger

    Next NFT-box offset, absent at the end or when history is omitted.

  • timestampsCompletebooleanrequired
400Invalid paging or block id.ApiError▶
  • errorintegerrequired

    Error code

  • reasonstringrequired

    Error message explaining the reason of the error

  • detailstringrequirednullable

    Detailed error description

404No configured feed with this id on the node's network.ApiError▶
  • errorintegerrequired

    Error code

  • reasonstringrequired

    Error message explaining the reason of the error

  • detailstringrequirednullable

    Detailed error description

409Chain tip changed; retry the snapshot or restart pagination.ApiError▶
  • errorintegerrequired

    Error code

  • reasonstringrequired

    Error message explaining the reason of the error

  • detailstringrequirednullable

    Detailed error description

503Node, index, oracle identity or supported pool state unavailable.ApiError▶
  • errorintegerrequired

    Error code

  • reasonstringrequired

    Error message explaining the reason of the error

  • detailstringrequirednullable

    Detailed error description

← PreviousList configured oracle feedsNext →Wallet balances
Request
curl -X GET "http://localhost:9000/oracles/{feedId}"
Response
{
  "feed": {
    "id": "erg-usd",
    "name": "USD v2",
    "network": "MAINNET",
    "protocol": "oracle-pool-v2",
    "poolNft": "string",
    "ergoTreeHash": "string",
    "baseAsset": "ERG",
    "quoteAsset": "USD",
    "rawUnit": "nanoERG/USD",
    "priceUnit": "USD/ERG",
    "baseDecimals": 9,
    "maxAgeBlocks": 30
  },
  "height": 0,
  "blockId": "string",
  "indexedHeight": 0,
  "current": {
    "boxId": "string",
    "transactionId": "string",
    "creationHeight": 0,
    "inclusionHeight": 0,
    "epoch": 0,
    "rawValue": "string",
    "price": "string",
    "priceNumerator": "string",
    "priceDenominator": "string",
    "ergoTreeHash": "string",
    "timestamp": 0
  },
  "ageBlocks": 0,
  "stale": true,
  "history": [
    {
      "boxId": "string",
      "transactionId": "string",
      "creationHeight": 0,
      "inclusionHeight": 0,
      "epoch": 0,
      "rawValue": "string",
      "price": "string",
      "priceNumerator": "string",
      "priceDenominator": "string",
      "ergoTreeHash": "string",
      "timestamp": 0
    }
  ],
  "offset": 0,
  "limit": 0,
  "total": 0,
  "nextOffset": 0,
  "timestampsComplete": true
}