LaunchHook on Ethereum

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

Volume (24h)
$641
Value locked (TVL)
$2.07K
All-time volume
$889.66K
Pools using this hook
18
Swaps (24h)
4 (2 traders)
Total swaps
4,318

What it does

Charges a fixed per-pool trading fee in the stock token on every swap and splits it between the platform treasury, the token creator, and token holders.

How it works step by step

  • Takes a per-pool fee in the stock currency (currency0) on each swap, with the LP fee fixed at zero
  • Splits each fee 30% to the platform treasury, a creator share of the remaining 70%, and the rest to holders
  • Credits treasury and creator balances to claimable mappings and holder balances to holderAccrued per token
  • Pays out via pull functions claimFees and pullHolderFees, which only the distributor may call for holders
  • Restricts pool registration and initialization to the factory with a registered config
  • Lets the current creator recipient or the treasury reassign its own address
Swap behaviour
Buys with exact input pay the fee in beforeSwap on the stock input; sells with exact input and buys with exact output pay the fee in afterSwap on the stock side; sell exact-output swaps revert; every swap emits Swapped with the post-swap price and tick.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Pool LP fee is 0; the hook charges a per-pool feeBps on the stock side (currency0): on the input for buys (exact input, taken in beforeSwap) and on the output for sells (exact input, taken in afterSwap). Each fee is split 30% to the treasury (constant PLATFORM_SHARE_BPS), then creatorShareBps of the remaining 70% to the creator recipient, and the rest to holders accrued per token for the FeeDistributor.
Owner & admin controls
No owner or pause role. The only privileged actions are factory-gated pool registration (registerPool), distributor-gated pullHolderFees, and self-rotation: the treasury can call setTreasury to change its own address, and each pool's creator recipient can call setCreatorRecipient to reassign its share. Factory and distributor addresses are immutable. No upgrade mechanism is visible.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize restricts pool initialization to the factory and requires a registered config. beforeSwap takes the buy-side exact-input fee and reverts on sell exact-output swaps. afterSwap takes the fee on other swap directions, emits Swapped with the post-swap price, and uses the return delta to account for the fee. beforeSwapReturnDelta and afterSwapReturnDelta are enabled so the hook can claim a share of swap amounts.

Security & trust assessment

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

Who controls it: No single key can move user funds or change fees; the factory can only register pools once, and fee parameters are fixed at registration apart from the creator recipient address, which only the current recipient can change. Treasury and creator rotation are self-controlled.

Risk to user funds: The hook holds stock-currency fee balances in the PoolManager and its own balance until claimed or pulled. It cannot block swaps through pausing, and its push-free design means a bad recipient cannot halt trading, but it does take a fee on every swap, which is a direct cost to traders.

Security findings

  • [low] Exact-output sells blocked: Sell exact-output swaps revert with ExactOutputSellsNotSupported, so routers or users requesting exact-output sells cannot trade this pool.
  • [info] Hook takes swap fees via return deltas: The hook takes fee tokens via poolManager.take and returns fee deltas, so a fraction of every swap is retained by the hook and credited to claimable balances.
  • [medium] Accrued fees held by hook contract: Fees accrue in claimable mappings and holderAccrued and are paid out by pull functions; tokens sit in the hook contract until claimed, so a hook bug could lock them.
  • [info] Creator recipient is transferable by holder: A pool creator recipient can reassign its share to any address, so accrued creator fees depend on that key remaining controlled.
  • [info] No admin pause or upgrade: The hook has no owner, pause, or upgrade path, so its behaviour cannot be changed after deployment.

Contract details

Verified source
Yes (LaunchHook)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
7,768 bytes
Upgradeable proxy
No
Detected patterns
launchpad, return-delta

Pools using LaunchHook