dimensions.dex_pools holds one row per DEX pool, which is one place to swap tokens on one chain. It brings together the pools of every project we cover, read from the events that created them, so it lists every pool that has ever existed rather than only the ones still in use.
Columns
| Column | Type | Description |
|---|---|---|
dex_pool_id | STRING | Identifier of the pool: the pool address joined with the chain. |
deployment_id | STRING | The operating appโs deployment on the poolโs chain. |
protocol_id | STRING | The app operating the pool, for example uniswap-v3. |
chain_id | STRING | Chain the pool lives on. |
project_id | STRING | Project the operating app belongs to. |
pool_address | STRING | Onchain address of the pool. Where one contract holds every pool, this is the poolโs id inside that contract. |
pool_name | STRING | The poolโs tokens as a name, for example USDC-WETH. |
pool_display_name | STRING | Pool name with the fee added on, where the pool charges a fixed one. |
fee_tier | BIGNUMERIC | The fee the pool charges on every swap, as a decimal fraction, so 0.0005 reads 0.05%. Empty where the venue sets the fee swap by swap. |
created_at | TIMESTAMP | Time of the block the pool was created in. |
hooks_address | STRING | Address of the poolโs hooks contract, on venues that attach one. A hooks contract is extra code the venue runs around each swap. |
token_ids | ARRAY<STRING> | The tokens the pool holds, in pool order, as keys of dimensions.tokens. |
Sample queries
- Pools per chain
- A pool's tokens
- Pools for one pair
Count pools by protocol version and chain.
protocol_id names the app operating the pool and deployment_id names that appโs deployment on the poolโs chain.Notes
A pool holds two or more tokens, and a pair is any two of them, so there is no separate table of pairs. A pool holding three tokens has three possible pairs, readable straight offtoken_ids. Keeping the tokens in a list is also what lets a pool hold more than two, which fixed token0 and token1 columns could not.
Which of those pairs users traded is a separate question, and a matter of record rather than of membership. The pairs that traded and their volumes are on the daily pair table, keyed by dex_pair_id.
fee_tier is filled in for Uniswap v2, where it is fixed at 0.30%, and for v3, where the pool sets it onchain. It is empty for every v4 pool, because a v4 poolโs fee can be changed swap by swap by its hooks contract. For those pools, the fee a trade paid is fee_rate on Trades rather than anything on the pool.
This table lists every pool, including ones that never traded and ones long abandoned.