Dynamic fee hook on Robinhood Chain

Uniswap v4 Hook Contract 0xcf8f482e998d18793414d10c9fc48fc8277ab8cc on Robinhood Chain · Dynamic fee

Volume (24h)
$1.71K
Value locked (TVL)
$11.63K
All-time volume
$5.31M
Pools using this hook
74
Swaps (24h)
27 (25 traders)
Total swaps
22,327

What it does

A Uniswap v4 hook that sets dynamic LP fees and routes a share of pool activity into an associated vault using return deltas and ERC-6909 claims.

How it works step by step

  • Maps each pool key to a vault address in storage through register and vaultOf
  • Sets the dynamic LP fee on the pool manager via updateDynamicLPFee
  • Takes or adjusts swap deltas through beforeSwapReturnDelta and afterSwapReturnDelta
  • Mints or credits ERC-6909 claim balances tied to the vault
  • Reads a creatorFeePPM value that suggests a creator fee share
Swap behaviour
beforeSwap and afterSwap run custom logic, may update the dynamic LP fee, and can alter swap amounts through return deltas.
Liquidity behaviour
Hooks before and after add and remove liquidity are present; beforeAddLiquidity is a view function and afterRemoveLiquidity is pure, suggesting liquidity callbacks mainly validate or observe rather than move funds.
Fee behaviour
Calls updateDynamicLPFee on the pool manager, indicating the hook sets a dynamic LP fee per pool; the fee calculation logic and any creatorFeePpm-based sharing could not be determined from bytecode alone.
Owner & admin controls
No admin controls found. The hook exposes register() which maps a pool key to a vault address (storage slot 0 mapping); access to register is not visible in decoded bytecode so it may be permissionless.

Enabled Uniswap v4 callbacks

beforeInitialize, afterInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize and afterInitialize set up per-pool state and vault mapping; beforeSwap and afterSwap run swap-time logic including dynamic fee updates; beforeSwapReturnDelta and afterSwapReturnDelta indicate the hook can take or settle a share of swap amounts via return deltas; liquidity and donate callbacks appear present but are largely stubbed.

Security & trust assessment

Risk level: medium (decoded bytecode, low confidence).

Who controls it: Without visible owner or admin functions the hook appears largely non-custodial, but a dynamic fee setter or a register path without access control could let a party alter fees for pools it is attached to.

Risk to user funds: The hook can alter swap deltas and mint or credit ERC-6909 claims tied to vaults, so it can affect how pool value is split between traders, LPs and the vault, but no direct withdrawal of user funds was identified.

Security findings

  • [medium] Return-delta swap manipulation: The hook uses beforeSwapReturnDelta and afterSwapReturnDelta, so it can alter the amounts exchanged in swaps and take a cut of trades.
  • [medium] Dynamic fee control: The bytecode calls updateDynamicLPFee, so fees are set by hook logic and could be adjusted over time; the exact bounds and who triggers the update are not confirmed.
  • [medium] Possibly unrestricted register function: The register function writes a pool-to-vault mapping in storage slot 0 and no access check was identified in decoded selectors, so any caller may be able to register pools.
  • [low] ERC-6909 claim accounting: Calls to mint and credit on ERC-6909 claims show the hook can hold or mint claim balances on the pool manager on behalf of a vault.
  • [info] Unnamed selectors: Several selectors (e.g. 0x8bf8eeae, 0x987f4f8c) have no known names, so their behaviour is unconfirmed.

Contract details

Verified source
No
Bytecode size
6,793 bytes
Upgradeable proxy
No
Detected patterns
dynamic-fee, erc6909-claims, return-delta

Pools using Dynamic fee hook