Dynamic fee hook on Robinhood Chain
Uniswap v4 Hook Contract 0x25e6366c490225358625d941c7b147360b155040 on Robinhood Chain · Dynamic fee
- Volume (24h)
- $324
- Value locked (TVL)
- $435
- All-time volume
- $324
- Pools using this hook
- 1
- Swaps (24h)
- 52 (40 traders)
- Total swaps
- 52
What it does
This hook sets a dynamic LP fee for its pool after each swap, but without verified source it cannot be said which trades pay more or less.
How it works step by step
- Hook receives afterInitialize and afterSwap callbacks from the Uniswap v4 PoolManager
- afterInitialize stores per-pool initial state (a mapping of uint256 keys to int24 values) and fetches or records parameters for the pool
- afterSwap reads stored state and a second int16 mapping and computes a dynamic fee outcome
- Calls updateDynamicLPFee on the PoolManager to push a new LP fee for the pool, indicating the fee is adjusted dynamically based on swap activity
- Exposes view functions for model, modelHash, modelCodeHash, startToken, maximumWords, poolManager and getHookPermissions, suggesting a parameterised model or oracle-like pricing component
- Uses a CALLBACK_GAS_RESERVE constant and a Panic/InvalidConfiguration error set for internal safety checks
- Swap behaviour
- afterSwap runs after each swap, reads stored state and computes a new dynamic fee which it pushes to the pool via updateDynamicLPFee; from the decoded bytecode alone it is not possible to determine which swap direction or trade size pays more or less.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- Dynamic LP fee: the hook calls updateDynamicLPFee on the PoolManager after swaps to set a new fee for the pool; the exact fee formula cannot be determined without source.
- Owner & admin controls
- No admin controls found.
Enabled Uniswap v4 callbacks
afterInitialize, afterSwap
afterInitialize records initial pool state and parameters for the new pool; afterSwap computes and pushes the updated dynamic LP fee after each swap.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: No owner or admin function was identified in the decoded selectors, so no privileged key is apparent; the hook's own logic and any contract it reads from define outcomes.
Risk to user funds: The hook does not appear to take custody of tokens; its main effect is setting the LP fee, which affects amounts received by traders and earned by LPs, and it does not obviously block swaps.
Security findings
- [medium] Hook can change the pool LP fee: afterSwap calls updateDynamicLPFee on the PoolManager, so the hook fully determines the fee charged on subsequent swaps; a bug in the fee formula could set extreme fees.
- [info] No source verification: Contract source is not verified, so the fee formula and any owner or upgrade paths cannot be confirmed from bytecode alone.
- [low] External extsload dependency: The hook calls extsload on a contract, so its behaviour depends on external state that could change.
Contract details
- Verified source
- No
- Bytecode size
- 7,331 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee
Pools using Dynamic fee hook
- ETH / GH0ST (0.30% fee) — 24h volume $324, TVL $435, 52 swaps today