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/Lithos Dex

Look up provision NFTs

post/dex/provisions/nft

Which of up to 100 tokens own a provision on a listed LithosDex pool, of either kind. A deposit's NFT has the id of the pool box the deposit spent, so a token is checked against that box first; a pool creator's NFT is named by the pool's genesis. The pool's provisions are read once for every token naming it. Each token comes back once, with provisionNft false when it owns none. When it owns one, the answer carries the pool, the provision, its share of the reserves now and how it was minted. A redeemed token owned a provision since closed. Answers hold for one block: a second request at the same tip reads nothing from the node. Open, so it can check tokens held anywhere.

Request body

LDNftLookupRequest · application/json
  • tokenIdsstring[]required

Responses

200One entry per distinct token id, in lower caseLDNftLookupList▶
  • ▶
    nftsLDNftLookup[]required
    • tokenIdstringrequired
    • provisionNftbooleanrequired

      Whether this token owns a provision on a listed pool

    • ▶
      poolLDPoolSummary

      One LithosDex pool as the index last read it. Amounts are decimal strings in base units.

      • poolNFTstringrequired
      • kindstringrequired

        n2t is ERG against a token, t2t token against token

        one ofn2tt2t
      • utxoIdstringrequired

        The pool box the index read

      • inclusionHeightinteger · int32required
      • ▶
        tokenXLDPoolTokenrequired

        One side of a pool. A verified token's name, ticker and decimals come from the client's verified list; any other token's from the node's token index, where whoever minted the token chose them.

        • tokenIdstringrequired

          Token id, or ERG for the X side of an ERG/token pool

        • namestring
        • tickerstring

          Short symbol. Verified tokens and ERG only.

        • decimalsinteger · int32
        • verifiedbooleanrequired
      • ▶
        tokenYLDPoolTokenrequired

        One side of a pool. A verified token's name, ticker and decimals come from the client's verified list; any other token's from the node's token index, where whoever minted the token chose them.

        • tokenIdstringrequired

          Token id, or ERG for the X side of an ERG/token pool

        • namestring
        • tickerstring

          Short symbol. Verified tokens and ERG only.

        • decimalsinteger · int32
        • verifiedbooleanrequired
      • reservesXstringrequired
      • reservesYstringrequired
      • pendingXstringrequired

        Fees awaiting a flush to the vault

      • pendingYstringrequired
      • supplystringrequired

        Shares issued

      • ▶
        feeParamsLDFeeParamsrequired

        Fee numerators over feeDenom. dexFeeNum stays in the pool; ergFeeNum / tokenFeeNum are set aside for liquidity providers.

        • dexFeeNuminteger · int64required
        • ergFeeNuminteger · int64required
        • tokenFeeNuminteger · int64required
        • feeDenominteger · int64required

          Denominator of every numerator above

      • provTokensLeftstringrequired

        Deposits the pool can still take, one provision token each

      • pricenumber · double

        Units of Y per unit of X at display decimals. Absent when either side's decimals are unknown.

      • verifiedbooleanrequired

        Whether the client's verified list names this pool

      • genesisCheckedbooleanrequired

        Whether this pool's genesis was checked. False for verified pools, which are checked by hand, and while the node could not be read.

      • problemsstring[]required

        Genesis facts this pool breaks. Any one can let the pool be drained.

      • warningsstring[]required

        Risks short of that, such as too little ERG to survive storage rent.

    • ▶
      provisionLDProvision

      A liquidity provision box, with both what it has earned and what it can currently be paid.

      • boxIdstringrequired

        Provision box id. Changes on every claim and resize.

      • ownerNFTstringrequired

        Token that owns this provision. Unchanged by claims and resizes.

      • sharesstringrequired

        LP shares this provision represents. Decimal string.

      • entryXstringrequired

        Accumulator this provision last settled at. Decimal string.

      • entryYstringrequired

        Token side of the same. Decimal string.

      • valuestringrequired

        nanoERG held by the provision box. Decimal string.

      • createdHeightinteger · int32required
      • shareOfSupplynumber · doublerequired
      • accruedXstringrequired

        ERG earned according to the pool, including fees not yet flushed. This is the figure to show a provider as "earned". Decimal string.

      • accruedYstringrequired

        Token side of the same. Decimal string.

      • claimableXstringrequired

        ERG that can be paid out now. Never negative. Decimal string.

      • claimableYstringrequired

        Token side of the same. Decimal string.

      • unflushedXstringrequired

        accruedX less claimableX — what a flush would release. Decimal string.

      • unflushedYstringrequired

        Token side of the same. Decimal string.

      • canClaimbooleanrequired

        Whether a claim would be accepted right now.

      • awaitingFlushbooleanrequired

        True when nothing can be claimed until the next flush. Normal after a deposit or resize; not an error.

      • redeemOrderBoxIdstring

        Present when an outstanding redeem order holds this provision's ownerNFT. The provision cannot be claimed, resized or redeemed directly until that order fills or is cancelled.

    • amountXstring

      The provision's share of the pool's X reserve now. nanoERG for an ERG/token pool.

    • amountYstring

      The provision's share of the pool's Y reserve now

    • redeemedboolean

      The token owned a provision on this pool that has since been closed

    • ▶
      mintedLDNftMint

      How a provision NFT was minted: by a deposit, or by its pool's genesis for the pool's creator

      • heightintegerrequired
      • sharesstringrequired

        Shares the provision was created with

      • amountXstringrequired

        What went in on the X side, nanoERG for an ERG/token pool. For a genesis, the whole reserve, a millionth of which stays locked

      • amountYstringrequired
      • genesisbooleanrequired
    • lastClaimedHeightinteger

      The block that last recreated the provision with moved entries, by a claim or a resize. Absent while it has never been claimed. A refresh keeps the entries but recreates the box, so after one this is the refresh's block.

    • refreshBountyNanoErgstring

      Token/token provisions only: what a refresh may take from the provision box's ERG now

    • refreshableHeightinteger

      The first block anyone may refresh the provision box, renewing its age before storage rent

