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
| Endpoint | Summary | Dataset ID | Typical Latency |
|---|---|---|---|
POST /v1/evm/reserves | Normalized reserve snapshots with decimals-adjusted amounts | 0301 | < 250 ms |
POST /v1/evm/reserves/liquidity-distribution | Per-tick liquidity distribution for concentrated liquidity pools | 0301 | < 400 ms |
Parameter Conventions
Starting block height (inclusive) for reserve snapshots.
Ending block height (inclusive) for reserve snapshots.
Starting timestamp (ISO-8601). If it falls between blocks, the next block after this timestamp is used.
Ending timestamp (ISO-8601). If it falls between blocks, the last block before this timestamp is used.
BlockDB pool identifiers for direct lookups.
Pool contract addresses to scope reserve data.
Provider-specific pool identifiers when applicable.
Exchange identifiers for filtering by DEX protocol.
AMM model filters. Use Pool Type enumeration values.
Chain identifier for the target EVM network. See Chain enumeration for supported values.
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