Fee sharing hook on Ethereum
Uniswap v4 Hook Contract 0xe10a3dd37083c545ee5e3986be9a578173750888 on Ethereum · Fee sharing
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 0
What it does
A fee-sharing hook that takes a portion of swap value through return deltas, gates which liquidity can be added, holds its own LP position, and lets its owner collect accrued fees.
How it works step by step
- Gates liquidity additions in beforeAddLiquidity, likely through an address mapping
- Runs custom accounting in beforeSwap and tracks total swaps and ETH volume
- Uses return deltas to take a share of swap value during swaps
- Accrues fees in storage and pays them out via claimFees to a fee recipient
- Holds its own liquidity position with configurable tick bounds and can remove it via removeLP
- Exposes owner-only rescue of stuck ERC20 tokens
- Swap behaviour
- beforeSwap runs custom logic on each swap and updates swap and volume counters; beforeSwapReturnDelta lets the hook adjust swap deltas to take a fee share.
- Liquidity behaviour
- beforeAddLiquidity gates incoming liquidity (a mapping of addresses to a boolean, possibly an allowlist, is written in the function that touches the pool) and the hook itself holds a liquidity position (lpInfo, lpPoolId, hookLiquidity, removeLP), with tick bounds tickLower and tickUpper.
- Fee behaviour
- The hook accrues fees (accruedFees, claimFees, feeRecipient selectors present) and uses beforeSwapReturnDelta, implying it can take a portion of swap output or input via return deltas and route it to a fee recipient; the exact fee rate could not be determined without source.
- Owner & admin controls
- Owner (slot 0) can transferOwnership, renounceOwnership, call rescueStuckTokens(token,amount,to) to withdraw tokens held by the hook, and removeLP(address) to remove the hook's liquidity position; owner-only gating is inferred from the NotOwner error selector and the write pattern to slot 0. No pause or upgrade mechanism was identified.
Enabled Uniswap v4 callbacks
beforeAddLiquidity, beforeSwap, beforeSwapReturnDelta
beforeAddLiquidity: runs a check before liquidity is added, likely gating which LPs may deposit. beforeSwap: runs custom logic before each swap, which appears to update swap counters and volume stats. beforeSwapReturnDelta: lets the hook alter the swap's deltas, which is how it takes or shares fees from swaps.
Security & trust assessment
Risk level: medium (decoded bytecode, low confidence).
Who controls it: The owner can withdraw any ERC20 balance held by the hook, remove the hook's own LP position, and transfer or renounce ownership, so a privileged key controls the hook's assets and the fee destination.
Risk to user funds: The hook can hold tokens and a liquidity position, and it can take value from swaps via return deltas; the owner can withdraw hook-held tokens and remove its liquidity, so user funds in the pool are exposed to the hook's fee logic and owner actions.
Security findings
- [medium] Hook takes value from swaps via return deltas: beforeSwapReturnDelta lets the hook change the swap's amounts and move currency, so the hook can take a share of each swap's output.
- [medium] Owner can withdraw hook-held assets: rescueStuckTokens and removeLP are gated to the owner and can move tokens and liquidity held by the hook.
- [low] Self-unlock pattern moves currency: The hook calls the pool manager's unlock/take functions, so it can settle currency movements during callbacks.
- [info] Limited verification: Without verified source, the exact fee rate, recipient logic and allowlist behaviour cannot be confirmed from the bytecode alone.
Contract details
- Verified source
- No
- Bytecode size
- 15,839 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc20, fee-sharing, moves-currency, ownable, return-delta, self-unlock
Pools using Fee sharing hook
- ETH / BID (1.00% fee) — 24h volume $0, TVL $0, 0 swaps today