LaunchGuardHook on Arc

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

Volume (24h)
$0
Value locked (TVL)
$13
All-time volume
$11
Pools using this hook
7
Swaps (24h)
0 (0 traders)
Total swaps
6

What it does

Anti-sniper launch hook that charges a high, decaying fee on buys during the first blocks of a pool and routes the collected fees to the treasury, creator, the tesoretto buy-back contract and the holder vault, while locking liquidity permanently.

How it works step by step

  • Sets a tiered fee curve per pool that starts at up to 95% and steps down to a regime fee after the window ends
  • Taxes buys during the launch window; taxes sells only if the launch is symmetric
  • Accrues fees as ERC-6909 credits on the PoolManager and redeems them in distribuisci()
  • Splits window fees 10% treasury, 10% creator, 80% to tesoretto (with a notification), remainder to vault; splits regime fees per launch config
  • Permanently blocks liquidity removal and restricts pool initialization and liquidity addition to the launchpad and tesoretto
Swap behaviour
beforeSwap applies the tiered launch fee on exact-input swaps (buys always, sells only in symmetric mode during the window), records it as ERC-6909 credit via return delta, and reverts on exact-output swaps. The launchpad and tesoretto are exempt from the fee.
Liquidity behaviour
Liquidity can only be added by the launchpad or tesoretto (beforeAddLiquidity). beforeRemoveLiquidity always reverts, so liquidity is permanently locked in the pool.
Fee behaviour
Charges an anti-sniper hook fee on exact-input swaps via beforeSwap return delta: a tiered curve starts at up to aperturaMax (e.g. 95%) and steps down to regimeMax after the window (durataMax blocks). Buys are always taxed in the window; sells are taxed only if the pool is symmetric. The launchpad and tesoretto are exempt. The fee is taken on the input currency and accrued as ERC-6909 credits, then distributed on distribuisci(): window fees split 10% treasury, 10% creator, 80% to tesoretto (with a credit notification to the tesoretto), remainder to the vault; regime fees follow the per-launch split with the vault share going to the vault.
Owner & admin controls
No admin controls found. All addresses (manager, launchpad, tesoretto, tesoreria, vault) and caps (aperturaMax, regimeMax, durataMax, sogliaSimmetria) are immutable constructor arguments; there is no owner, pause, upgrade proxy or parameter setter. Only the launchpad can register pools and initialize them, and only the launchpad or tesoretto can add liquidity.

Enabled Uniswap v4 callbacks

beforeInitialize, afterInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, beforeSwapReturnDelta

beforeInitialize: restricts pool creation to the launchpad and requires a prior registration. afterInitialize: records the opening block and emits an event. beforeAddLiquidity: restricts adders to launchpad and tesoretto. beforeRemoveLiquidity: always reverts to lock liquidity. beforeSwap: applies the anti-sniper fee via return delta and records accrued fee credits. beforeSwapReturnDelta: enables the hook to take a portion of the swap input.

Security & trust assessment

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

Who controls it: No privileged key exists after deployment, so no one can change fees, pause swaps, withdraw funds or alter the curve. The only trust assumptions are the immutable launchpad and tesoretto addresses and the tesoreria/vault/creator recipient addresses, which cannot be changed but determine where funds go.

Risk to user funds: The hook holds ERC-6909 credits and pulls up to the launch fee of every entering swap; accrued funds are not withdrawable by anyone except through distribuisci(), which sends them to immutable recipients. Liquidity cannot be removed, so LPs funds are locked permanently. No function lets a third party redirect or block user funds beyond the fee itself.

Security findings

  • [info] Very high launch-window fee by design: beforeSwap takes up to the aperturaMax fee (up to 95% at launch) on buys, which can make swaps nearly unprofitable for early traders; this is intended but is a significant economic cost to users.
  • [medium] Symmetric mode can tax sells: The hook accepts a max fee configured at deploy and per-launch curves validated against those caps, but a launch's fee can be set up to aperturaMax; a symmetric curve taxes sells too, and symmetry is allowed up to sogliaSimmetria blocks. Users buying in a symmetric launch can be taxed on exit.
  • [low] Exact-output swaps unsupported and router limitation: beforeSwap reverts on exact-output swaps (amountSpecified > 0) and the exemption list means the launchpad and tesoretto can swap fee-free, so those contracts must not be used as routers without a fee.
  • [info] Fund flow depends on tesoretto: distribuisci() is callable by anyone and fund split is determined on-chain, so timing of distribution is not controllable by a privileged party, but the 80% window share is routed to tesoretto, which buys back and burns; this concentrates trust in the immutable tesoretto contract behavior.

Contract details

Verified source
Yes (LaunchGuardHook)
Compiler
solc 0.8.24+commit.e11b9ed9
Bytecode size
7,804 bytes
Upgradeable proxy
No
Detected patterns
launchpad, liquidity-management, moves-currency, return-delta, self-unlock

Pools using LaunchGuardHook