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
- USDC / USDC (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / ARGUS (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / PANCHU (0.00% fee) — 24h volume $0, TVL <$0.01, 0 swaps today
- USDC / FAZE (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / VIRTUAL (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- MI / USDC (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- cirBTC / USDC (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- CRCL / USDC (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / EURC (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today