Likely custom pricing hook on BNB Chain

Uniswap v4 Hook Contract 0x75ef8b084ecb9e4bbf640730b92fdce20aff10cc on BNB Chain · Custom pricing

Volume (24h)
$0
Value locked (TVL)
$1.97
All-time volume
$22.27K
Pools using this hook
4
Swaps (24h)
0 (0 traders)
Total swaps
252

What it does

A custom-accounting hook that manages protocol-owned liquidity for a Uniswap v4 pool, using a liquidity manager and fee notifications while adjusting swap amounts via return deltas.

How it works step by step

  • Hooks into pool initialization to set up per-pool fee and oracle state
  • Applies before and after swap logic that can adjust swap amounts through return deltas
  • Deposits liquidity into and withdraws liquidity from an external FRLM liquidity manager
  • Reinvests accumulated fees back into the pool, gated by a pause flag
  • Notifies the fee manager of fee events and tracks a protocol-owned liquidity share
Swap behaviour
Runs beforeSwap and afterSwap logic that checks the reinvestment pause flag and fee state, and uses return deltas to adjust swap amounts.
Liquidity behaviour
Liquidity add and remove callbacks are implemented as hooks (beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity, afterRemoveLiquidity). Deposit and withdraw functions move liquidity to and from a FRLM (liquidity manager) contract. Hook reinvests accrued fees back into the pool via reinvest.
Fee behaviour
Hook returns a before-swap fee and after-swap return deltas; fee state is read via getFeeState and fee notifications are sent with notifyFee, suggesting a managed dynamic fee and protocol-owned liquidity share. Exact fee formula could not be determined.
Owner & admin controls
Owner-gated functions are present (owner() is called externally, UnauthorizedCaller error exists). setReinvestmentPaused(bool) toggles a pause flag in slot 0 that gates the swap-path logic. Reinvestment, FRLM deposit/withdraw and dynamic fee manager/policy manager addresses appear to be set or used by privileged roles; exact setter authorization could not be confirmed from bytecode alone.

Enabled Uniswap v4 callbacks

afterInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

afterInitialize: sets up pool state and oracle/liquidity manager linkage. beforeSwap: pre-swap logic including fee and reinvestment pause checks. afterSwap: post-swap accounting and fee notification. beforeSwapReturnDelta and afterSwapReturnDelta: the hook can take or give tokens against the swap, so it can alter swap amounts.

Security & trust assessment

Risk level: medium, estimated (decoded bytecode, low confidence).

Who controls it: Privileged keys can pause reinvestment, deposit and withdraw liquidity through the FRLM, and likely configure fee and policy managers. A compromised owner could redirect protocol-owned liquidity or influence fee outcomes affecting swappers and LPs.

Risk to user funds: The hook can hold and move pool and LP funds indirectly through FRLM deposit and withdraw calls and reinvest, and its return deltas alter swap amounts. Pausing reinvestment can block fee compounding but does not obviously lock user principal.

Security findings

  • [medium] Return-delta hook alters swap accounting: afterSwap and beforeSwap return deltas allow the hook to take tokens from or give tokens to swaps, so swap output can differ from the pool's standard curve result.
  • [medium] Privileged control over liquidity movement: An owner-controlled setReinvestmentPaused flag and external liquidity manager calls mean privileged roles influence where pool liquidity goes.
  • [medium] Trust in external managers: Selectors indicate owner() and external managers (policyManager, dynamicFeeManager, liquidityManager) whose addresses are not verified, so trust is placed in those contracts.
  • [info] Unverified source: No verified source is available, so behaviour is inferred from selectors and storage access only.

Contract details

Verified source
No
Bytecode size
9,379 bytes
Upgradeable proxy
No
Detected patterns
return-delta

Pools using Likely custom pricing hook