Liquidity Snapshots

Availability

This collection is available for the Ethereum, Polygon, Arbitrum, and Base.

Points-of-PresenceTables

eu-west-1

defi_liquidity_snapshots_ethereum_mainnet_v1 defi_liquidity_snapshots_polygon_mainnet_v1 defi_liquidity_snapshots_arbitrum_mainnet_v1 defi_liquidity_snapshots_base_mainnet_v1

Methodology

The table is built by the following process:

  1. Identify all liquidity events emitted by supported DEX pools in a block

  2. Call the balanceOf method for each pair of (pool, ERC-20)

We currently support the following DEXes:

  • Uniswap V2

  • Uniswap V3

  • Curve

We extract data from any contract compatible with one of the above DEXes ABI.

It means that any DEXes that forked or tried to be compatible at the ABI level with these contracts will be indexed automatically.

Table Schema

Column NameColumn TypeDescription

chain_name

string

Name of the chain (ethereum, arbitrum, polygon, ...).

chain_network_name

string

name of the network (mainnet).

block_hash

string

Block hash encoded as binary string

block_number

uint64

Block height

transaction_index

uint64

The index of the transaction in the block

timestamp

datetime

UNIX timestamp for when the block was collated

decoder_name

string

The internal name of the decoder used to decode this trade (uniswap_v2_liquidity_event, curve_liquidity_event)

factory

string

The address of the DEX factory contract (if any)

contract

string

The address of the DEX pair/pool

raw_amounts

map(string, uint256)

A map of token amounts held by the pool

amounts

map(string, float64)

A map of token amounts held by the pool. The amount of tokens are divided by pow(10, decimals) where decimals is the number of decimals declared by the token (USDT has 6 decimals)

Usage

The query below makes use of the defi_liquidity_snapshots_ethereum_mainnet_v1 to chart the daily average of liquidity for each token of the famous Curve 3Pool (0xbEbc44782C7dB0a1A60Cb6fe97d0b483032FF1C7).

select
    date_trunc('day', timestamp) as date,
    avg(amounts['0x6b175474e89094c44da98b954eedeac495271d0f']) as dai_liquidity,
    avg(amounts['0xdac17f958d2ee523a2206206994597c13d831ec7']) as usdt_liquidity,
    avg(amounts['0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48']) as usdc_liquidity
from defi_liquidity_snapshots_ethereum_mainnet_v1
where contract = '0xbEbc44782C7dB0a1A60Cb6fe97d0b483032FF1C7'
and timestamp >= now() - interval 30 day 
group by date

Last updated