FeeSplitLib on Ink

Uniswap v4 Hook Contract 0x33200d9521ed99afbda8575f05348a583c7aaac8 on Ink · Fee sharing · Verified contract

Volume (24h)
$8.15
Value locked (TVL)
$2.89K
All-time volume
$139.05K
Pools using this hook
16
Swaps (24h)
3 (1 traders)
Total swaps
3,379

What it does

This hook splits each pool's swap fees between creators, the protocol and a hook-tax pot that funds modules such as floor backing, auto-burn, holder airdrops and buybacks, but the exact fee amounts and which trades pay more or less cannot be determined from the truncated source.

How it works step by step

  • Hook is a proxy; implementation FeeSplitLib-linked fee router runs its logic via delegatecall, and the verified source shown is the library FeeSplitLib plus its dependencies.
  • Splits swap fees from the pool into a base split (creator escrow, protocol share, hook-tax pot) and routes the hook-tax pot to modules such as floor vault, auto-burn, deepen-LP, holder airdrop, and creator buyback.
  • Uses the PoolManager's ERC-6909 claims or raw token transfers to move fee amounts to distributor, escrow, buyback, floor vault and airdrop vault contracts.
  • Optional anti-snipe and max-transaction gating are configured through a packed bitmask of launch modules.
  • Can convert hook-tax fees into holder airdrops and buyback credits, with vesting schedules for creator proceeds.
Swap behaviour
beforeSwap and afterSwap are enabled and beforeSwapReturnDelta is set, so the hook can take a cut of swap fees and can gate or adjust swaps (anti-snipe, max-tx, dynamic fee logic); the exact per-trade fee and any buy/sell asymmetry cannot be fully determined from the truncated source.
Liquidity behaviour
beforeAddLiquidity and beforeRemoveLiquidity are enabled; their logic was not visible in the provided input, so the exact restrictions cannot be determined.
Fee behaviour
Fees are split from swap fee amounts: a hook-tax portion (hookTaxBps, capped at 10 percent total with the 60/10/30 base split) is routed to modules; the rest is split between creator, protocol and HKT share according to the library's splitBaseFee logic.
Owner & admin controls
Proxy is upgradeable; the implementation is controlled by an owner-set configuration. The owner (Owned contract) can set operators, change distributor/vault targets through setters, and set NFT strategy and buyback executor addresses. Exact upgrade authority of the proxy could not be determined from the input.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta

beforeInitialize validates pool setup; beforeAddLiquidity and beforeRemoveLiquidity gate or observe liquidity changes; beforeSwap and afterSwap apply anti-snipe/max-tx checks and fee routing; beforeSwapReturnDelta lets the hook take fee amounts as a return delta from swaps.

Security & trust assessment

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

Who controls it: A proxy admin or the owner of the distributor and vault contracts could upgrade the implementation, change operators, redirect fee destinations, or alter buyback and airdrop targets, affecting all fees collected by pools using this hook.

Risk to user funds: The hook can take a portion of swap fees via return deltas and transfer them to distributor, escrow, floor vault and airdrop contracts; it does not hold a general user-funds pool, but a malicious upgrade could divert fee flows.

Security findings

  • [medium] Upgradeable proxy: The hook is a proxy delegating all calls to implementation 0xf8122f221f54c382da9eb6218110556097eaa868; the implementation can be swapped by whoever controls the proxy admin, changing fee routing for all pools using the hook.
  • [medium] Return-delta fee capture: beforeSwapReturnDelta lets the hook take fee amounts from swaps and route them to external vault contracts, so a malicious or buggy implementation could redirect a large share of trader value.
  • [medium] Owner-set routing targets: Owned contracts (distributor, escrow, floor vault, buyback vault, airdrop vault) accept operator and owner configuration; a privileged key can set operators and reroute module cuts.
  • [low] Pause and gating from before-callbacks: beforeSwap and liquidity callbacks can revert, so anti-snipe or max-tx rules could block swaps or liquidity actions if configured aggressively.

Contract details

Verified source
Yes (FeeSplitLib)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
23,148 bytes
Upgradeable proxy
Yes
Detected patterns
erc20, fee-sharing, return-delta, upgradeable

Pools using FeeSplitLib