HuntardsHook on Ethereum

Uniswap v4 Hook Contract 0xf2681a6e4032a8253abaa3a37f24178720c160cc on Ethereum · Fee sharing · Verified contract

Volume (24h)
$22.74K
Value locked (TVL)
$18
All-time volume
$22.74K
Pools using this hook
1
Swaps (24h)
116 (54 traders)
Total swaps
116

What it does

Adds a flat fee on the ETH side of every HUNTARDS/ETH swap and splits it between the treasury, a claimable pool for the 444 Huntard holders, and an ETH buyback-and-burn of HUNTARDS.

How it works step by step

  • Charges a fixed fee (set once at registration, 0.10% to 5%) on the ETH side of every swap, through any router.
  • Mints the fee to the hook as ERC-6909 claims on the PoolManager during the swap, with no token transfer.
  • Splits each fee into treasury (serversBps), Huntard holder pool (holdersBps) and buyback-and-burn (burnBps).
  • Accrues holder fees per token id via a global accumulator, and lets owners claim ETH for their tokens at any time.
  • Lets anyone trigger a capped buyback of HUNTARDS with the burn share and burn the bought coins.
Swap behaviour
Each swap pays the registered flat fee on the ETH side (taken as a specified-side delta in beforeSwap for ETH-specified swaps, or as an unspecified-side delta in afterSwap otherwise), minted as a PoolManager claim, then booked into the fee split and emitted as a Trade event.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
A flat fee (feePips, written once at registration, between 0.10% and 5%) is taken on the ETH side of every swap as an ERC-6909 claim on the PoolManager. Each fee is split into serversBps (treasury, collectable any time), holdersBps (accrued per Huntard token and claimable in ETH; shares for unminted tokens go to the treasury) and burnBps (ETH held until buyback buys HUNTARDS and burns it). The split must sum to 10000 bps.
Owner & admin controls
Owner (Ownable2Step) can change the fee split instantly via setSplit and the treasury address via setTreasury; owner cannot change the pool fee rate, liquidity, user coins or trading. Launcher (set once) registers the pool once; collection (set once) notes mints once. Ownership transfer is two-step.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize restricts initialization to the launcher and the registered pool. beforeSwap records the swap's ETH-side fee in transient storage and returns it as a specified delta. afterSwap mints the fee as a PoolManager claim, books it into the split and emits Trade. beforeSwapReturnDelta and afterSwapReturnDelta allow the hook to take its fee through deltas.

Security & trust assessment

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

Who controls it: The owner can redirect all future fee shares (setSplit, e.g. 100% to the treasury, or 0% to holders and burn) and redirect the treasury address, instantly, affecting fees not yet collected. The owner cannot raise the trading fee, pause trading or touch pool liquidity or user coins.

Risk to user funds: The hook holds ETH only as ERC-6909 claims on the PoolManager for fees not yet withdrawn (serversOwed, buybackOwed and per-token accruals). It cannot move pool liquidity or user coins, and it cannot block swaps except by reverting on invalid state. The owner can redirect future fee shares but not existing booked balances.

Security findings

  • [medium] Owner can instantly change the fee split: setSplit takes effect immediately on the next trade with no timelock, so the owner can move the holders' and burn shares to the treasury at any time.
  • [info] Fee taken through return deltas: Swaps compute the fee with the fee rate fixed at registration, and the hook takes it via beforeSwap and afterSwap return deltas, so trading routes through the hook's delta accounting. Partial fills revert with PartialFill.
  • [info] Buyback limited per block: buyback is restricted to a ~1% price move per block using the block's opening price and a 2 ETH cap, and claims are pull-only, which limits sandwich and overpayment risk.
  • [info] Unclaimed holder fees follow the token: Unminted Huntard shares go to the treasury, and a token's unclaimed fees transfer with the token on sale; the claim accounting relies on the collection's ownerOf.

Contract details

Verified source
Yes (HuntardsHook)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
10,869 bytes
Upgradeable proxy
No
Detected patterns
launchpad, moves-currency, ownable, return-delta, self-unlock

Pools using HuntardsHook