MinaraFeeHook on Arc

Uniswap v4 Hook Contract 0xb6a65950534f061618b4ae102fbcbb8541a8e0cc on Arc · Launchpad · Verified contract

Volume (24h)
$716
Value locked (TVL)
$52.97K
All-time volume
$39.51M
Pools using this hook
1,966
Swaps (24h)
58 (28 traders)
Total swaps
321,957

What it does

A launchpad fee hook that charges a platform and creator fee on the quote currency of every trade in its pools, plus a short anti-snipe tax on early buys, and books the fees for later claim.

How it works step by step

  • Charges a platform fee and a creator fee in the quote currency (currency0), with combined rate capped at 500 bps and frozen per pool at registration.
  • Applies a snipe tax on buys in the first 3 seconds after pool initialization, starting at 99% and decaying to zero, exempting the creator's launch transaction buy.
  • Books fees to per-pool creator balances and per-quote platform balances instead of paying out during swaps.
  • Lets the pool creator claim accrued fees, optionally spending part of them to buy the pool's token with a minimum output guard.
  • Lets anyone trigger the platform fee sweep, which distributes to the owner-defined split table.
  • Restricts pool initialization and registration to allowlisted launchers and allowlists quote currencies.
Swap behaviour
Fee is taken from the quote leg on every swap. For exact-input buys and exact-output sells with quote as the specified leg, the fee is charged in beforeSwap; otherwise it is charged in afterSwap on the quote leg. Quote-specified swaps must fill fully or revert.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Fee is charged on the quote leg (currency0) only: in beforeSwap for swaps where the specified leg is the quote, and in afterSwap otherwise. Base rate is the pool's snapshotted platformFeeBps plus creatorFeeBps (max 500 bps). During the first 3 seconds after initialize, non-exempt buys pay an extra snipe tax (9900, 2481, 519 bps, then 0), with combined rate capped at 9900 bps. Fees are booked to platformAccrued (per quote) and creatorAccrued (per pool), not paid out during swaps.
Owner & admin controls
Owner (Ownable2Step, renounce disabled) can set platformFeeBps and creatorFeeBps (combined capped at 500 bps), replace the platform split table, allow quotes and disallow quotes for future pools, and add launchers. A one-time registrar address can add launchers and allow quotes until retired. Creator of each pool can claim its fees and move the creator role. No pause or upgrade mechanism found.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize: restricts pool initialization to allowlisted launchers, starts the anti-snipe clock and sets a transient launch-transaction flag exempting the creator's opening buy from snipe tax. beforeSwap: takes the fee from the specified quote leg via a return delta. afterSwap: takes the fee from the unspecified quote leg via a return delta, books it, and enforces full fill for quote-specified swaps.

Security & trust assessment

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

Who controls it: The owner can raise platform and creator fee rates up to the 500 bps cap for future registrations and change the platform split recipients, which affect all accrued platform fees immediately since the split is live. The owner can disallow future quotes and add launchers. Creators can redirect their accrued fees via claimCreator and buy the pool token with a portion of them. There is no pause or upgrade path.

Risk to user funds: The hook holds accrued platform and creator quote fees in its own balance and takes fee amounts from swaps via return deltas. Traders bear the fee and snipe tax. Owner can change fee rates within the 500 bps cap and redirect platform split recipients, but cannot seize pool liquidity or pause trading.

Security findings

  • [medium] Live platform split table controlled by owner: Owner can change the platform split table at any time; it is live, so previously accrued but unclaimed platform fees are redirected to whatever recipients the owner sets.
  • [info] Partial fills refused for quote-specified swaps: Swaps with the quote as the specified leg revert on partial fill (PartialFillRefused), so a trade that exhausts pool liquidity fails rather than filling partially.
  • [info] Up to 99% anti-snipe tax on early buys: Snipe tax applies up to 99% on buys within 3 seconds of initialization, intentionally making early buying very expensive; only the launch transaction's creator buy is exempt.
  • [low] Hook custodies fee balances: The hook holds accrued fees in custody (creator and platform balances) and takes fees via return deltas; the invariant that accrued totals never exceed the balance relies on the quote allowlist excluding fee-on-transfer tokens.

Contract details

Verified source
Yes (MinaraFeeHook)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
15,646 bytes
Upgradeable proxy
No
Detected patterns
access-control, launchpad, moves-currency, ownable, return-delta, self-unlock, tax

Pools using MinaraFeeHook