Launchpad hook on Arc
Uniswap v4 Hook Contract 0x7cd35b33d495396c4707056d23582df68d0a28cc on Arc · Launchpad
- Volume (24h)
- $0
- Value locked (TVL)
- $1.68K
- All-time volume
- $101.12K
- Pools using this hook
- 159
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 4,897
What it does
A launchpad-style hook that charges a per-pool fee on swaps and routes part of it to a buyback vault, using return deltas to take its share from trades.
How it works step by step
- Stores per-pool configuration and a current fee keyed by pool id, set when the pool is initialized
- Charges a hook fee on swaps bounded by BASE_HOOK_FEE and MAX_START_HOOK_FEE
- Takes its share of swap value through afterSwapReturnDelta and records it via recordHookFee
- Forwards collected value to a BUYBACK_VAULT with a gas stipend and minimum gas guard
- Gates liquidity addition and removal through before and after liquidity callbacks
- Restricts privileged actions to a launcher address
- Swap behaviour
- beforeSwap and afterSwap run custom logic on each swap; afterSwap uses return deltas to skim a hook fee from the swap output, which is recorded and forwarded toward a buyback vault.
- Liquidity behaviour
- beforeAddLiquidity is enabled and afterRemoveLiquidity and afterAddLiquidity selectors exist; the hook's handling of liquidity is not fully decoded, and beforeAddLiquidity is a read-only selector in the dispatch table.
- Fee behaviour
- A hook fee is computed from a BASE_HOOK_FEE constant and a MAX_START_HOOK_FEE cap, read per pool via currentFee(bytes32), and recorded through an external recordHookFee call; the hook takes its share through afterSwap return deltas.
- Owner & admin controls
- No admin controls found. Selectors for owner, pause, upgrade or setter functions were not decoded; the launcher() and locker() and poolManager() getters are read-only references. Constants such as BASE_HOOK_FEE, MAX_START_HOOK_FEE, BUYBACK_MIN_GAS and MAX_WINDOW_SECONDS are exposed as view getters, and no setter for them was decoded.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize sets up per-pool configuration on pool creation; beforeAddLiquidity gates liquidity addition; beforeSwap and afterSwap run custom logic around each swap; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take or supply tokens from swap deltas, which is used for the hook fee and buyback mechanism.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: Without decoded owner or setter functions, no obvious privileged key was identified; the launcher and locker addresses appear to be the trusted parties that gate actions, so compromise of the launcher could affect pool setup and fee routing.
Risk to user funds: The hook can take a portion of swap output through return deltas and forward it to a buyback vault, so traders pay a hook fee on swaps; it can also receive tokens during swaps. Whether it can block swaps depends on the buyback call succeeding, which is not fully decoded.
Security findings
- [medium] Hook takes tokens via return deltas: afterSwapReturnDelta is enabled, so the hook can take a share of each swap's output and route it to a BUYBACK_VAULT, which can divert value away from the pool.
- [info] Launcher-gated actions: The hook references a NotLauncher error and launcher() getter, indicating certain actions are restricted to a launcher address; if that address is compromised or misconfigured, pool behaviour could be altered.
- [low] External buyback call during swaps: A buyback path with BUYBACK_GAS_STIPEND and BUYBACK_MIN_GAS suggests an external call is made during swaps; a reverting or gas-heavy vault could cause swap failures or degraded execution.
Contract details
- Verified source
- No
- Bytecode size
- 7,540 bytes
- Upgradeable proxy
- No
- Detected patterns
- return-delta
Pools using Launchpad hook
- cirBTC / PIZZA (0.00% fee) — 24h volume $0, TVL $1.21K, 0 swaps today
- USDC / FLIP (0.00% fee) — 24h volume $0, TVL $48, 0 swaps today
- USDC / DUCK (0.00% fee) — 24h volume $0, TVL $324, 0 swaps today
- CAPYBARA / USDC (0.00% fee) — 24h volume $0, TVL $5.41, 0 swaps today
- USDC / PILOTBOT (0.00% fee) — 24h volume $0, TVL $0.99, 0 swaps today
- ARCH / SQUARE (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- FREEDOM / USDC (0.00% fee) — 24h volume $0, TVL $0.01, 0 swaps today
- DEPTH / USDC (0.00% fee) — 24h volume $0, TVL $1.00, 0 swaps today
- USDC / 258 (0.00% fee) — 24h volume $0, TVL $0.89, 0 swaps today
- VENUE / USDC (0.00% fee) — 24h volume $0, TVL <$0.01, 0 swaps today
- MAGIC / EURC (0.00% fee) — 24h volume $0, TVL $0.01, 0 swaps today
- USDC / CLEAN (0.00% fee) — 24h volume $0, TVL <$0.01, 0 swaps today
- EUROPOOR / EURC (0.00% fee) — 24h volume $0, TVL <$0.01, 0 swaps today
- MILKY / USDC (0.00% fee) — 24h volume $0, TVL $0.01, 0 swaps today
- ARCHER / USDC (0.00% fee) — 24h volume $0, TVL <$0.01, 0 swaps today
- OVERLOAD / USDC (0.00% fee) — 24h volume $0, TVL <$0.01, 0 swaps today
- USDC / ARCF (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDC / AURA (0.00% fee) — 24h volume $0, TVL $0.10, 0 swaps today
- ARCOIN / USDC (0.00% fee) — 24h volume $0, TVL <$0.01, 0 swaps today
- USDC / ARCOON (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today