AdvancedFeeHook on Base

Uniswap v4 Hook Contract 0x03d2434d5a9ab7fb46bd3c7956a7c62e0cd46044 on Base · Launchpad · Verified contract

Volume (24h)
$22.97K
Value locked (TVL)
$45.37K
All-time volume
$19.37M
Pools using this hook
261
Swaps (24h)
285 (120 traders)
Total swaps
172,706

What it does

A launchpad fee hook that charges a configurable swap tax on a token pool, splitting it between a platform treasury, token burns, liquidity added back to the pool, and payees chosen by the token's creator.

How it works step by step

  • Charges a per-pool swap tax of up to 10%, configured once by the launcher
  • Sends up to 1% of the tax to the platform treasury
  • Burns part of the creator share via a direct burn or a buyback-and-burn swap
  • Adds part of the creator share back to the pool as single-sided liquidity
  • Distributes the remaining creator share pro rata to up to 8 configured payees
  • Falls back to ERC-6909 claims when a direct payout fails
Swap behaviour
On every swap, afterSwap computes a tax (taxBps) on the unspecified-side amount, takes it as a return delta, and distributes it: half to the platform (capped at 1%), the remainder to the creator split.
Liquidity behaviour
No liquidity callbacks are implemented; beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity all revert. The hook itself adds single-sided liquidity to its own pool from creator fees (positions in a 10-tick-spacing range adjacent to the current tick), emitting LiquidityAdded.
Fee behaviour
On afterSwap, a tax of taxBps (up to 10%, set per pool at configuration) is taken from the unspecified currency of each swap. Half of the tax, capped at 1%, goes to the platform treasury. The rest is the creator share, split into burn (buyback-and-burn or direct burn to 0xdead), single-sided liquidity added to the pool, and the remainder distributed pro rata to configured payees, with any unplaced amount swept to the treasury. Payouts use poolManager.take with a gas cap and fall back to minting ERC-6909 claims if the transfer fails.
Owner & admin controls
The launcher (set at construction) is the only address that can configure pools and initialize them; configurePool is callable once per pool. The platform admin can replace the payee list for a configured pool via setPayees, which can redirect creator fee shares. Each payee can transfer their own slot to a new address via transferPayeeSlot. Pool manager, treasury, launcher and platform admin are all immutable; there is no proxy, pause or upgrade mechanism found.

Enabled Uniswap v4 callbacks

beforeInitialize, afterSwap, afterSwapReturnDelta

beforeInitialize restricts pool initialization to the launcher and the pool manager. afterSwap takes the tax from the swap output via a positive return delta, so the hook captures a share of every swap and distributes it. Other callbacks are implemented but revert.

Security & trust assessment

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

Who controls it: The platform admin can rewrite the payee list of any configured pool at any time, so it can redirect future creator fee shares to any address. The launcher controls which pools get configured and initialized. Neither role can change tax rates or burn/liquidity splits after configuration, and neither can pause swaps.

Risk to user funds: The hook takes a percentage of swap output as a fee and can route it to burn, pool liquidity, payees or the platform treasury. It does not hold user principal. Payouts that fail the direct transfer are minted as ERC-6909 claims to the recipient, so funds stay within the pool manager accounting.

Security findings

  • [medium] Admin can rewrite payee list: setPayees lets the platform admin replace all creator payees for a pool at any time, redirecting future creator fee distributions.
  • [info] Swap tax on every trade: afterSwap takes up to 10% of every swap via a return delta; the tax is fixed per pool at configuration and cannot be changed afterwards, but traders pay it on every swap.
  • [low] Nested pool actions inside afterSwap: Buyback-and-burn and single-sided liquidity injection execute swaps and liquidity modifications inside the afterSwap path, and failed attempts are swallowed by try/catch, so fee accounting can silently degrade.
  • [info] No custody of principal: The hook holds no persistent user balances; fee amounts are paid out or minted as ERC-6909 claims within the same transaction, so user principal is not custodied by the hook.

Contract details

Verified source
Yes (AdvancedFeeHook)
Compiler
solc 0.8.28+commit.7893614a
Bytecode size
11,408 bytes
Upgradeable proxy
No
Detected patterns
erc6909-claims, launchpad, moves-currency, return-delta, tax

Pools using AdvancedFeeHook