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