Likely custom pricing hook on Ethereum

Uniswap v4 Hook Contract 0x391c836c59e861bee31a5368489907a3408ec088 on Ethereum · Custom pricing

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

This hook takes over part of each swap through a beforeSwap return delta, so traders' fills may differ from the standard curve, though the direction in which it favours trades cannot be determined from the bytecode.

How it works step by step

  • Implements beforeSwap, which can return a delta so the hook itself settles part of the swap instead of the pool's AMM curve
  • Calls take(currency0, currency1, amount) on the PoolManager, so the hook moves token balances in and out of pool accounting
  • Uses three storage slots, two uint256 and one uint32, which likely hold swap state or configuration such as a counter, timestamp or parameters
  • Exposes a view function 0x68111d70 that reads storage slots 0 to 2 for off-chain inspection
  • Exposes a view function 0xc5beaca2 taking (uint256, bool) that returns a value, likely a quote or price calculation tied to the swap direction
Swap behaviour
On each swap, beforeSwap runs first and can return a delta; the hook takes tokens via take() and can fill part or all of the swap itself, so trades routed through this pool may not follow the standard AMM price curve.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Uses the pool's static fee; no fee override selector was decoded, so fees are not set by the hook.
Owner & admin controls
No admin controls found in decoded bytecode; no owner, pause or upgrade selectors were identified.

Enabled Uniswap v4 callbacks

beforeSwap, beforeSwapReturnDelta

beforeSwap: runs before every swap and can return a delta that lets the hook settle the swap amount. beforeSwapReturnDelta: allows the hook's returned delta to alter the amounts the swapper receives or pays.

Security & trust assessment

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

Who controls it: No privileged owner function was identified in the decoded selectors, so centralization risk cannot be fully assessed; any owner or upgrade mechanism hidden in unrecognized code would not be visible here.

Risk to user funds: The hook can take and settle currency through the PoolManager during beforeSwap and can alter swap amounts via its return delta, so it can affect the funds flowing through swaps on this pool.

Security findings

  • [high] Return delta with currency movement: The hook has beforeSwapReturnDelta and calls take() on the PoolManager, so it can take tokens from swap flows and alter what swappers receive; the exact pricing logic cannot be verified without source.
  • [medium] Unverified source: No verified source is available, so the pricing, fund-handling and gating logic is inferred only from decoded selectors and storage.
  • [medium] Unknown pricing logic: The beforeSwap argument layout and the (uint256,bool) view function suggest custom pricing, but the formula and any manipulation resistance cannot be confirmed from bytecode alone.

Contract details

Verified source
No
Bytecode size
1,341 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, return-delta

Pools using Likely custom pricing hook