CurveHookV5 on Robinhood Chain
Uniswap v4 Hook Contract 0x3b9d59a4aa803df33cdfa95628868df85275e888 on Robinhood Chain · Launchpad · Verified contract
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 2
What it does
A bonding-curve hook that lets any Uniswap v4 router trade launchpad markets from their first block, pricing swaps on the launchpad's curve and taking input into the launchpad's reserves until the market migrates to a normal pool.
How it works step by step
- Makes each launchpad market a Uniswap v4 pool from creation, restricting pool initialization to the launchpad.
- Prices exact-input swaps on the launchpad's virtual-liquidity curve via curveSwap.
- Settles curve swaps through custom accounting: mints input claims and burns output claims for the launchpad inside the PoolManager.
- Blocks direct liquidity additions except by the launchpad after migration.
- Sets the post-migration dynamic LP fee via setPoolFee, capped at 10%.
- Lets admin bind the launchpad address exactly once.
- Swap behaviour
- On the curve, each exact-input swap is priced by the launchpad via curveSwap; the input amount used is minted to the launchpad as a claim and the output is burned from the launchpad's claims, with a delta returned to the PoolManager. Exact-output swaps revert. After migration, swaps pass through to the pool with no hook logic.
- Liquidity behaviour
- Direct liquidity additions are forbidden unless the sender is the launchpad and the market is in migrated phase 3; otherwise beforeAddLiquidity reverts. Curve liquidity is held virtually by the launchpad as ERC-6909 claims inside the PoolManager, not as pool liquidity.
- Fee behaviour
- On the curve the hook takes no separate fee; the curve price itself is set by the launchpad. Once the market migrates, the launchpad calls setPoolFee to set the pool's dynamic LP fee (nonzero, at most 10%, i.e. 100,000 pips), which is charged on swaps through the pool.
- Owner & admin controls
- Admin (immutable address set at deployment) can call bindLaunchpad once to bind the launchpad address; after that binding is locked and cannot change. Admin cannot pause, upgrade, or change fees directly. The launchpad (set once) can call setPoolFee to set the dynamic LP fee up to MAX_FEE_PIPS (10%) on migrated pools.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeSwap, beforeSwapReturnDelta
beforeInitialize: restricts pool creation to the launchpad. beforeAddLiquidity: blocks direct liquidity provision except by the launchpad after migration. beforeSwap: prices and settles curve swaps through custom accounting via the launchpad's curveSwap, or passes swaps through after migration. beforeSwapReturnDelta: lets the hook return a delta that offsets the input and output amounts it settles on the curve.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: The admin can only bind the launchpad address once, so the admin key has no ongoing power over user funds. The launchpad holds significant control: it prices every curve swap, decides phases, and sets the post-migration LP fee up to 10%. Users are effectively trusting the launchpad contract.
Risk to user funds: User input is recorded as ERC-6909 claims owed to the launchpad and output is paid from launchpad reserves inside the PoolManager, so user funds sit in the launchpad's custody during the curve phase. The hook itself cannot withdraw them, but the launchpad's curve accounting determines what traders receive.
Security findings
- [medium] Trust in launchpad curve logic: Curve swaps are fully priced and settled by the launchpad through curveSwap, which returns amounts the hook trusts. Correctness of pricing and reserve accounting depends on the launchpad contract, which is not analysed here.
- [medium] Custom accounting moves claims in the PoolManager: The hook mints and burns ERC-6909 claims to the launchpad during swaps and returns a delta to the PoolManager. Users trading on the curve depend on the launchpad having correctly reserved output claims.
- [info] Admin binding is one-time: Only the admin-set launchpad can create pools and set the LP fee, and the admin binding is one-time, so no admin can alter fees or block swaps.
- [low] Swaps can revert in some phases: Exact-output swaps revert on the curve, and curve-complete markets revert swaps until migration, so trades can be blocked during that phase.
Contract details
- Verified source
- Yes (CurveHookV5)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 3,140 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, launchpad, return-delta
Pools using CurveHookV5
- HOOKT / GLD (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today