> ## Documentation Index
> Fetch the complete documentation index at: https://docs.blockdb.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Liquidity Pool Reserves

> AMM reserve snapshots — sqrt price, current tick, token balances, optional tick/bin detail rows.

## Overview

* **Dataset ID:** `0301`
* **Tables:** `blockdb_evm.b0301_liquidity_pools_reserves_v1`, `blockdb_evm.b0301_liquidity_pools_reserves_details_v1`
* **Description:** Per-pool reserve snapshots at every on-chain event (one row per event), with optional granular tick/bin/range detail rows joined via `snapshot_id`.
* **Primary key:** `(pool_uid, block_number, tx_index, log_index)` (reserves); `(snapshot_id, tick/bin/range)` (details)
* **API:** [POST /evm/reserves](/api-reference/evm/reserves/reserves)
* **CSV Sample (reserves):** [Download](https://huggingface.co/datasets/BlockDB/Liquidity-Pools-Reserves-Ethereum-And-EVM-Cryptocurrency-Data/resolve/main/data/blockdb_evm.b0301_liquidity_pools_reserves_v1.csv?download=true)
* **CSV Sample (details):** [Download](https://huggingface.co/datasets/BlockDB/Liquidity-Pools-Reserves-Ethereum-And-EVM-Cryptocurrency-Data/resolve/main/data/blockdb_evm.b0301_liquidity_pools_reserves_details_v1.csv?download=true)
* **JSON Sample (reserves):** [Download](https://huggingface.co/datasets/BlockDB/Liquidity-Pools-Reserves-Ethereum-And-EVM-Cryptocurrency-Data/resolve/main/data/blockdb_evm.b0301_liquidity_pools_reserves_v1.json?download=true)
* **JSON Sample (details):** [Download](https://huggingface.co/datasets/BlockDB/Liquidity-Pools-Reserves-Ethereum-And-EVM-Cryptocurrency-Data/resolve/main/data/blockdb_evm.b0301_liquidity_pools_reserves_details_v1.json?download=true)

## Sample Viewer

<Frame>
  <iframe src="https://huggingface.co/datasets/BlockDB/Liquidity-Pools-Reserves-Ethereum-And-EVM-Cryptocurrency-Data/embed/viewer/default/train" frameborder="0" width="100%" height="600px" />
</Frame>

## Snapshot columns (`blockdb_evm.b0301_liquidity_pools_reserves_v1`)

Primary key: `(pool_uid, block_number, tx_index, log_index)`.

| Column                | Type              | Description                                                   |
| --------------------- | ----------------- | ------------------------------------------------------------- |
| `pool_uid`            | `BYTEA`           | Pool surrogate key; FK → `b0211_liquidity_pools_v1.pool_uid`. |
| `exchange_id`         | `INTEGER`         | Exchange identifier.                                          |
| `type_id`             | `INTEGER`         | Liquidity pool type identifier.                               |
| `block_number`        | `BIGINT`          | Block when this state was observed.                           |
| `block_time`          | `TIMESTAMPTZ`     | Block time.                                                   |
| `tx_index`            | `INTEGER`         | Transaction index within the block.                           |
| `log_index`           | `INTEGER`         | Log index within the transaction.                             |
| `reserves`            | `NUMERIC(78,0)[]` | Current reserves per token for even-style pools (raw units).  |
| `current_tick`        | `INTEGER`         | Current tick (concentrated liquidity, e.g. Uniswap v3).       |
| `current_sqrt_price`  | `NUMERIC(49,0)`   | Q64.96 sqrt price integer.                                    |
| `current_bin`         | `INTEGER`         | Current bin id for bin-style AMMs.                            |
| `_tracing_id`         | `BYTEA`           | BlockDB tracing ID; unique.                                   |
| `_parent_tracing_ids` | `BYTEA[]`         | Parent tracing IDs.                                           |
| `_created_at`         | `TIMESTAMPTZ`     | Record creation time.                                         |
| `_updated_at`         | `TIMESTAMPTZ`     | Record last update time.                                      |

`CHECK (ck_b0301_reserves_has_payload)` requires at least one of: `reserves`, `current_tick`, `current_bin`, or (per DDL) `liquidity_values`, `amounts0` when those columns exist in your deployed schema. The shipped DDL file references `liquidity_values` / `amounts0` in the payload check; confirm deployed columns match your environment.

## Details columns (`blockdb_evm.b0301_liquidity_pools_reserves_details_v1`)

Join: `details.snapshot_id = reserves._tracing_id`.

| Column        | Type            | Description                                    |
| ------------- | --------------- | ---------------------------------------------- |
| `snapshot_id` | `BYTEA`         | Parent snapshot `_tracing_id`.                 |
| `tick`        | `INTEGER`       | Single-tick locator (v3-style).                |
| `lower_tick`  | `INTEGER`       | Range lower bound.                             |
| `upper_tick`  | `INTEGER`       | Range upper bound.                             |
| `bin_id`      | `INTEGER`       | Single-bin locator.                            |
| `liquidity`   | `NUMERIC(38,0)` | Engine-native liquidity (e.g. Uniswap v3 (L)). |
| `amount0`     | `NUMERIC(78,0)` | Token0 raw amount at locator.                  |
| `amount1`     | `NUMERIC(78,0)` | Token1 raw amount at locator.                  |

Uniqueness: one row per `(snapshot_id, tick)`, per `(snapshot_id, bin_id)`, or per `(snapshot_id, lower_tick, upper_tick)` range.

<Note>
  **Tick range coverage:** Detail rows cover a **±1% range around the current price tick** by default. If you need a wider tick range or full tick coverage, [contact us](mailto:support@blockdb.io).
</Note>

## Use cases

* Pool state backtesting and simulation
* Liquidity distribution analysis (ticks/bins)
* TVL and pricing model inputs

## Related datasets

<CardGroup cols={2}>
  <Card title="Liquidity pools" icon="water" href="/data-catalog/evm/entities/liquidity-pools">
    Pool registry keyed by `pool_uid`.
  </Card>

  <Card title="Swap fees" icon="coins" href="/data-catalog/evm/swaps/liquidity-pools-swap-fees">
    Per-swap economics tied to the same pool events.
  </Card>
</CardGroup>
