Dynamic fee hook on Robinhood Chain
Uniswap v4 Hook Contract 0x54774e684c0ca9755d2697fbc71ac3dfa13f6aec on Robinhood Chain · Dynamic fee
- Volume (24h)
- $4.79
- Value locked (TVL)
- $0.05
- All-time volume
- $4.79
- Pools using this hook
- 1
- Swaps (24h)
- 2 (1 traders)
- Total swaps
- 2
What it does
This hook sets a dynamic fee on swaps and splits fees between creator, protocol and LPs, with a privileged operator able to control its launch lifecycle and move the reserve held by the hook.
How it works step by step
- Hook is a Uniswap v4 pool hook with beforeInitialize, liquidity, swap, donate and return-delta callbacks enabled, and it can take or give currency via beforeSwap and afterSwap return deltas.
- beforeSwap is selector-gated and appears to set a dynamic LP fee via updateDynamicLPFee, which is a dynamic-fee mechanism.
- Stores a time-windowed structure (windowCount, window(uint256), MAX_DURATION) and a fee policy version, suggesting fees or pricing are computed per time window.
- Contains a self-unlock path (unlock/unlockCallback, take, transferFrom, transfer) so the hook itself performs pool-manager accounting and token movement.
- Exposes creator and protocol fee parameters (creatorFeeBps, protocolFeeBps, PROTOCOL_FEE_BPS, publicFee) that indicate fees are split between a creator, the protocol and LPs.
- Includes a launch/lifecycle state machine (initialized, isLive, finish, abort, fund, withdraw), a reserve, and artwork/hash getters, so it looks like a launch or auction-style pool with owner-driven state transitions.
- Swap behaviour
- beforeSwap and afterSwap are both active and can return deltas; beforeSwap likely computes a dynamic fee and may adjust pricing or currency flows, afterSwap may settle fee shares or reserve movements. Exact direction-dependent fee logic cannot be determined without source.
- Liquidity behaviour
- beforeAddLiquidity and beforeRemoveLiquidity are gated (they can revert based on liquidity state such as isLive or initialized); liquidity module and ownedLiquidity suggest the hook may hold or manage its own liquidity position.
- Fee behaviour
- Dynamic LP fee set through updateDynamicLPFee in the swap path, with creator and protocol fee shares (creatorFeeBps, protocolFeeBps, PROTOCOL_FEE_BPS) and a publicFee value; exact fee formula cannot be determined from decoded bytecode.
- Owner & admin controls
- Owner/executor-style controls appear present (executor, creator, manager, finish, abort, withdraw, and state-changing selectors such as 821ad3a7 and d353a1cb); exact roles and any upgrade or pause logic cannot be confirmed from bytecode alone.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeDonate, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize: validates or records pool initialization; beforeAddLiquidity and beforeRemoveLiquidity: gate or account liquidity changes; beforeSwap: sets dynamic fee and may return a swap delta; afterSwap: settles fees or accounting and may return a delta; beforeDonate: gates donations; beforeSwapReturnDelta and afterSwapReturnDelta: allow the hook to take or give currency during swaps.
Security & trust assessment
Risk level: high, estimated (decoded bytecode, low confidence).
Who controls it: A privileged executor or owner key could likely change fee parameters, end or abort the lifecycle, and withdraw funds held by the hook, affecting both traders and LPs.
Risk to user funds: The hook holds reserve and liquidity and can move currency through return-delta accounting and self-unlock token transfers, so user and pool funds are exposed to the hook's logic and its privileged operators.
Security findings
- [high] Return deltas let the hook take currency from swaps: beforeSwapReturnDelta and afterSwapReturnDelta are enabled and the bytecode contains take, transfer and transferFrom selectors, so the hook can move user or pool funds as part of a swap.
- [medium] Privileged state transitions: Selectors for finish, abort, withdraw and fund indicate an operator can end, cancel or withdraw from the hook's lifecycle, which could affect LP and trader outcomes.
- [medium] Dynamic fee set by hook logic: updateDynamicLPFee is called from the swap path, so the hook can change the fee applied to trades; the upper bound and who controls it cannot be verified from bytecode.
- [info] No source verification: Analysis is based on decoded bytecode only; function names and exact logic are inferred from selectors and storage access.
Contract details
- Verified source
- No
- Bytecode size
- 22,740 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, erc20, fee-sharing, moves-currency, return-delta, self-unlock
Pools using Dynamic fee hook
- ETH / test (Dynamic fee) — 24h volume $4.79, TVL $0.05, 2 swaps today