400The request is malformed, names more than 100 tokens, or has an id that is not 64 hex characters.ApiError▶
  • errorintegerrequired

    Error code

  • reasonstringrequired

    Error message explaining the reason of the error

  • detailstringrequirednullable

    Detailed error description

503The pool index is still building, the node is unavailable, or a pool has more provisions than one scan reads. Never returns a partial answer.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

← PreviousList liquidity provisionsNext →Claim settled fees for a provision
Request
curl -X POST "http://localhost:9000/dex/provisions/nft" \
  -H "Content-Type: application/json" \
  -d '{ "tokenIds": [ "88c297f99da7172f6aa20efbead69aa40e2b7734a1873d66ca1db6b19d214db6" ] }'
Response
{
  "nfts": [
    {
      "tokenId": "string",
      "provisionNft": true,
      "pool": {
        "poolNFT": "string",
        "kind": "n2t",
        "utxoId": "string",
        "inclusionHeight": 0,
        "tokenX": {
          "tokenId": "c1980d829988229516430a47a5eca376060b6ce859616db0936e78ab25cb6de7",
          "name": "LIT",
          "ticker": "LIT",
          "decimals": 9,
          "verified": true
        },
        "tokenY": {
          "tokenId": "c1980d829988229516430a47a5eca376060b6ce859616db0936e78ab25cb6de7",
          "name": "LIT",
          "ticker": "LIT",
          "decimals": 9,
          "verified": true
        },
        "reservesX": "string",
        "reservesY": "string",
        "pendingX": "string",
        "pendingY": "string",
        "supply": "string",
        "feeParams": {
          "dexFeeNum": 9985,
          "ergFeeNum": 15,
          "tokenFeeNum": 15,
          "feeDenom": 10000
        },
        "provTokensLeft": "string",
        "price": 0.1,
        "verified": true,
        "genesisChecked": true,
        "problems": [
          "string"
        ],
        "warnings": [
          "string"
        ]
      },
      "provision": {
        "boxId": "ce00d6e0f4fd3390c0519bb0d24824e1e6b06978163f4845a7cf2c1c7d8f1b65",
        "ownerNFT": "a1f4c2e8b7d93052416fbc8e07d21935a8c4f60b2e91d7385c06a4b1f2e83d97",
        "shares": "12500000000",
        "entryX": "18400000000000000000000000",
        "entryY": "552000000000000000000000",
        "value": "600000000",
        "createdHeight": 1284400,
        "shareOfSupply": 0.0125,
        "accruedX": "292750000",
        "accruedY": "8900000",
        "claimableX": "253000000",
        "claimableY": "7690000",
        "unflushedX": "39750000",
        "unflushedY": "1210000",
        "canClaim": true,
        "awaitingFlush": false,
        "redeemOrderBoxId": "9b41d2f07ce83a5164e2d09fb7a3c1586e04d9b2f71ac8356e0b4d1c7f29a3e5"
      },
      "amountX": "string",
      "amountY": "string",
      "redeemed": true,
      "minted": {
        "height": 0,
        "shares": "string",
        "amountX": "string",
        "amountY": "string",
        "genesis": true
      },
      "lastClaimedHeight": 0,
      "refreshBountyNanoErg": "string",
      "refreshableHeight": 0
    }
  ]
}