Likely dynamic fee hook on Robinhood Chain
Uniswap v4 Hook Contract 0xe800447e9e92b485ccb018d93eb3c3d6a7e64080 on Robinhood Chain · Dynamic fee
- Volume (24h)
- $46
- Value locked (TVL)
- $1.02
- All-time volume
- $46
- Pools using this hook
- 1
- Swaps (24h)
- 2 (1 traders)
- Total swaps
- 2
What it does
This hook runs custom logic before each swap and appears to read pool state for time-based configuration, but from the decoded bytecode alone I cannot confirm whether it changes fees or which trades pay more or less.
How it works step by step
- Exposes a manager() view returning the pool manager address the hook is bound to
- Implements beforeSwap, which runs before every swap in a pool using this hook
- Has a register(PoolKey, address) function that stores an address in a mapping keyed by uint256 slot 0, apparently recording per-pool configuration
- Has a WINDOW() view and a getHookPermissions() view, suggesting a time window parameter and standard permission reporting
- Calls extsload on the pool manager, indicating it reads pool state from transient or persistent storage
- Only beforeSwap is enabled from the address permissions, so it cannot alter liquidity or after-swap accounting
- Swap behaviour
- beforeSwap is executed on every swap; the exact fee or logic applied cannot be determined from decoded bytecode alone, but it reads pool state via extsload and a time WINDOW parameter, consistent with a time-dependent or oracle-driven adjustment.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- Uses the pool's static fee as far as the enabled permissions show; no dynamic fee override could be confirmed from the decoded functions, and the beforeSwap return value was not decoded.
- Owner & admin controls
- No admin controls found in the decoded functions; the register function is the only state-writing entry point and its access control could not be determined from bytecode.
Enabled Uniswap v4 callbacks
beforeSwap
beforeSwap is used to run custom logic before each swap, most likely reading pool state and a registered parameter set.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: If register is access-controlled, a privileged key could set the parameter address for pools, altering hook behaviour; the decoded bytecode does not show an owner or upgrade mechanism.
Risk to user funds: beforeSwap has no return-delta permission enabled, so the hook cannot take or move user tokens directly; funds exposure is limited to any fee or price effect it applies during swaps.
Security findings
- [medium] Unverified source: No verified source is available, so the exact logic of beforeSwap and its effect on swap pricing cannot be confirmed from the bytecode.
- [medium] Unrestricted register function: register(PoolKey, address) writes to storage slot 0 and its caller restrictions could not be determined; if unprotected, anyone could bind arbitrary configuration to a pool.
- [info] Pool state reads via extsload: The hook calls extsload on the pool manager to read state, which is a read-only dependency but means its behaviour depends on external pool state.
Contract details
- Verified source
- No
- Bytecode size
- 2,650 bytes
- Upgradeable proxy
- No
Pools using Likely dynamic fee hook
- ETH / CDUIT (Dynamic fee) — 24h volume $46, TVL $1.02, 2 swaps today