PackedFeeHook on Ethereum

Uniswap v4 Hook Contract 0xac710b52fbe09a13f5bf8675728758ff52b228c0 on Ethereum · Launchpad · Verified contract

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

What it does

This launchpad fee hook charges every swap a fixed fee of up to 6% to the creator-owned LP position, and adds a 90% surcharge only on outsiders' buys in the launch block to deter snipers.

This read was written for the hook 0xb3a9…68c0 on Ethereum 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

  • Serves launchpad pools opened by a registered factory's pool contracts, and only works with dynamic-fee pools.
  • Every swap pays a fixed resting fee (1% base plus the creator tax), set once when the pool opens and capped at 6%.
  • Buys made in the same block the pool opens, other than those placed by the pool contract itself, pay an extra 90% anti-sniping surcharge.
  • Only the pool contract can add liquidity, so all fees go to its single position, and the surcharge portion is tracked for the creator.
  • Has no owner and no setters, and never moves token balances itself.
Swap behaviour
Each swap is charged the pool's resting fee of up to 6% as the LP fee. A buy of the coin in the launch block by anyone other than the pool contract pays an additional 90% of its input, while sells are never surcharged.
Liquidity behaviour
Only the pool's own contract can add liquidity, and every other depositor is rejected. The hook never runs on withdrawals, so it cannot block or charge removals.
Fee behaviour
The resting fee is between 0.0001% and 6% (1% base plus a creator tax of up to 5%), fixed at pool initialization. Launch-block buys by outsiders pay up to 96% in total. All fees accrue to the pool contract's LP position, and the surcharge part is recorded for the creator.
Owner & admin controls
No admin controls found. All terms are set once at pool creation, and the fee constants are hard-coded.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap

beforeInitialize: only allows registered factory pools, requires a dynamic fee, and records the fee terms; beforeAddLiquidity: restricts deposits to the pool contract; beforeSwap: sets the per-swap fee including the launch-block surcharge; afterSwap: records how much of each fee was surcharge.

Security & trust assessment

Risk level: medium (verified source, high confidence).

Who controls it: There is no owner. The factory registry decides which pool contracts may open pools, and each pool's creator tax is read from the pool contract once at initialization, capped at 5%.

Risk to user funds: Outside the launch block, traders pay the fixed LP fee of at most 6%. Launch-block buyers can pay up to 96% of their input. The hook holds no funds and cannot lock or drain LP principal.

Security findings

  • [medium] 90% launch-block buy surcharge: Buys placed in the pool's opening block by anyone other than the pool contract pay an extra 90% fee on top of the resting fee of up to 6%. This is intentional anti-sniping logic, applies only during that one block, and never applies to sells.
  • [info] Liquidity restricted to pool contract: Third parties cannot provide liquidity. The hook has no remove-liquidity callbacks, so it cannot block withdrawals.
  • [info] Immutable, no owner: The contract is not a proxy and has no setters. It never transfers tokens or uses return deltas.

Contract details

Verified source
Yes (PackedFeeHook)
Compiler
solc 0.8.28+commit.7893614a
Bytecode size
4,294 bytes
Upgradeable proxy
No

Pools using PackedFeeHook