Dynamic fee hook on Robinhood Chain

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

Volume (24h)
$24.08K
Value locked (TVL)
$49.50K
All-time volume
$369.59K
Pools using this hook
12
Swaps (24h)
488 (144 traders)
Total swaps
1,863

What it does

A Uniswap v4 hook that runs logic on pool initialization, liquidity changes and swaps, tracking per-pool state such as launch tick and ownership, though its exact purpose cannot be fully confirmed without verified source.

How it works step by step

  • Initializes per-pool state (tick, owner, related flags) in afterInitialize
  • Checks or restricts liquidity additions in beforeAddLiquidity
  • Checks or restricts liquidity removals in beforeRemoveLiquidity
  • Runs pre-swap logic in beforeSwap and updates an accumulator in afterSwap
  • Exposes getters for pool owner, launch tick and lock status
Swap behaviour
beforeSwap and afterSwap are implemented and update per-pool state; swaps may be restricted or adjusted based on that state, exact behaviour is not confirmed.
Liquidity behaviour
beforeAddLiquidity and beforeRemoveLiquidity are implemented and read per-pool state (locked, pool owner mapping); the hook may restrict liquidity actions for a pool, though the exact conditions are unconfirmed.
Fee behaviour
Could not be fully determined from decoded bytecode. The hook has a poke function and storage that tracks launchTick and per-pool state, suggesting some fee or pricing logic tied to pool state, but the exact fee formula is unknown.
Owner & admin controls
Unverified bytecode: selectors suggest a poolOwner(bytes32) getter and a poke function, but no owner-restricted setter has been confirmed. Any pool-owner or privileged role cannot be fully determined without source.

Enabled Uniswap v4 callbacks

afterInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap

afterInitialize: records per-pool initialization data (tick, owner, and related state) when a pool is created. beforeAddLiquidity: gates or inspects liquidity additions. beforeRemoveLiquidity: gates or inspects liquidity removals. beforeSwap: runs pre-swap logic, possibly reading or updating pool state. afterSwap: updates per-pool state after each swap, including a uint64 accumulator.

Security & trust assessment

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

Who controls it: Unclear. A poolOwner mapping and a poke function may give an address influence over pool parameters; the extent cannot be confirmed without source.

Risk to user funds: The hook does not appear to hold tokens itself based on the decoded functions, but its callbacks can revert or influence swap and liquidity operations, which can block users' funds from moving normally.

Security findings

  • [medium] Hook can gate swaps and liquidity actions: The hook can revert liquidity and swap operations through its before-callbacks, so it could block trading if its internal conditions are triggered or misconfigured.
  • [info] Pool state gating via storage mappings: Callbacks read and write several mappings keyed by pool id, with a locked flag and a launchTick value; the logic depends on state that cannot be fully verified from bytecode.
  • [info] Reads PoolManager state: Uses extsload and PoolManager interactions; it does not appear to custody user tokens directly, but it could affect swap outcomes through pool state changes.
  • [info] Unverified source: No verified source is available, so the presence and scope of any owner-only functions cannot be confirmed.

Contract details

Verified source
No
Bytecode size
6,873 bytes
Upgradeable proxy
No

Pools using Dynamic fee hook