Custom pricing hook on Arbitrum
Uniswap v4 Hook Contract 0x9d8ad5bbe8f39ab8016b85d4c085b588bda52888 on Arbitrum · 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
A Uniswap v4 hook on Arbitrum that appears to manage swap fees and route liquidity to an external Fluid-style liquidity layer, taking a share of swap flow through return deltas.
How it works step by step
- Sets per-pool state during beforeInitialize
- Gates or routes liquidity on beforeAddLiquidity into an external Fluid liquidity layer
- Overrides swap amounts via beforeSwapReturnDelta and settles currency with the PoolManager
- Applies a configurable fee in pips with a fee-exempt list
- Exposes quote and estimate functions for off-chain swap pricing
- Provides sweepDust for residual token recovery
- Swap behaviour
- beforeSwap is enabled with a return delta, so the hook can modify swap amounts and take currency during swaps, with fee logic keyed on feePips and fee-exempt addresses.
- Liquidity behaviour
- beforeAddLiquidity is enabled and the hook exposes fluidLiquidity(), fluidPool() and vault() views, suggesting liquidity is routed into an external Fluid-style liquidity layer; the hook also has after-remove and pseudoTotalValueLocked hooks, but beforeRemoveLiquidity is not enabled by permissions.
- Fee behaviour
- Exposes feePips(), MAX_FEE_PIPS(), FEE_PIPS_DENOMINATOR() and isFeeExempt(address), indicating a hook-managed fee with an exemption list; the actual fee formula and whether the hook overrides the pool fee via beforeSwap return delta could not be fully determined from decoded bytecode.
- Owner & admin controls
- Unverified bytecode exposes sweepDust(address) and a dexCallback(address,uint256) entry point; the storage layout shows a slot written during beforeInitialize (dc98354e), which suggests one-time per-pool setup. No owner, pause or upgrade functions were identified by name, but without source the access control on sweepDust and dexCallback cannot be confirmed.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeSwap, beforeSwapReturnDelta
beforeInitialize: sets per-pool storage at initialization. beforeAddLiquidity: gates or routes liquidity additions, likely into the external liquidity layer. beforeSwap: runs custom swap logic and can take or deliver currency. beforeSwapReturnDelta: lets the hook return a delta that overrides the pool's swap amounts, so it can take a share of swap flow.
Security & trust assessment
Risk level: medium (decoded bytecode, low confidence).
Who controls it: sweepDust(address) can move tokens held by the hook; if it lacks access control or is callable by an operator key, that key could drain residual balances. Fee-exempt list and fee parameters may be adjustable by a privileged role that is not visible in decoded output.
Risk to user funds: The hook can hold tokens, take currency through return deltas on swaps and settle with the PoolManager, and can move residual balances via sweepDust. User funds are exposed if these paths lack proper access control or if fee and routing logic is misconfigured.
Security findings
- [medium] Return delta can skim swap flow: The hook is permitted to return a delta from beforeSwap and its bytecode calls take/settle/sync on the PoolManager, so it can take a portion of every swap's currency.
- [medium] Unverified dust sweep function: sweepDust(address) is a nonpayable external function; its caller restriction could not be verified without source, so unauthorised token extraction cannot be ruled out.
- [medium] Callback trust surface: dexCallback(address,uint256) and swapInWithCallback/swapOutWithCallback selectors indicate the hook performs token transfers within callbacks; correctness of callback validation (caller checks) is unknown.
- [info] No verified source: The hook is not source-verified, so names, owners and upgrade paths are inferred from selectors only.
Contract details
- Verified source
- No
- Bytecode size
- 16,058 bytes
- Upgradeable proxy
- No
- Detected patterns
- moves-currency, return-delta
Pools using Custom pricing hook
- USDC / USD₮0 (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today