Likely dynamic fee hook on Unichain

Uniswap v4 Hook Contract 0xa6c8d7514785c4314ee05ed566cb41151d43c0c0 on Unichain · Dynamic fee

Volume (24h)
$0
Value locked (TVL)
$2.50
All-time volume
$3.11
Pools using this hook
5
Swaps (24h)
0 (0 traders)
Total swaps
504

What it does

A Uniswap v4 hook that runs logic before and after swaps, with a poolManager reference and an unlockCallback entry point; the exact swap-time behaviour cannot be fully determined without source.

This read was written for the hook 0xa6c8…c0c0 on Ethereum and reused here: the two run the same code.

How it works step by step

  • Implements the IHooks interface, exposing beforeSwap and afterSwap callbacks invoked by the PoolManager on every swap in pools using this hook.
  • Exposes getHookPermissions() and poolManager() views, indicating it is bound to a specific PoolManager and advertises its enabled callbacks.
  • Contains an unlockCallback(bytes) entry point, which the PoolManager calls back into during an unlock session, suggesting the hook can perform its own pool-manager accounting operations (for example settling or taking balances).
  • Includes a HookNotImplemented() revert path, which is the standard guard for callbacks the hook has not enabled.
  • Declares the other IHooks callbacks (initialize, liquidity, donate) as stubs, but only swap callbacks are enabled by the address permissions.
Swap behaviour
beforeSwap and afterSwap are both enabled and dispatched. Their concrete logic cannot be recovered from the decoded selectors alone, so the specific checks, fee adjustments or accounting performed during swaps are unknown.
Liquidity behaviour
No liquidity callbacks are enabled by the hook permissions; the liquidity-related selectors are present as IHooks interface stubs.
Fee behaviour
Unknown. The hook has beforeSwap and afterSwap but no verified source, so it cannot be determined whether it overrides the pool fee or takes a fee via return deltas.
Owner & admin controls
No admin controls found in the decoded functions. No owner, pause, or upgrade selectors were identified, though a proxy or access-controlled storage cannot be ruled out from the inferred empty storage layout.

Enabled Uniswap v4 callbacks

beforeSwap, afterSwap

beforeSwap: runs pre-swap logic on every swap in the pool. afterSwap: runs post-swap logic after amounts are settled, used for accounting or reacting to the swap result.

Security & trust assessment

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

Who controls it: No privileged owner or admin functions were identified in the decoded selectors, so centralization risk appears low, but this cannot be confirmed without source.

Risk to user funds: The hook is invoked on every swap in its pools and has an unlockCallback that interacts with the PoolManager, so in principle it could hold, move or block funds via return deltas or settlement, but the actual behaviour is unknown without source.

Security findings

  • [medium] Unverified source: No verified source is available, so the actual logic inside beforeSwap and afterSwap, and the unlockCallback, cannot be audited by reading code.
  • [info] Swap-time callbacks enabled: beforeSwap and afterSwap run on every swap in any pool using this hook, so any bug or revert in them can block trading in those pools.
  • [medium] Unlock callback can move pool balances: unlockCallback is reachable by the PoolManager during an unlock session and the hook can call back into the pool manager, so it may settle or take funds; the exact flow is unknown without source.
  • [info] No storage detected: The inferred storage layout is empty, which suggests no owner or configurable state, though this is inferred from decoding rather than confirmed.

Contract details

Verified source
No
Bytecode size
2,488 bytes
Upgradeable proxy
No
Detected patterns
self-unlock

Pools using Likely dynamic fee hook