Table · StrataPlanned

Uniswap v4 Hooks: Volume and Liquidity by Hook

Which Uniswap v4 hooks attract the most volume and liquidity?

Every Uniswap v4 hook with the pools that use it, their volume, fees and liquidity, what the hook is allowed to do and where it runs.

ShareEmail itvoltfincrypto.com/apps/uniswap-v4-hooks
Blueprint

What the table will hold.

The table as it will open in Strata. Each figure is named here and arrives with its receipt; until its data is published, its place stays empty.

One row One row per hook address per chain on the latest complete day, plus one row per chain for pools without a hookSorted by Volume, 30 days, highest first

HookNameChainPoolsVolume, 24 hoursUSDVolume, 30 daysUSDLP fees, 30 daysUSDHook fees, 30 daysUSDLiquidityUSDShare of v4 volumePermissionsReceipt
Hook hook Address
The hook contract address, or no hook for the row of plain pools on that chain.
Name hook_name Text
The hook's name from verified source or its deployer's documentation, where either exists.
Chain chain Chain
The chain this hook is deployed on.
Pools pools Number
v4 pools initialized with this hook on this chain.
Volume, 24 hours volume_24h Exact amount
Swap volume of the hook's pools on the latest complete day, valued once per swap.
Volume, 30 days volume_30d Exact amount
Swap volume of the hook's pools over the last thirty complete days.
LP fees, 30 days lp_fees_30d Exact amount
Fees paid to the pools' liquidity providers over thirty days, at the fee each Swap event recorded.
Hook fees, 30 days hook_fees_30d Exact amount
Fees the hook itself took on top of LP fees over thirty days, where its events or balances record them.
Liquidity liquidity Exact amount
Tokens of the hook's pools held in the PoolManager at the day's last block, plus any the hook exposes as held elsewhere.
Share of v4 volume share_of_v4_volume Percent
The hook's thirty-day volume as a share of all v4 volume on the same chain.
Permissions permissions Text
The callbacks the hook's address flags allow, such as before swap, after swap and return delta.
Receipt receipt Link
The blocks and reads behind the row's volume and liquidity.

Filter by Chain, Permissions.

About

What it answers, and for whom.

A hook is a contract that a Uniswap v4 pool calls at set points in its life: when the pool is created, around each swap and around each change to its liquidity. Hooks let a pool charge a dynamic fee, run a token launch, rebalance or lend out its liquidity, return MEV to its providers or limit who can trade. A pool picks its hook once, when it is created, so the hook is part of the pool's identity.

This table lists every hook address that pools use, with the pools attached, the volume and fees they earned, the liquidity they hold and which callbacks the hook may run. Permissions are decoded from the hook's address itself, because v4 encodes them in the address's lowest bits, so they cannot be misreported. Sort it to find the hooks that carry the most trading or filter it by chain or permission, then open a row to see its pools and the reads behind it.

Pools without a hook appear as one row per chain, so the share of v4 volume that runs through hooks can be read against plain pools on the same chain and the same day.

Method

How it will be measured.

Every figure will be read at a block, kept with its source and its exact read, and open a receipt anyone can re-check.

How receipts work →
  1. Every v4 pool is found from the PoolManager's Initialize event, which records its pool id, both currencies, fee setting, tick spacing and hook address.
  2. Volume and fees come from the PoolManager's Swap events per pool id; the fee in each event is the rate actually charged, which a dynamic-fee hook may change swap by swap.
  3. Liquidity is rebuilt from ModifyLiquidity events and checked against PoolManager state at the day's last block. Tokens a hook keeps outside the PoolManager, such as liquidity it lends out, are added only where the hook exposes them.
  4. Permissions are the flags in the lowest bits of the hook address. Names come from verified source code or the deployer's documentation, and a hook with neither is listed by address.

The data it needs

Read from chain state and history

  • dex_swaps_dailyTo buildDEX volumeSwap counts and volume per DEX, pool and chain per day, decoded from Swap events, valued with stablecoin legs and oracle prices.
  • dex_liquidity_dailyTo buildDEX liquidityLiquidity held by each DEX pool at day end, in tokens and valued in USD, with fee tier and pool age.
  • native_prices_dailyTo buildOracle prices by dayReference prices of major assets read from on-chain oracle feeds (Chainlink latestRoundData) at each day's last block, with each round's update time.
  • Uniswap v4 PoolManager Initialize events: pool id, currency0, currency1, fee, tickSpacing and hooks
  • PoolManager Swap events per pool id, including the fee charged
  • PoolManager ModifyLiquidity and Donate events
  • Hook permission flags decoded from the lowest bits of each hook address
  • Hook contract creation transactions, proxy slots and verified source names
Questions

Questions people ask.

What is a Uniswap v4 hook?

A smart contract attached to a v4 pool that the PoolManager calls at defined moments, such as before a swap or after liquidity is added. It can change the fee, run extra logic, hold tokens or, with return-delta permissions, change the amounts a swap settles.

How can I tell what a hook is allowed to do?

Look at its permissions column. In v4 the hook's address encodes which callbacks it may run, and the PoolManager only calls the ones whose flags are set. A hook with before-swap return-delta rights can alter a swap's amounts, which matters more than one that only reads them.

Are Uniswap v4 hooks safe?

The table shows what each hook can do, not whether its code is sound. Permissions, upgradeability and whether the source is verified are listed so readers can judge the risk, and no hook is ever marked safe. Hooks have been exploited before, and an upgradeable hook can change its logic after pools attach to it.

Why can a hooked pool's liquidity look small next to its volume?

Some hooks keep most of a pool's tokens outside the PoolManager, for example lending them out until a swap needs them. The PoolManager then holds less than the pool can trade against, so the table adds the hook's own holdings where the hook exposes them.

What share of Uniswap v4 volume goes through hooks?

The rows for plain pools make it readable: each chain's hooked volume is compared with its pools without a hook for the latest day and the selected period, so the share always comes from the same day's swaps rather than from a quoted figure.

Do hooks charge extra fees?

Some do. A hook with return-delta permissions can take its own fee from a swap on top of the pool's fee to liquidity providers. The LP fees column shows what went to providers, and the hook fees column shows what the hook took where its events or balances record it.

Hook
A contract a v4 pool calls at set points in its life, chosen when the pool is created and fixed for that pool.
Pool id
The identifier of a v4 pool, the hash of its two currencies, fee, tick spacing and hook, used in every PoolManager event.
Return delta
A hook permission that lets the hook change the token amounts a swap or liquidity change settles, for example to charge a fee or fill part of a trade itself.
Singleton
v4's design of one PoolManager contract holding every pool, instead of one contract per pool as in v2 and v3.

Build Uniswap v4 Hooks: Volume and Liquidity by Hook on verified data.

Start free in Voltfin Studio: boards, tables and reports where every number opens its receipt. Tell us which data you need first and we will build it next.