LaunchFeeHook on Robinhood Chain
Uniswap v4 Hook Contract 0x7c7d6cfb8ce006d6ccf0e9f92265a872e4302044 on Robinhood Chain · Fee sharing · Verified contract
- Volume (24h)
- $96
- Value locked (TVL)
- $4.63
- All-time volume
- $96
- Pools using this hook
- 1
- Swaps (24h)
- 13 (5 traders)
- Total swaps
- 13
What it does
A post-graduation fee hook that takes a 1% protocol fee plus a creator tax from each swap on a graduated launch pool and routes those fees to the launchpad's escrow for the creator and protocol.
This read was written for the hook 0x7635…6044 on Robinhood Chain and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.
How it works step by step
- Only the graduation adapter can open pools that carry this hook, enforced in beforeInitialize against registered pools.
- On each swap, takes 1% of the unspecified leg as protocol fee plus the launch's creator tax (up to 10%), accrued per pool.
- Stores protocol and creator balances separately in both the launch token and the quote asset.
- Optionally converts pending launch-token fees into the quote asset via an operator-only internal swap, bounded by price-impact limits and a cooldown.
- Sweeps pending fees into the liquidity locker, which credits them to the launch's escrow for the creator and protocol.
- Permissionless sweepPoolFees lets anyone push accrued fees to the locker without a revert on empty balances.
- Swap behaviour
- After each swap, the hook takes the protocol fee and creator tax from the unspecified currency (the side the trader did not fix), accrues them per pool, and returns the amount as an afterSwap delta. It does not run before the swap and cannot refuse or reprice it.
- Liquidity behaviour
- No liquidity callbacks. The hook does not hook into add or remove liquidity.
- Fee behaviour
- A fixed protocol share (HOOK_FEE_BPS = 100, i.e. 1%) plus a per-launch creator tax (creatorFeeBps, capped at 10%) are taken from the unspecified currency of each post-graduation swap, accrued as pending balances and later swept to the escrow via the locker. Fees are taken with take() and returned as a positive afterSwap delta. Protocol and creator splits are tracked separately per currency.
- Owner & admin controls
- Owner (set at construction) can call setFeeSweepOperator to name the one account allowed to run converting sweeps, and setMaxInternalPriceImpact to tighten (not raise) the conversion price-impact cap within 1 to 2000 bps. The owner cannot change fees, pool registrations, beneficiaries or the hook's immutable addresses. The adapter alone can register pools. No pause, upgrade or proxy mechanism is visible in the decoded interface.
Enabled Uniswap v4 callbacks
beforeInitialize, afterSwap, afterSwapReturnDelta
beforeInitialize: only the graduation adapter may initialize a pool carrying this hook, and only for pools registered beforehand, preventing counterfeit graduated markets. afterSwap: takes the fee from each completed swap on the unspecified leg. afterSwapReturnDelta: lets the hook's taken amount be settled against the swapper's delta, so it is charged without moving tokens inside the swap.
Security & trust assessment
Risk level: low (verified source, high confidence).
Who controls it: The owner cannot redirect or confiscate fees and cannot change where they go. It can set the operator who triggers internal conversion swaps and can lower the price-impact cap. The operator can choose when conversions run and with what impact bound (up to 200 bps, capped in bytecode), so a compromised operator could time conversions to move price, but only within bounded size and a 5-minute per-pool cooldown. Minimum-output is required on conversions.
Risk to user funds: The hook can hold fee balances in the launch token and quote asset (and native coin via receive) until they are swept. It cannot touch the pool's principal liquidity, reprice a trader's swap in beforeSwap, or refuse a trade, since beforeSwap is disabled. Trader exposure is limited to the 1% protocol fee plus the creator tax on each post-graduation swap. The internal conversion can move the pool price by up to 2% per call, which affects execution for traders on that pool.
Security findings
- [medium] Operator-driven internal conversion swaps: Conversions swap launch tokens into the pool being charged. Only the fee sweep operator can trigger them, and each is bounded by a hard 200 bps price-impact ceiling, a configurable rail, and a 5-minute cooldown per pool. A compromised or colluding operator could still time price moves against traders.
- [low] Fees held in the hook until swept: Fees are accrued via take() inside afterSwap and held in the hook until swept. Pending balances can be stranded if a pool's currency misbehaves on transfer, although sweepPoolFees is permissionless and idempotent, and a failed sweep reverts without losing the pending balance.
- [info] Single owner, no visible ownership transfer: The hook uses the owner-set operator model for converting sweeps; ownership is a single EOA with no timelock, multisig requirement, or ownership transfer function visible in the ABI.
- [info] Verified source and address-encoded permissions: The contract was verified on Sourcify with source matching the decoded ABI, and the hook address encodes exactly the three permissions the code implements, enforced in the constructor.
Contract details
- Verified source
- Yes (LaunchFeeHook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 9,987 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, erc20, fee-sharing, launchpad, moves-currency, ownable, return-delta, self-unlock
Pools using LaunchFeeHook
- ETH / SCT (0.00% fee) — 24h volume $96, TVL $4.63, 13 swaps today