PositionManager on Robinhood Chain
Uniswap v4 Hook Contract 0x5cf8e499c7c466c7e2cf127bdf129f57151e65dc on Robinhood Chain · Launchpad · Verified contract
- Volume (24h)
- $162
- Value locked (TVL)
- $11.96K
- All-time volume
- $4.17M
- Pools using this hook
- 5,337
- Swaps (24h)
- 3 (1 traders)
- Total swaps
- 49,630
What it does
A launchpad hook that creates memecoin pools with single-sided liquidity, optional premine, scheduled launch gating, internal fee-inventory swap fills and configurable fee distribution across creators, the BidWall and the protocol.
How it works step by step
- Creates a memecoin pool at launch with a single-sided memecoin liquidity position and an optional creator premine executed in the same transaction
- Captures a configurable swap fee in the unspecified currency via return deltas, optionally adjusted by an external fee calculator
- Routes referrer fees directly or to ReferralEscrow and deposits remaining fees into the InternalSwapPool
- Distributes accumulated native fees to protocol, creator and BidWall or treasury once a 0.001 ETH threshold is reached
- Gates trading on scheduled launches and records oracle tick observations on every swap
- Emits Uniswap-standard HookSwap and HookFee events and notifies subscribers of pool state changes
- Swap behaviour
- beforeSwap blocks trading until any scheduled flaunch time, may fill part of the swap from internal fee inventory, and records oracle observations. afterSwap takes the configured swap fee, pays any referrer share, deposits remaining fees into the internal pool and distributes accumulated native fees.
- Liquidity behaviour
- On afterAddLiquidity and afterRemoveLiquidity the hook only emits pool state and notifier events; it does not alter liquidity. Launch seeding creates a single-sided immutable memecoin position at pool creation, and the BidWall can be deposited into and closed via the PoolManager unlock callback.
- Fee behaviour
- Swap fees are taken in the unspecified currency via beforeSwap and afterSwap return deltas. The base swap fee comes from a per-pool or global FeeDistribution, optionally adjusted by an external feeCalculator and capped by a fee-exemption flat fee. Fees are split in a waterfall: referrer share paid directly or to ReferralEscrow, remainder deposited into InternalSwapPool, then distributed to protocol, creator and BidWall or treasury once the native balance exceeds a 0.001 ETH threshold. The pool itself uses fee 0 with the hook charging the swap fee.
- Owner & admin controls
- Owner (Solady Ownable) can set flaunchContract, initialPrice, feeCalculator, feeExemptions-related contracts, the FeeDistribution (global and per pool), referralEscrow and the notifier subscriber set. The $FLAY governance address alone can change the global protocol fee up to 10%. Owner can subscribe and unsubscribe notifier subscribers. Ownership can be transferred or handed over via a two-step handover. No pause mechanism was observed in the provided source.
Enabled Uniswap v4 callbacks
beforeInitialize, afterAddLiquidity, afterRemoveLiquidity, beforeSwap, afterSwap, afterDonate, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize blocks direct external pool initialization. afterAddLiquidity and afterRemoveLiquidity emit events and notify subscribers. beforeSwap enforces scheduled flaunch timing, runs the internal swap pool fill with a take and settle against the PoolManager, checks BidWall staleness and records oracle observations. afterSwap captures swap fees, distributes accumulated fees, tracks swaps in the fee calculator and emits events. afterDonate emits a pool state event. beforeSwapReturnDelta and afterSwapReturnDelta allow the hook to take fee currency and modify swap deltas.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: The owner can point the hook at arbitrary feeCalculator, flaunch and initialPrice contracts, change the global and per-pool fee distribution, and redirect fee routing. A malicious or compromised owner key could raise fees to the maximum 100% swap fee or misconfigure the fee calculator, affecting all swappers. The governance key can raise the protocol share to 10%.
Risk to user funds: The hook holds native token and memecoin balances during launch, BidWall positions and internal swap inventory, and takes swap fees via return deltas. The owner or feeCalculator can set swap fees, and the internal swap pool can fill swaps ahead of the Uniswap pool. Funds are not held by a withdrawable admin path, but fee configuration and scheduled gating can affect user execution.
Security findings
- [medium] Owner can set swap fee up to 100%: The owner can set any feeCalculator and any per-pool FeeDistribution, including swapFee up to 100%, which is applied to every swap in that pool.
- [medium] Hook modifies swap deltas and settles tokens: The hook takes swap fees via return deltas and uses an internal swap pool that trades against fee inventory inside beforeSwap, altering the amounts that the PoolManager sees.
- [low] Self-unlock and internal settlement logic: Unlock callback is restricted to the PoolManager and the hook performs take and settle inside beforeSwap, so the pathway is an intentional but non-trivial control flow that merits audit coverage.
- [info] Swaps gated by launch schedule: Scheduled pools revert swaps with TokenNotFlaunched until flaunchAt has passed, so trading can be delayed by design.
- [low] Fee routing depends on external memecoin state: Fee splits can route creator and BidWall balances through live reads of memecoin.creator() and treasury, which depend on external token contracts.
Contract details
- Verified source
- Yes (PositionManager)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 23,524 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, erc6909-claims, launchpad, moves-currency, oracle, ownable, return-delta, self-unlock, tax
Pools using PositionManager
- flETH / GMD (0.00% fee) — 24h volume $162, TVL $1.84K, 3 swaps today
- flETH / STRK (0.00% fee) — 24h volume $0, TVL $4.58, 0 swaps today
- flETH / HALFCAT (0.00% fee) — 24h volume $0, TVL $0.80, 0 swaps today
- flETH / DGF (0.00% fee) — 24h volume $0, TVL $0.27, 0 swaps today
- flETH / BCAT (0.00% fee) — 24h volume $0, TVL $0.01, 0 swaps today
- flETH / SEALROAD (0.00% fee) — 24h volume $0, TVL <$0.01, 0 swaps today
- flETH / VINCERA (0.00% fee) — 24h volume $0, TVL $2.34, 0 swaps today
- flETH / HASSCOIN (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- flETH / JACK (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- flETH / HOOD (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- flETH / RPUNKS (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- flETH / SITDOG (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- flETH / MUSELIM (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- flETH / FRESCO (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- flETH / DIHSCREEN (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- flETH / JEANGREEN (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- flETH / JEANGREY (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- flETH / RURR (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- flETH / DONG (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- flETH / 18SEP (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today