ArgusV4TaxHook on Arc

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

Volume (24h)
$1.59K
Value locked (TVL)
$12.83K
All-time volume
$897.42K
Pools using this hook
1
Swaps (24h)
20 (12 traders)
Total swaps
6,448

What it does

A launchpad hook that taxes swaps on a newly launched token pair, with a decaying snipe tax early on and bonding state that controls when the pool goes live.

How it works step by step

  • Validates the pool in beforeInitialize against the expected token pair and rejects mismatched pool shapes.
  • Tracks a bond state and bond tick that gate the launch phase.
  • Applies buy and sell taxes to swaps, capped by MAX_TAX_BPS.
  • Applies a snipe tax that decays from the launch timestamp to discourage early bot buying.
  • Takes the tax as a return delta and routes it to treasury or splitter addresses.
Swap behaviour
afterSwap computes a buy or sell tax and takes it from the swap output via the return delta, forwarding it to treasury or splitter addresses.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Taxes are applied via the afterSwap return delta using buy and sell tax parameters, with a snipe tax that decays from launch time; the exact fee math could not be fully confirmed from the decoded bytecode.
Owner & admin controls
No admin controls found. Slot 1 packs token, launch timestamp, bond tick, quote-asset flag and a bonded flag; bindBond(int24) appears callable to set the bond tick and bonded state, with an AlreadyBound guard, and the caller restriction could not be confirmed from bytecode alone.

Enabled Uniswap v4 callbacks

beforeInitialize, afterSwap, afterSwapReturnDelta

beforeInitialize validates pool initialization for the launched pool, afterSwap applies the tax via a return delta and moves currency through take(), and afterSwapReturnDelta lets the hook take part of the swap output as tax.

Security & trust assessment

Risk level: medium (decoded bytecode, low confidence).

Who controls it: A privileged caller of bindBond could influence the bond state and tick, which affects the pricing and tax regime; the treasury and splitter addresses receive tax proceeds, so their keys matter to users.

Risk to user funds: The hook can take a share of swap output through return-delta tax and route it to treasury or splitter addresses; it does not appear to hold a custodial balance of user funds.

Security findings

  • [medium] Hook takes tokens on swaps: afterSwapReturnDelta with take() means the hook can withhold part of each swap's output and send it to treasury or splitter addresses.
  • [medium] Bond binding callable: bindBond(int24) mutates bond state (bonded flag, tick). Caller restriction could not be verified from decoded bytecode.
  • [info] Tax parameters: Tax rates are read from immutable-looking pure getters (buyTaxBps, sellTaxBps, MAX_TAX_BPS), so exposure depends on whether these are constants.
  • [info] No upgrade path observed: No proxy or upgrade selectors were found in the bytecode, so the logic appears non-upgradeable.

Contract details

Verified source
Yes (ArgusV4TaxHook)
Compiler
solc 0.8.24+commit.e11b9ed9
Bytecode size
5,175 bytes
Upgradeable proxy
No
Detected patterns
launchpad, moves-currency, return-delta, tax

Pools using ArgusV4TaxHook