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

Recent pool activity

get/dex/activity/recent

Transactions that moved the pool, newest first, unconfirmed ones included: swaps, deposits, redemptions, resizes and flushes, each marked as an order fill or a direct spend. A MEMPOOL entry can still be dropped or replaced. Served from a background snapshot of the bounded 30D history window. Check stats for freshness and history coverage; stale responses also carry partial: true. Requests never perform node reads.

Query parameters

  • limitinteger · int32default 10

    How many to return, capped at 50

Responses

200Transactions that moved the pool, newest firstLDRecentActivity▶
  • ▶
    activityLDActivityEntry[]required
    • txIdstringrequired
    • typestringrequired

      SWAP trades against the reserves. DEPOSIT opens a provision and REDEEM closes one. RESIZE changes a provision's size and flushes. FLUSH moves pending fees to the vault.

      one ofSWAPDEPOSITREDEEMRESIZEFLUSH
    • viastringrequired

      ORDER when the transaction fills a LithosDex order, DIRECT otherwise. RESIZE and FLUSH are always DIRECT.

      one ofORDERDIRECT
    • orderBoxIdstring

      The order this transaction filled. Present when via is ORDER.

    • statusstringrequired

      MEMPOOL entries are unconfirmed and can still be dropped or replaced. They are listed ahead of every confirmed entry.

      one ofMEMPOOLCONFIRMED
    • heightinteger · int32

      Block height. Present when CONFIRMED.

    • timestampinteger · int64

      Unix milliseconds. Present when CONFIRMED and resolved.

    • ergInboolean

      SWAP only. True when ERG was sold for the token.

    • amountInstring

      SWAP only. Raw units handed to the pool, pool fees included. Decimal string.

    • amountOutstring

      SWAP only. Raw units received. Decimal string.

    • amountXstring

      Not present for SWAP. nanoERG added to the reserves by a DEPOSIT or a growing RESIZE, returned from them by a REDEEM or a shrinking RESIZE, or moved to the vault by a FLUSH. Decimal string.

    • amountYstring

      Not present for SWAP. Token side of amountX. Decimal string.

    • sharesstring

      DEPOSIT, REDEEM and RESIZE only. Shares issued or closed; for RESIZE, the signed change. Decimal string.

  • ▶
    statsDexStatsView
    • statusstringrequired

      Freshness only. Coverage is a separate question — read historyComplete and a graph's partial.

      one ofdisabledloadingreadystaleunavailable
    • updatedAtinteger · int64

      When the last successful refresh began, in Unix milliseconds, before it read the node.

    • sourceHeightinteger · int32
    • sourceBlockIdstring

      The chain tip checked before and after the read. Current price and activity can also include the mempool.

    • windowStartHeightinteger · int32

      Earliest height you can ask for, max(0, sourceHeight - 21600).

    • coverageStartHeightinteger · int32

      Oldest retained pool snapshot, including a predecessor where one exists.

    • historyCompleteboolean

      Whether the history read reached the start of the index, or a predecessor, before the requested window.

    • refreshingbooleanrequired
    • restoredbooleanrequired

      Loaded from disk. Stale until a node read succeeds, and never overwrites newer live data.

    • errorstring

      Short refresh failure message. Details stay in the client log.

  • partialboolean

    Present and true for stale snapshots; inspect stats.historyComplete for history coverage.

400A non-positive `limit`.ApiError▶
  • errorintegerrequired

    Error code

  • reasonstringrequired

    Error message explaining the reason of the error

  • detailstringrequirednullable

    Detailed error description

503No cached snapshot; statistics are loading, unavailable, or disabled. Retry-After is 5 seconds.DexStatsUnavailable▶
  • errorintegerrequired

    Error code

  • reasonstringrequired

    Error message explaining the reason of the error

  • detailstringrequirednullable

    Detailed error description

  • ▶
    statsDexStatsViewrequired
    • statusstringrequired

      Freshness only. Coverage is a separate question — read historyComplete and a graph's partial.

      one ofdisabledloadingreadystaleunavailable
    • updatedAtinteger · int64

      When the last successful refresh began, in Unix milliseconds, before it read the node.

    • sourceHeightinteger · int32
    • sourceBlockIdstring

      The chain tip checked before and after the read. Current price and activity can also include the mempool.

    • windowStartHeightinteger · int32

      Earliest height you can ask for, max(0, sourceHeight - 21600).

    • coverageStartHeightinteger · int32

      Oldest retained pool snapshot, including a predecessor where one exists.

    • historyCompleteboolean

      Whether the history read reached the start of the index, or a predecessor, before the requested window.

    • refreshingbooleanrequired
    • restoredbooleanrequired

      Loaded from disk. Stale until a node read succeeds, and never overwrites newer live data.

    • errorstring

      Short refresh failure message. Details stay in the client log.

defaultErrorApiError▶
  • errorintegerrequired

    Error code

  • reasonstringrequired

    Error message explaining the reason of the error

  • detailstringrequirednullable

    Detailed error description

← PreviousPool price historyNext →Fee history for one provision
Request
curl -X GET "http://localhost:9000/dex/activity/recent"
Response
{
  "activity": [
    {
      "txId": "9f3c1ab7d2e45806c91f7b3ad4e2091856cbf740e3a92d5178cc0b46e21f5d38",
      "type": "SWAP",
      "via": "ORDER",
      "orderBoxId": "5035b2e112b4f5b873dd3444c01df1e7e697807fd84fe96790eacb128e46428d",
      "status": "CONFIRMED",
      "height": 484719,
      "timestamp": 1765432100000,
      "ergIn": true,
      "amountIn": "12400000000",
      "amountOut": "441820000",
      "amountX": "5000000000",
      "amountY": "151058823",
      "shares": "1176470"
    }
  ],
  "stats": {
    "status": "disabled",
    "updatedAt": 0,
    "sourceHeight": 0,
    "sourceBlockId": "string",
    "windowStartHeight": 0,
    "coverageStartHeight": 0,
    "historyComplete": true,
    "refreshing": true,
    "restored": true,
    "error": "string"
  },
  "partial": true
}