Overview
The Pools Reserves endpoints provide time-series snapshots of AMM pool liquidity states. Reserve data is normalized across pool types (constant-product, concentrated liquidity, weighted, bin-based) to enable consistent analytics regardless of the underlying AMM. Each snapshot includes lineage metadata linking back to on-chain state changes.Endpoint Matrix
Parameter Conventions
number
Starting block height (inclusive) for reserve snapshots.
number
Ending block height (inclusive) for reserve snapshots.
string
Starting timestamp (ISO-8601). If it falls between blocks, the next block after this timestamp is used.
string
Ending timestamp (ISO-8601). If it falls between blocks, the last block before this timestamp is used.
string[]
BlockDB pool identifiers for direct lookups.
string[]
Pool contract addresses to scope reserve data.
string[]
Provider-specific pool identifiers when applicable.
number[]
Exchange identifiers for filtering by DEX protocol.
number[]
AMM model filters. Use Pool Type enumeration values.
number
required
Chain identifier for the target EVM network. See Chain enumeration for supported values.
boolean
default:"false"
Off by default. When set to
true, reserve amounts and tick amounts are also returned scaled by ERC-20
token decimals. Enabling it adds a per-request ERC-20 decimals lookup (extra join) that increases latency,
so it is opt-in; when omitted or false, only the always-present raw base-unit fields are populated.Usage Guidance
- Join with pools metadata β Link reserve snapshots to pool metadata via
pool_uidfor complete context - Time-series analysis β Reserve data is optimized for chronological queries; use block/time ranges for historical analysis
- Filter by exchange β Use
exchange_idsto focus on specific DEX protocols (Uniswap, Curve, etc.) - Concentrated liquidity β Use
/v1/evm/reserves/liquidity-distributionfor per-tick breakdown with a configurable price window (1β10%) - Decimals-adjusted amounts β Enable
include_adjusted_amounts(off by default) to receive human-readable token amounts alongside raw base-unit values; it adds a decimals lookup, so opt in only when you need the scaled values - Cache recent snapshots β Latest reserve states change frequently; cache with short TTL (1β5 minutes)
Reserve Data Models
Even-Distribution Pools (Uniswap v2, SushiSwap, Balancer):reserves: Array of raw token balances (base units)reserves_decimals_adjusted: Same values divided by each tokenβs decimals (e.g./ 10^18for ETH)current_tick:nullcurrent_sqrt_price:null
reserves:null(reserves are distributed across ticks)current_tick: Active tick positioncurrent_sqrt_price: Q64.96 sqrt price- For per-tick distribution β use
/v1/evm/reserves/liquidity-distribution
current_bin: Active bin identifier
Common Patterns
Track pool reserves over time:Dataset Relationships
- Pools β Reserves: Join pool metadata to reserve snapshots using
pool_uid - Reserves β Swap Fees: Combine swap-fee time-series with reserve state for pool economics
- Swap Fees β Yields: Yield predictions are derived from swap fees and current reserves
- Reserves β Prices: Reserve changes drive pricing calculations in L1/L2/L3 layers
- Reserves β Transactions: Reserve snapshots link to transaction logs via
_parent_tracing_ids
See Also
POST /v1/evm/reservesβ Reserve snapshots with decimals-adjusted amountsPOST /v1/evm/reserves/liquidity-distributionβ Per-tick liquidity distributionPOST /evm/swaps/feesβ Per-swap fee accountingPOST /evm/yieldsβ Yield/ROI predictionsPOST /evm/entities/poolsβ Pool metadata registry- Pool Type β AMM pool classifications
- Digital Exchange β DEX protocol identifiers
- Pricing Suite Overview β Price data derived from reserves