FairLaunchHook on Robinhood Chain
Uniswap v4 Hook Contract 0x6fbf3066842754ba3045775ff73132eb4b1060cc on Robinhood Chain · Launchpad · Verified contract
- Volume (24h)
- $0
- Value locked (TVL)
- $9.46K
- All-time volume
- $169.39K
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 582
What it does
A per-launch swap tax hook for graduated token launches that charges up to 5% on the quote leg and splits it between holders, the creator and the platform.
How it works step by step
- Stores a per-pool tax configuration written once by the launchpad at graduation, capped at 5% of the quote amount.
- Charges the tax only on the pool's quote currency, regardless of swap direction or exact-in/exact-out mode.
- Splits each fee between a holder distributor (pushed and notified), and creator and platform balances held in the hook for pull withdrawal.
- Restricts pool initialization on this hook to the launchpad to prevent squatting on pending launch pool keys.
- Accepts native-currency transfers from the pool manager so native quote fees can be taken.
- Swap behaviour
- On swaps where the quote is the specified currency, beforeSwap takes the fee off the specified amount; on swaps where the quote is the unspecified currency, afterSwap takes the fee from the output or input delta. Holder shares are sent to a reward distributor, while creator and platform shares are credited for later withdrawal.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- A tax of up to 5% (MAX_TAX_BPS 500) of the swapped quote leg is charged per pool, set once by the launchpad at graduation. The tax is split between a holder distributor, the creator and the platform, with the split required to sum to 10,000 bps. Exact-input swaps take the fee off the specified amount in beforeSwap; exact-output and unspecified-leg cases are handled in afterSwap, sized so the fee is the same share of the gross quote moved. Pools with taxBps 0 are never charged.
- Owner & admin controls
- The admin address (set at deployment) can call setLaunchpad once to wire the launchpad; after that only the launchpad can configure per-pool tax settings, and no one can change a pool's tax after configuration (set is one-way). No pause, upgrade proxy, or owner fee override was found. The launchpad alone decides tax parameters at graduation, within a hard cap of 500 bps.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize restricts pool creation on this hook to the launchpad so a pending launch cannot be front-run and bricked. beforeSwap adjusts the specified amount to take the quote-leg tax. afterSwap takes the tax on the unspecified quote leg. beforeSwapReturnDelta and afterSwapReturnDelta allow the hook to take fees via returned deltas.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: The launchpad (set once through the admin) controls the tax configuration of every pool it graduates, including the recipient addresses and split, within the 5% cap. The admin key can only set the launchpad address once. No single key can alter an existing pool's tax or halt swaps.
Risk to user funds: The hook takes up to 5% of swapped quote amounts via return deltas and holds creator and platform shares in its own balance until they are withdrawn. Users trade against pools where the tax is fixed once configured; the hook does not hold LP principal. Funds at risk would mainly stem from a bug in the fee arithmetic or a compromised distributor or claim accounting.
Security findings
- [info] Pull-based fee payout avoids swap DoS: Creator and platform shares are credited to a claimable mapping and pulled via withdraw, so an external recipient cannot revert swaps by rejecting transfers.
- [info] Pool creation restricted to launchpad: beforeInitialize rejects any pool initialization not sent by the launchpad, preventing an attacker from squatting the predictable pool key of a pending launch.
- [medium] One-time launchpad wiring is irreversible: The launchpad address is set via setLaunchpad, callable once by admin. If the admin sets a wrong or malicious launchpad before any pool exists, the hook would be unusable or controlled by that address; the one-shot setter cannot be corrected.
- [low] Distributor call on swap path: The holder share is pushed to the distributor during swaps via poolManager.take and notifyReward. A faulty or malicious distributor could revert and block swaps on taxed pools, since the holder transfer and notification happen inline.
Contract details
- Verified source
- Yes (FairLaunchHook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 6,028 bytes
- Upgradeable proxy
- No
- Detected patterns
- launchpad, moves-currency, return-delta, tax
Pools using FairLaunchHook
- ETH / FCAT (0.30% fee) — 24h volume $0, TVL $9.46K, 0 swaps today