Hook 0x1d9e…a888 on Arbitrum

Uniswap v4 Hook Contract 0x1d9e92e2120558d3d80b7463bdeb0094f3aea888 on Arbitrum · Other

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 Uniswap v4 hook on Arbitrum that applies a configurable pips-based fee with exemptions and routes swap and liquidity settlement against an external pair, based on decoded bytecode without verified source.

How it works step by step

  • Hooks beforeInitialize to register pool-to-external-pair mappings.
  • Hooks beforeAddLiquidity to run checks or accounting before liquidity is added.
  • Hooks beforeSwap to compute a pips-based fee with an exemption list and adjust swap deltas.
  • Uses take, settle and sync against the pool manager and an external pair.
  • Exposes quote functions (quote, quoteFor) and a pseudo total value locked view.
  • Provides sweepDust to move residual token balances.
Swap behaviour
beforeSwap is active: it applies fee logic with exemptions and uses return delta to settle swap amounts against an external pair via take, settle and sync calls.
Liquidity behaviour
beforeAddLiquidity and afterRemoveLiquidity-style callbacks are present along with pseudoTotalValueLocked and poolIdToExternalPair mappings, suggesting the hook tracks or mirrors liquidity against an external pair (getPair, getReserves, sync, token0/token1 selectors in bytecode).
Fee behaviour
Exposes fee(), feePips(), MAX_FEE_PIPS and FEE_PIPS_DENOMINATOR with an exemption list (exempt0-3, isFeeExempt); fee logic appears to be a configurable pips-based fee with exemptions, likely applied in beforeSwap. Exact computation cannot be confirmed without source.
Owner & admin controls
No owner or admin functions detected in the dispatched selectors; sweepDust(address) is callable and appears to forward dust tokens, with unclear access restriction from bytecode alone. Parameters such as fee and feePips are exposed as views, not setters.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap, beforeSwapReturnDelta

beforeInitialize: records pool initialization data and mappings. beforeAddLiquidity: runs checks or bookkeeping before liquidity is added. beforeSwap: executes fee or quoting logic for swaps and uses return delta to adjust the swap amounts.

Security & trust assessment

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

Who controls it: sweepDust is externally callable and can move tokens held by the hook; if access is not restricted, anyone could trigger dust transfers, and any privileged role controlling fee exemptions or pips would affect swap pricing for users.

Risk to user funds: The hook takes and settles tokens through the pool manager and external pair during swaps, and can sweep token balances held by the contract; funds are exposed if sweepDust is permissionless or if the external pair logic is manipulable.

Security findings

  • [medium] Return delta controls swap settlement: beforeSwapReturnDelta permission means the hook can modify the swap amounts and take or deliver tokens, which gives it direct control over trade settlement.
  • [medium] Hook moves currency: Bytecode references take, settle, sync and swap selectors, so the hook moves currency to and from the pool manager and an external pair.
  • [medium] Unverified access on sweepDust: sweepDust(address) is a state-changing function; without source the access control cannot be verified.
  • [info] Fee configuration exposure: Fee parameters and exemption lists are present; a privileged party could change exemptions or fee values if setters exist, though none are visible in the dispatched selectors.

Contract details

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

Pools using Hook 0x1d9e…a888