Fee sharing hook on Ink

Uniswap v4 Hook Contract 0xa506ed2d09a164e5d12993b34f4eb1d01ad46ac8 on Ink · Fee sharing

Volume (24h)
$0
Value locked (TVL)
$1.02
All-time volume
$20
Pools using this hook
19
Swaps (24h)
0 (0 traders)
Total swaps
516

What it does

This hook is an upgradeable proxy that takes a share of swaps through return deltas and credits it internally, likely for buybacks, though the exact split and which trades pay more cannot be confirmed without source.

This read was written for the hook 0x1d72…2ac8 on Ink and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.

How it works step by step

  • Proxy hook: all calls delegate to implementation 0x9f363fe34401f7404a82e38f18f06c8e9de49414 whose source is unavailable
  • Uses beforeSwapReturnDelta, so it can take a portion of swap input or output as a return delta before the pool swap executes
  • Single dispatched entry selector 0x6b0e8283 taking four addresses, two uint256 values, two uint16 values and three bools plus an address; likely a configuration or initialization entry point
  • Makes external calls to creditInternal (two overloads), notifyBuybackInternal and an ERC20 transfer, suggesting it routes captured value to internal accounts or a buyback mechanism
  • Heuristic tags indicate ERC20 token handling and an upgradeable proxy pattern
Swap behaviour
Swap callbacks are enabled (beforeSwap and afterSwap). beforeSwapReturnDelta means the hook can capture part of each swap's amounts and credit it internally, and the decoded calls suggest that captured value is credited and possibly used for buybacks; the exact split and which trades pay more cannot be determined from the decoded bytecode.
Liquidity behaviour
beforeAddLiquidity and beforeRemoveLiquidity callbacks are enabled, so the hook can gate or inspect liquidity changes; the specific logic cannot be determined without source.
Fee behaviour
Fees are not confirmed to be dynamic; the hook appears to take a share of swap amounts through return deltas and credit it internally, rather than only adjusting the LP fee. Exact rates cannot be determined from decoded bytecode.
Owner & admin controls
The proxy is upgradeable, so whoever controls the proxy admin can replace the implementation and change behaviour. Owner or parameter controls could not be confirmed from the decoded selectors alone.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta

beforeInitialize: runs checks or setup when the pool is initialized. beforeAddLiquidity: can inspect or restrict liquidity additions. beforeRemoveLiquidity: can inspect or restrict liquidity removals. beforeSwap: can compute and take a return delta before the swap. afterSwap: runs post-swap accounting or buyback logic. beforeSwapReturnDelta: allows the hook to take a share of swap amounts.

Security & trust assessment

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

Who controls it: A privileged proxy admin or implementation owner could upgrade the logic to change the fee split, redirect captured value or block liquidity and swaps.

Risk to user funds: The hook can take a share of swap amounts via return deltas and move tokens through transfer and internal credit calls, so user swap proceeds and pool funds are exposed to its logic and to any upgrade.

Security findings

  • [high] Upgradeable proxy: Every call delegates to a mutable implementation, so the controlling admin can change swap, fee and fund-routing logic at any time without user consent.
  • [medium] Return-delta fund capture: beforeSwapReturnDelta lets the hook take part of user swap amounts, and the decoded calls to creditInternal and transfer show value is moved by the hook.
  • [medium] Unverified source: No verified source is available, so the exact fee split, buyback logic and access controls cannot be audited from public information.
  • [low] Before-liquidity gating: Liquidity add and remove callbacks are enabled, so the hook may be able to block liquidity changes depending on its implementation.

Contract details

Verified source
No
Bytecode size
22,123 bytes
Upgradeable proxy
Yes
Detected patterns
erc20, return-delta, upgradeable

Pools using Fee sharing hook