Dynamic fee hook on BNB Chain
Uniswap v4 Hook Contract 0x63032cfb2e2ca4369141f81cc353df824c3f0044 on BNB Chain · Dynamic fee
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $1.89M
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 39,816
What it does
A dynamic-fee hook for a Uniswap v4 pool on BNB Chain that adjusts the LP fee and takes a share of swap output after each trade.
How it works step by step
- Runs custom logic in afterSwap after every swap
- Calls updateDynamicLPFee on the pool manager to set the LP fee
- Uses afterSwapReturnDelta to claim a portion of the swap's output currency
- Calls take to withdraw that currency from the pool manager
- Stores an admin address in slot 0 that can be reassigned through assign(address)
- Stores a configuration value that is read during swaps and set through selector 0xe2ff687d
- Swap behaviour
- After each swap the hook runs its afterSwap logic, can adjust the LP fee through updateDynamicLPFee, and takes currency through afterSwapReturnDelta.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- The hook calls updateDynamicLPFee on the pool manager, indicating it sets a dynamic LP fee for the pool, with the fee value likely supplied by a stored parameter set through selector 0xe2ff687d (address,uint16).
- Owner & admin controls
- A stored address in slot 0 can be set through assign(address), which appears to gate the other privileged setter; the owner-style key can update configuration and likely changes a fee-related parameter via selector 0xe2ff687d (address,uint16). Exact access checks cannot be confirmed without source.
Enabled Uniswap v4 callbacks
afterSwap, afterSwapReturnDelta
afterSwap is used to run custom logic after each swap, and afterSwapReturnDelta lets the hook take a share of the swap's output currency via the take call.
Security & trust assessment
Risk level: medium (decoded bytecode, low confidence).
Who controls it: The privileged address stored in slot 0 can reassign itself through assign(address) and may be able to change the stored fee parameter, which would alter swap pricing for all users of the pool.
Risk to user funds: The hook can receive a share of swap output through return-delta accounting and take currency from the pool manager, so it can capture value from swaps; it does not appear to hold user liquidity directly.
Security findings
- [medium] Hook takes swap currency: The hook can take currency from the swap via afterSwapReturnDelta and the take call, so a portion of swap flows is redirected to the hook.
- [medium] Single privileged address controls parameters: Slot 0 holds an address that is written by assign(address) and read by the setter, so a single key controls configuration with no visible timelock.
- [info] Access checks unverified: Without verified source, the exact access control on assign(address) and the fee setter cannot be confirmed from the bytecode alone.
Contract details
- Verified source
- No
- Bytecode size
- 1,561 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, moves-currency, return-delta
Pools using Dynamic fee hook
- DOYR / U (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today