LittleJohnBondingHook on Robinhood Chain
Uniswap v4 Hook Contract 0xa8a5c4932ba4cc71347dcab30329c2816ba028cc on Robinhood Chain · Launchpad · Verified contract
- Volume (24h)
- $18.72K
- Value locked (TVL)
- $85.78K
- All-time volume
- $14.79M
- Pools using this hook
- 25
- Swaps (24h)
- 210 (95 traders)
- Total swaps
- 61,436
What it does
A Uniswap v4 bonding-curve launch hook that runs trading in a real pool from the first trade and marks graduation once enough ETH is absorbed, without moving liquidity.
How it works step by step
- Registers a per-pool graduation threshold and fixed launch liquidity once, from the factory during launch
- Charges a dynamic ETH-leg fee on swaps and routes it as ERC-6909 claims to the per-launch locker
- Computes absorbed ETH from the post-swap sqrt price with round-down math and emits BondingGraduated once when it meets the threshold
- Locks liquidity so only the factory's seeding mint is accepted; all later adds revert
- Exposes bondingProgress, isGraduated and milestoneOf views for UI badges and progress bars
- Swap behaviour
- Swaps run through the pool with a dynamic ETH-leg fee and anti-snipe decay; after each swap the hook checks the post-swap price to see whether the absorbed-ETH threshold has been crossed and latches graduation once.
- Liquidity behaviour
- Only the factory's seeding mint is accepted; the first add latches seeded and every later add reverts with OnlyLaunchLiquidity. Liquidity removal is not gated by this hook.
- Fee behaviour
- Dynamic fee pool: base hook takes an ETH-leg fee on both swap directions, minted to the per-launch locker as an ERC-6909 native-ETH claim, with anti-snipe decay bounded by MIN/MAX fee constants; exact fee parameters are set per launch at register time.
- Owner & admin controls
- No owner or admin role on the bonding hook itself; registerBonding and register are factory-only, write-once, with no setter, pause or upgrade path. The base LittleJohnHook is not fully visible in the provided source, so its admin surface is inferred to match the stated design.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize restricts pool initialization to the factory; beforeAddLiquidity enforces the one-time seeding lock; beforeSwap sets dynamic fee overrides and the ETH-leg fee via return delta; afterSwap applies the base fee logic and checks the graduation milestone; beforeSwapReturnDelta and afterSwapReturnDelta allow the hook to take fees from swap amounts.
Security & trust assessment
Risk level: low (verified source, medium confidence).
Who controls it: No single key can change fees, pause swaps or move funds on the bonding hook; configuration is fixed at launch. The factory is the only writer of milestone and fee config.
Risk to user funds: The hook can take a fee from swap ETH and route it to the locker claim, and it can reject liquidity adds after seeding, but it cannot hold user principal, move pool liquidity or block swaps through any admin path visible in the source.
Security findings
- [info] Return-delta fee skimming: The hook takes its fee through beforeSwap and afterSwap return deltas, so a portion of each swap's ETH is diverted to the locker. This is by design but means swap output differs from the raw pool price.
- [low] Milestone affects badge only: Graduation is a read-only milestone computed from the post-swap price and fixed liquidity; it does not move funds, so a failure here affects only the UI badge, not pool assets.
- [low] First-add latch relies on tx ordering: Correctness of the seeding-lock depends on tx ordering inside the nonReentrant createBondingLaunch; the first add is trusted based on that sequence rather than the sender address.
- [info] Base hook not fully reviewed: The base LittleJohnHook source was omitted from the provided input, so its fee bounds, decay logic and any admin hooks could not be fully verified here.
Contract details
- Verified source
- Yes (LittleJohnBondingHook)
- Compiler
- solc 0.8.28+commit.7893614a
- Bytecode size
- 11,142 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, erc6909-claims, launchpad, return-delta
Pools using LittleJohnBondingHook
- ETH / SLIPPY (Dynamic fee) — 24h volume $18.71K, TVL $83.56K, 209 swaps today
- ETH / SHRUB (Dynamic fee) — 24h volume $12, TVL $858, 1 swaps today
- ETH / BLACKSWAN (Dynamic fee) — 24h volume $0, TVL $160, 0 swaps today
- ETH / BARROW (Dynamic fee) — 24h volume $0, TVL $49, 0 swaps today
- ETH / GREWDL (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- ETH / MARS (Dynamic fee) — 24h volume $0, TVL $148, 0 swaps today
- ETH / LJCAN2 (Dynamic fee) — 24h volume $0, TVL $431, 0 swaps today
- ETH / GRNWLBS (Dynamic fee) — 24h volume $0, TVL $65, 0 swaps today
- ETH / LITTLEJOHN (Dynamic fee) — 24h volume $0, TVL $42, 0 swaps today
- ETH / FARTBLASTER (Dynamic fee) — 24h volume $0, TVL $0.37, 0 swaps today
- ETH / BLACKSWAN (Dynamic fee) — 24h volume $0, TVL $0.33, 0 swaps today
- ETH / SHRUB (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- ETH / JOHN (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- ETH / BELL (Dynamic fee) — 24h volume $0, TVL $0.06, 0 swaps today
- ETH / HOPIUM (Dynamic fee) — 24h volume $0, TVL $0.12, 0 swaps today
- ETH / BABYSLIPPY (Dynamic fee) — 24h volume $0, TVL $12, 0 swaps today
- ETH / SISSA (Dynamic fee) — 24h volume $0, TVL $355, 0 swaps today
- ETH / BTC (Dynamic fee) — 24h volume $0, TVL $24, 0 swaps today
- ETH / WWE (Dynamic fee) — 24h volume $0, TVL $0.18, 0 swaps today
- ETH / LITTLEJOHNDOG (Dynamic fee) — 24h volume $0, TVL $0.03, 0 swaps today