Description
Retrieves pool TVL (Total Value Locked) snapshots in USD. Each snapshot represents the pool’s total value computed from reserves multiplied by fiat prices at a specific on-chain event.
Use this endpoint to:
- Build TVL rankings and dashboards
- Track liquidity migration across pools and protocols
- Filter pools by minimum TVL for routing decisions
- Monitor protocol health and liquidity trends
Parameters
Target EVM network. See the Chain enumeration for supported values.
Range Filters (mutually exclusive)
Starting block number (inclusive) for the query. Use with to_block.
Ending block number (inclusive) for the query. Use with from_block.
Starting timestamp (ISO-8601). If it falls between blocks, the next block after this timestamp is used. Use with to_timestamp.
Ending timestamp (ISO-8601). If it falls between blocks, the last block before this timestamp is used. Use with from_timestamp.
Validation rule:
You must provide either a block range, a time range, or at least one direct selector.
Providing more than one option results in HTTP 400.
Providing none results in HTTP 400.
Pool Selectors
Filter pools by exchange IDs. See the DigitalExchange enumeration for supported values.
Filter by BlockDB pool identifiers (uid from /evm/pools).
Filter by pool contract addresses (hex string, 20 bytes, no 0x prefix).
Filter by AMM archetype. See the PoolType enumeration for supported values.
TVL Filters
Minimum TVL threshold in USD.
Maximum TVL threshold in USD.
Recommended default 250; maximum 1000 to stay under ~10 MB responses.
Pagination cursor from a prior call.
Response Fields
Echo of request metadata applied to the response.
EVM chain ID echoed from the request.
Block/timestamp bounds derived from the request.
Filters echoed from the request (selectors, TVL filters, pagination state, etc.).
Data
Array of TVL snapshot records matching the request.
Chain ID for the TVL record.
Stable identifier for the TVL record.
BlockDB pool identifier (uid from /evm/pools).
Block height of the TVL snapshot.
UTC timestamp of the TVL snapshot.
Zero-based transaction index within the block.
Zero-based log index within the transaction.
Array of token amounts (decimals-adjusted), aligned with pool tokens. Returned as strings to preserve precision.
Total value locked in USD. Returned as a string to preserve precision.
Row-level lineage hash (hex string, no 0x prefix).
Lineage references of immediate parents.
Record creation timestamp (ISO-8601).
Last update timestamp (ISO-8601).
Envelope Fields
Cursor token for pagination.
Number of records returned in data.
curl -X POST "https://api.blockdb.io/v1/evm/tvl" \
-H "Authorization: Bearer $BLOCKDB_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"chain_id": 1,
"pool_uids": [
"88e6a0c2ddd26feeb64f039a2c41296fcb3f5640000000000000000000000000"
],
"from_timestamp": "2025-12-01T00:00:00Z",
"to_timestamp": "2025-12-20T00:00:00Z",
"min_tvl_usd": 1000000,
"limit": 250
}'
{
"meta": {
"chain_id": 1,
"request_window": {
"from_timestamp": "2025-12-01T00:00:00Z",
"to_timestamp": "2025-12-20T00:00:00Z"
},
"filters": {
"pool_uids": [
"88e6a0c2ddd26feeb64f039a2c41296fcb3f5640000000000000000000000000"
],
"min_tvl_usd": 1000000,
"limit": 250,
"cursor": null
}
},
"data": [
{
"chain_id": 1,
"id": 123456789,
"pool_uid": "88e6a0c2ddd26feeb64f039a2c41296fcb3f5640000000000000000000000000",
"block_number": 19001234,
"block_time": "2025-12-20T12:34:56Z",
"tx_index": 7,
"log_index": 12,
"token_amounts": [
"1250.000000000000000000",
"3950000.000000000000000000"
],
"tvl_usd": "8750000.00",
"_tracing_id": "0601c0ffee000000000000000000000000000000000000000000000000000001",
"_parent_tracing_ids": [
"0301c0ffee000000000000000000000000000000000000000000000000000001"
],
"_created_at": "2025-12-20T12:35:01Z",
"_updated_at": "2025-12-20T12:35:01Z"
}
],
"cursor": null,
"count": 1
}