Likely fee sharing hook on Arc

Uniswap v4 Hook Contract 0x9ca6d7d6e87cb8e868eacc372a2d8aa80d7b00c4 on Arc · Access control

Volume (24h)
$0
Value locked (TVL)
<$0.01
All-time volume
$667.95K
Pools using this hook
9
Swaps (24h)
0 (0 traders)
Total swaps
7,182

What it does

A Uniswap v4 hook that intercepts swaps to take a configurable fee share and distribute it between a creator and the owner, with owner-controlled pausing and whitelisting.

How it works step by step

  • Runs beforeSwap logic to gate or configure swaps per pool
  • Runs afterSwap logic and uses return deltas to take a share of swap amounts
  • Splits collected value between creator and owner using BPS parameters
  • Lets the owner pause the hook and toggle a whitelist-only mode
  • Maintains trusted router and origin allowlists
  • Allows owner-gated withdrawal of accumulated tokens
Swap behaviour
beforeSwap and afterSwap run on every swap; afterSwap can adjust swap deltas to take a fee, and the owner can pause or whitelist swapping.
Liquidity behaviour
No liquidity callbacks are enabled in the hook permissions; the liquidity selectors present are not part of the enabled callback set.
Fee behaviour
Fees are configured by owner-set BPS parameters (creator and owner shares) and per-pool fee settings; a fee recipient is settable. Exact fee formula cannot be determined without source.
Owner & admin controls
Owner (slot 0) can transfer ownership, set fee recipient, pause (setPaused), toggle whitelist, manage trusted routers and origins, set creator/owner BPS splits, gas threshold, flags and per-pool fee parameters, and withdraw funds via withdraw(address,address,uint256).

Enabled Uniswap v4 callbacks

beforeSwap, afterSwap, afterSwapReturnDelta

beforeSwap: pre-swap logic gating or configuring swaps per pool. afterSwap: post-swap accounting, likely taking a fee or share via return delta. afterSwapReturnDelta: lets the hook alter the swap's output or input amounts after the swap, meaning it can take tokens from the swap.

Security & trust assessment

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

Who controls it: The owner can pause the hook, change fee splits and BPS parameters, change trusted routers and origins, set the fee recipient, and withdraw tokens, so a compromised owner key could redirect fees or drain funds the hook holds.

Risk to user funds: The hook can take tokens through return deltas on swaps and holds balances it can withdraw via an owner-gated withdraw function, and the owner can pause or restrict swaps, so user swap funds and accrued fees are exposed to owner action.

Security findings

  • [high] Hook holds and withdraws swap proceeds: afterSwapReturnDelta lets the hook take a share of swap amounts, and the contract contains a withdraw function callable by the owner.
  • [medium] Owner can pause or restrict swaps: Owner can call setPaused and setWhitelistOnly, which can block or restrict swaps for users.
  • [medium] Owner can change fee split parameters: Owner can change creator/owner BPS splits and fee recipient, shifting fee distribution without user consent.
  • [info] ERC20 token movement: Contract includes a transfer and balance-based withdraw path with a SafeERC20 error selector, indicating it moves ERC20 tokens.

Contract details

Verified source
No
Bytecode size
19,222 bytes
Upgradeable proxy
No
Detected patterns
erc20, moves-currency, ownable, return-delta

Pools using Likely fee sharing hook