Aggregator hook on Base

Uniswap v4 Hook Contract 0xfb790c7fe24506a9394596056e9276b421c86888 on Base · Aggregator

Volume (24h)
$0
Value locked (TVL)
$8.42M
All-time volume
$0
Pools using this hook
1
Swaps (24h)
0 (0 traders)
Total swaps
0

What it does

Swaps in this pool are filled by a matching Uniswap V3 pool, with routed traders paying a fixed vault fee of at most 1% while four operator addresses pay none, and v4 liquidity deposits are disabled.

This read was written for the hook 0x2c6b…2888 on Arbitrum and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.

How it works step by step

  • Routes every swap in a v4 pool through a matching Uniswap V3 pool (same tokens, fee tier and tick spacing) instead of v4 liquidity.
  • Charges an optional deploy-fixed vault fee on the swap's unspecified side (output for exact-in, input for exact-out), capped at 1%.
  • Up to four fixed addresses (the operator's own contracts calling the PoolManager directly) are exempt from the vault fee.
  • Blocks anyone from adding liquidity to the v4 pool; liquidity lives in the external V3 pool.
  • Anyone can sweep leftover dust held by the hook to the vault while the PoolManager is locked.
Swap behaviour
On each swap the hook executes the trade against the linked Uniswap V3 pool and returns a delta so the trader receives the V3 output, minus the vault fee (or pays the V3 input plus the fee for exact-output). No price limit is applied beyond V3's full range, so traders should rely on router slippage checks.
Liquidity behaviour
Adding liquidity always reverts, so the v4 pool holds no LP positions. Remove-liquidity callbacks are disabled, so the hook can never block withdrawals.
Fee behaviour
A fixed fee set at deployment, between 0% and a hard cap of 1%, is taken from the swap's unspecified-side amount (rounded up) and sent to an immutable vault address; up to four exempt addresses pay nothing. The underlying V3 pool's own fee tier also applies.
Owner & admin controls
No admin controls found; the fee (max 1%), vault and exempt addresses are immutable constructor values.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap, beforeSwapReturnDelta

beforeInitialize: links the new v4 pool to the matching V3 pool and rejects native ETH or duplicate pairs; beforeAddLiquidity: reverts to forbid v4 liquidity; beforeSwap: performs the swap on the V3 pool and collects the vault fee; beforeSwapReturnDelta: replaces the v4 swap amounts with the V3 result and fee.

Security & trust assessment

Risk level: low, estimated (decoded bytecode, high confidence).

Who controls it: There is no owner; all parameters are immutable. The deployer chose the vault, fee (up to 1%) and exempt addresses, which cannot change.

Risk to user funds: The hook only handles swap amounts in flight, deducting at most 1% for the vault plus the V3 pool's fee. No LP principal exists in the v4 pool, so nothing can be locked or drained.

Security findings

  • [info] Fee capped at 1% and immutable: The vault fee is fixed at deployment and the constructor rejects anything above 1%; there is no setter.
  • [info] Fee exemptions for operator contracts: Up to four fixed addresses swap fee-free only when calling the PoolManager directly, giving them a small pricing advantage over routed traders.
  • [info] No v4 liquidity, no withdrawal risk: Adding liquidity is blocked and remove-liquidity callbacks are disabled, so no LP funds are held or trapped.

Contract details

Verified source
No
Bytecode size
16,174 bytes
Upgradeable proxy
No
Detected patterns
aggregator, moves-currency, return-delta

Pools using Aggregator hook