Likely dynamic fee hook on Monad
Uniswap v4 Hook Contract 0x62070a800ec33605159af38de113e3cbb14900c0 on Monad · Dynamic fee
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 1
What it does
A Uniswap v4 hook that appears to run custom logic around swaps for a pool with a fixed LP fee, but without verified source its exact behaviour cannot be fully confirmed.
How it works step by step
- Registers pools through initializePool and records pool creation state keyed by pool id
- Exposes FIXED_LP_FEE() indicating the pool uses a fixed LP fee
- Executes beforeSwap and afterSwap callbacks on each swap
- Rejects pools that use native ETH as a currency via ETHPoolNotAllowed
- Implements an ERC-165 supportsInterface check and a getHookPermissions getter
- Swap behaviour
- Runs beforeSwap and afterSwap callbacks on every swap in the pool.
- Liquidity behaviour
- Implements beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity selectors in the dispatch table, but the hook permissions only enable swap callbacks, so these are not active.
- Fee behaviour
- Exposes FIXED_LP_FEE() and pools are initialized via initializePool, suggesting a fixed LP fee set at pool creation rather than a dynamic fee; the exact fee value cannot be determined from the decoded input.
- Owner & admin controls
- No admin controls found.
Enabled Uniswap v4 callbacks
beforeSwap, afterSwap
beforeSwap: runs before each swap and may perform checks or logic on the swap parameters. afterSwap: runs after each swap and may record or adjust state based on the swap result.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: No owner or privileged role was identified in the decoded functions, so no obvious privileged key capability was found.
Risk to user funds: Based on the enabled permissions only beforeSwap and afterSwap, the hook does not appear to take or return token deltas, so it likely cannot hold or directly move pool funds; this cannot be fully confirmed without source.
Security findings
- [info] Per-pool state tracked on initialization: The contract stores pool-level state (a mapping of pool ids to a boolean, and a pool creation timestamp mapping) written during initializePool, indicating it tracks per-pool configuration.
- [info] ETH pools explicitly disallowed: The bytecode contains a revert path for ETHPoolNotAllowed, meaning pools with native ETH as a currency are rejected at initialization.
- [low] Unverified swap-time logic: Swap callbacks are enabled, so the hook executes logic on every swap; without source the exact logic in beforeSwap and afterSwap cannot be verified for correctness.
Contract details
- Verified source
- No
- Bytecode size
- 3,868 bytes
- Upgradeable proxy
- No
Pools using Likely dynamic fee hook
- LVMON / D7Z9 (1.00% fee) — 24h volume $0, TVL $0, 0 swaps today