Launchpad hook on Robinhood Chain
Uniswap v4 Hook Contract 0x080cc3b5aa0b87c9a1816352821b38994d2c68c0 on Robinhood Chain · Launchpad
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 160 (96 traders)
- Total swaps
- 160
What it does
This launchpad hook uses a launch fee that decays over time, so early sells pay more and later sells pay less toward a floor, while buys can be capped by a limit and exempt addresses bypass these rules.
How it works step by step
- Hook is attached at beforeInitialize, beforeAddLiquidity, beforeSwap and afterSwap; it gates pool initialization and liquidity additions and enforces sell and buy rules on swaps.
- Tracks a launch stage and an openedAt timestamp (packed in storage slot 3), with a LAUNCH_FEE constant and a decay period, so the fee schedule changes over time after launch.
- Exposes currentBuyFee and currentSellFee views and a sellFloor, suggesting a sell fee that decays from a launch level toward a floor after decayStart.
- Has an optional buy limit (buyLimit, buyLimitActive, MIN_BUY_LIMIT, MAX_FLOOR) and an exemption list (isExempt) for addresses that bypass restrictions.
- Uses a poolOpen flag and a poolId to control when the pool accepts trading, and an owner with two-step ownership transfer (pendingOwner, acceptOwnership, renounceOwnership).
- Swap behaviour
- Swap callbacks are present: beforeSwap checks launch state, limits and sell/buy rules, and afterSwap updates state such as the stage and the current fee values. Exact fee amounts per trade direction could not be confirmed from the decoded bytecode, but the sell fee is designed to decay over time, so sells made early in the launch likely pay more than later sells, while buys are subject to a buy limit when active.
- Liquidity behaviour
- beforeAddLiquidity is enforced, so liquidity additions are gated by the hook (likely restricted before the pool is open or to certain addresses). beforeRemoveLiquidity and the afterAddLiquidity/afterRemoveLiquidity selectors are present in the dispatch table but are not listed as enabled permissions, so removals are not hooked.
- Fee behaviour
- Uses dynamic fees set by the hook: a launch fee (LAUNCH_FEE) that decays after decayStart toward a sell floor, with separate current buy and sell fee views and a 24-bit fee value updated by the owner-callable setter (selector 0xfb6acce4 takes two uint24 values). Fee splitting or sharing to other parties was not identified.
- Owner & admin controls
- An owner (Ownable with two-step transfer) can transfer or renounce ownership, and an owner-restricted setter takes two uint24 values, likely fee or floor parameters. A function sets a uint40 timestamp and another sets a bool flag, likely to open the pool or change the launch stage. Whether these are gated by onlyOwner could not be verified from bytecode alone.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap
beforeInitialize: validates and records pool setup such as poolId and open time. beforeAddLiquidity: restricts liquidity additions while the launch is in progress. beforeSwap: enforces buy limits, exemptions and sell/buy gating, and provides the dynamic fee. afterSwap: updates the stage and time-dependent state after each trade.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, medium confidence).
Who controls it: The owner can likely change fee levels, the launch timing, the pool open state, buy limits and exempt addresses, which could make trading expensive, blocked, or unequal for some users.
Risk to user funds: The hook does not appear to hold tokens or use return deltas, so it does not directly custody user funds, but it can block swaps or liquidity additions and impose high fees on trades.
Security findings
- [medium] Owner-set fee parameters: A privileged setter accepts two uint24 values that are written into the fee-related storage slot, so the owner can likely raise the sell or buy fee substantially, affecting all traders.
- [medium] Owner-controlled launch timing and pool open flag: Functions that write openedAt-related and open-flag storage let the owner change when trading opens or how long the launch lasts, which can block or delay swaps for users.
- [low] Buy limit and exemption list: A buy limit and an exemption list allow selected addresses to trade differently from others; the owner can likely add exempt addresses, creating unequal access.
- [info] No source verification: Analysis is based on decoded bytecode only, so exact access control on setters and the precise fee math could not be confirmed.
Contract details
- Verified source
- No
- Bytecode size
- 8,353 bytes
- Upgradeable proxy
- No
- Detected patterns
- launchpad, liquidity-management, ownable