Likely fee sharing hook on Ethereum
Uniswap v4 Hook Contract 0xecf1dae13471b8bf443a9bb8db96260dd52960c4 on Ethereum · Fee sharing
- Volume (24h)
- $1.23K
- Value locked (TVL)
- $0
- All-time volume
- $1.23K
- Pools using this hook
- 1
- Swaps (24h)
- 14 (13 traders)
- Total swaps
- 14
What it does
A single-pool hook that takes fixed buy and sell fees from every swap and sends them to a reserve address, with buys and sells possibly paying different rates, while LPs can add and withdraw freely.
How it works step by step
- Binds itself to a single pool on first initialization and refuses any other pool.
- Charges a fee on swaps through the afterSwap return delta, with separate buy and sell fee rates (BUY_FEE_BPS and SELL_FEE_BPS constants).
- Sends collected fees out of the PoolManager to a reserve address and keeps a running tally of swap count, ETH fees and token fees.
- Has an issuer role and a stealth or unveiled flag whose exact effect on swaps cannot be confirmed from bytecode.
- Does not run on liquidity adds or removals, so LPs can deposit and withdraw freely.
- Swap behaviour
- After each swap, the hook takes a fee from the swap amount and sends it to a reserve address, using different buy and sell rates. A beforeSwap check involving a stealth or unveiled state may restrict or change swaps, but its exact logic is not verified.
- Liquidity behaviour
- No liquidity callbacks; LPs can add and withdraw freely.
- Fee behaviour
- A buy fee and a sell fee, set as fixed constants, are deducted from swaps and sent to a reserve address. The exact percentages cannot be read from the decoded data, and buys and sells may pay different rates.
- Owner & admin controls
- An issuer address exists and a NotIssuer error suggests some issuer-only action, but no fee setter was found. The fee rates appear to be constants that cannot be changed.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, afterSwapReturnDelta
beforeInitialize: locks the hook to one pool and records its settings; beforeSwap: checks pool state before trades, possibly a stealth or launch gate; afterSwap: counts swaps and fees; afterSwapReturnDelta: deducts the buy or sell fee from the swap and takes it to the reserve.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, medium confidence).
Who controls it: An issuer address holds some privileged role, likely tied to the stealth or unveil launch state. No function to change fees or drain funds was found, and the contract is not upgradeable.
Risk to user funds: The hook can only take its fixed buy or sell fee from swap amounts. The exact rate is unknown, and LP principal cannot be locked or drained.
Security findings
- [medium] Unverified fee-taking hook: The hook deducts swap fees through return deltas and moves tokens to a reserve, but the exact buy and sell rates cannot be confirmed without source.
- [low] Asymmetric buy and sell fees: Separate buy and sell fee constants mean sellers may pay a different, possibly higher, rate than buyers.
- [info] LP withdrawals unrestricted: Remove-liquidity callbacks are disabled by the address bits, so the hook can never block or tax withdrawals.
Contract details
- Verified source
- No
- Bytecode size
- 3,623 bytes
- Upgradeable proxy
- No
- Detected patterns
- moves-currency, return-delta
Pools using Likely fee sharing hook
- ETH / SHROUD (1.00% fee) — 24h volume $1.23K, TVL $0, 14 swaps today