flETHHooks on Base
Uniswap v4 Hook Contract 0x9e433f32bb5481a9ca7dff5b3af74a7ed041a888 on Base · Utility · Verified contract
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 71 (34 traders)
- Total swaps
- 449,198
What it does
Acts as a 1:1 ETH to flETH swap router inside a Uniswap v4 pool, converting between the two at a fixed rate and blocking liquidity provision.
How it works step by step
- Restricts the pool to native ETH paired with flETH and requires a zero fee at initialization
- Blocks all direct liquidity additions by reverting in beforeAddLiquidity
- Takes swap input from the PoolManager and converts it through the flETH contract (deposit or withdraw)
- Settles output currency back to the PoolManager, sending ETH or flETH as required
- Returns a before-swap delta that no-ops the normal pool curve so pricing is strictly 1:1
- Swap behaviour
- On every swap the hook takes the input token from the PoolManager, wraps ETH into flETH or unwraps flETH into ETH, settles the output to the PoolManager, and returns a delta that cancels the concentrated liquidity curve so the swap is exactly 1:1.
- Liquidity behaviour
- beforeAddLiquidity always reverts with CannotAddLiquidity, so no liquidity can be added directly to the pool. No remove-liquidity callbacks are enabled.
- Fee behaviour
- Pool fee must be zero (enforced in beforeInitialize, reverts FeeMustBeZero otherwise). The hook takes no fee of its own; swaps are a 1:1 conversion between ETH and flETH.
- Owner & admin controls
- No admin controls found. The contract has no owner, pausing or upgrade mechanism; flETH and poolManager are set once as immutables in the constructor.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeSwap, beforeSwapReturnDelta
beforeInitialize restricts pools to ETH/flETH with zero fee; beforeAddLiquidity blocks liquidity provision; beforeSwap performs the 1:1 conversion and no-ops the curve via return delta; beforeSwapReturnDelta lets the hook override the swap amounts.
Security & trust assessment
Risk level: low (verified source, high confidence).
Who controls it: No privileged key is present in the source, so no single party can change hook behaviour after deployment. Behaviour depends only on the immutable flETH token contract, which is assumed to be a 1:1 wrapper.
Risk to user funds: The hook transiently holds swap input via take() before wrapping or unwrapping through flETH and settling output to the PoolManager. It has no withdrawal function for arbitrary tokens, and receive() only accepts ETH from flETH or the PoolManager in practice, so user funds are not held long term by the hook.
Security findings
- [info] Hook moves currency via return delta: beforeSwap takes the input amount from the PoolManager and returns a delta that fully overrides the pool curve, so the hook directly custodies and moves pool currency during swaps.
- [low] Fixed 1:1 pricing depends on flETH solvency: Swaps are priced 1:1 regardless of pool state, so any mismatch between flETH backing and ETH reserves would be absorbed by the flETH contract rather than the hook.
- [info] Unchecked amount casts: Exact-output swaps use uint(params.amountSpecified) and the delta is cast to int128 without bounds checks; extreme amounts could revert but do not appear to create an exploitable path given the PoolManager settlement.
Contract details
- Verified source
- Yes (flETHHooks)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 4,883 bytes
- Upgradeable proxy
- No
- Detected patterns
- moves-currency, return-delta
Pools using flETHHooks
- ETH / flETH (0.00% fee) — 24h volume $0, TVL $0, 71 swaps today