Likely access control hook on Ethereum

Uniswap v4 Hook Contract 0xbc22c986073c81f5f4c93d48d2fc547c59ba6040 on Ethereum · Access control

Volume (24h)
$5.46
Value locked (TVL)
$41
All-time volume
$5.46
Pools using this hook
2
Swaps (24h)
8 (1 traders)
Total swaps
8

What it does

The hook links two pools of the same token and, after each swap, may arbitrage between them and share the profit with the swapper, LPs and a treasury, while traders still pay only the pool's normal static fee.

How it works step by step

  • Links two pools of the same token (pool A and pool B) that use different fee tiers.
  • After a trader swaps, the hook checks the price gap between the two pools and may run an arbitrage swap between them inside the same transaction.
  • Any arbitrage profit above a minimum threshold appears to be split: part donated to pool LPs, part to the swapper, and possibly part to a treasury.
  • Only accepts initialization for its two configured pools; other pools are rejected.
  • The owner can pause the arbitrage logic.
Swap behaviour
Your swap runs normally at the pool's fee. Afterwards the hook may make its own extra swap across the paired pool to capture a price gap, and it can share any profit with the swapper, LPs and treasury. It cannot take tokens from your swap because return deltas are disabled.
Liquidity behaviour
No liquidity callbacks; LPs can add and withdraw freely. LPs may receive extra income when the hook donates arbitrage profit to the pool.
Fee behaviour
Uses each pool's static fee (fee A and fee B are fixed constants). Arbitrage profits appear to be split by fixed shares for LPs and the swapper, with the rest likely going to a treasury; exact percentages cannot be read from bytecode.
Owner & admin controls
The owner can pause or unpause the post-swap arbitrage and transfer or renounce ownership. No fee-setting or withdrawal functions were found.

Enabled Uniswap v4 callbacks

beforeInitialize, afterSwap

beforeInitialize: restricts the hook to its two known pools; afterSwap: checks the cross-pool price gap and may run an arbitrage swap, take profit and donate it.

Security & trust assessment

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

Who controls it: A single owner can toggle pause and transfer ownership. They cannot change fees or withdraw pool funds based on visible functions.

Risk to user funds: The hook only moves its own arbitrage proceeds via take and donate; it cannot deduct from user swaps or LP principal. LP withdrawals are unrestricted.

Security findings

  • [low] Owner pause switch: The owner can pause the hook's arbitrage step. Pausing appears to only skip arbitrage, not block trading, though this cannot be fully confirmed from bytecode.
  • [info] No fund-taking deltas: Swap and liquidity return deltas are disabled, so the hook cannot deduct tokens from trades or LP positions.
  • [info] LP withdrawals unrestricted: Remove-liquidity callbacks are disabled, so LPs can always withdraw.

Contract details

Verified source
No
Bytecode size
11,701 bytes
Upgradeable proxy
No
Detected patterns
donates, moves-currency, ownable, pausable

Pools using Likely access control hook