PonsV2MemeHook on Robinhood Chain
Uniswap v4 Hook Contract 0xe5e702641ea86f4ae6cc3cdaed2b886f976be044 on Robinhood Chain · Launchpad · Verified contract
- Volume (24h)
- $17.09M
- Value locked (TVL)
- $34.62M
- All-time volume
- $5.36B
- Pools using this hook
- 10,309
- Swaps (24h)
- 151,759 (18,591 traders)
- Total swaps
- 46.3M
What it does
A shared hook for graduated Pons memecoin pools that skims a swap fee plus a creator tax on every trade, then converts and splits those fees between the protocol, a five-year buyback vest and the token creator.
How it works step by step
- Restricts pool initialization to the registered factory, so pools using this hook can only be created through the launchpad.
- On every swap, takes hookFeeBps (default 1%, max 10%) plus a per-pool creatorTaxBps from the unspecified currency, using afterSwap return delta and a PoolManager take.
- Tracks the take in pendingFees, pendingCreatorTax and pendingBuyback ledgers per pool and currency. Fees accrued in the memecoin stay unconverted until a sweep.
- sweepPoolFees converts memecoin fees to the quote currency by swapping against the pool's own liquidity via unlock, with a price-impact limit and caller-supplied minimum outputs.
- Splits quote fees into a protocol share (max 50%), an optional buyback leg that buys the memecoin and locks it in a five-year linear vest vault, and a creator remainder. Payouts go through a shared fee escrow.
- Exposes the live fee policy (currentFeePolicy) that new launches snapshot and that the bonding curve reads.
- Swap behaviour
- beforeSwap is not enabled. afterSwap looks up the pool's launch record. If the pool is unregistered or both fees are zero, it does nothing. Otherwise it computes hookFeeBps plus creatorTaxBps of the unspecified-side amount, takes that from the PoolManager to the hook, books it in the pending ledgers and returns it as the afterSwap delta, so the swapper pays it. The combined fee is capped at 20% by registration checks.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- Fee bps and creator tax bps are frozen per pool at registration, copied from the factory's policy snapshot. The hook fee is at most 10% and fee plus tax at most 20%. Hook fees are split into protocol share (at most 50%), optional buyback-and-vest taken from the creator's portion, and the creator remainder. The creator tax goes entirely to the creator. Payouts are credited to a fee escrow. It is not a dynamic LP fee: the pool's LP fee is untouched.
- Owner & admin controls
- The owner (Ownable2Step, renounce disabled) can set protocolFeeShareBps (max 50%), buybackBurnBps (max 100%), hookFeeBps (max 10%), maxInternalPriceImpactBps, the protocol fee recipient and the fee sweep operator. These changes only affect the live policy that new launches snapshot, since registered pools keep frozen terms. The owner can also do the one-time wiring of the factory and buyback vault, and call rescuePoolFees to pay out pending fees directly. The factory can register pools, change a pool's creator fee recipient and toggle its buyback. The sweep operator, initially the owner, runs price-sensitive conversions and buybacks.
Enabled Uniswap v4 callbacks
beforeInitialize, afterSwap, afterSwapReturnDelta
beforeInitialize only lets the factory initialize pools with this hook. afterSwap collects the hook fee and creator tax after each swap. afterSwapReturnDelta lets the hook claim that fee from the swapper's unspecified-currency amount.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: The owner can change the global fee policy for future launches, redirect the protocol fee recipient, choose the sweep operator who controls when conversions and buybacks occur, and force a direct payout of pending fees. The factory can reassign a pool's creator fee recipient. Neither can raise fees on already registered pools beyond their frozen terms or pause swaps, based on the verified source.
Risk to user funds: The hook does not hold LP positions. It holds only accrued fees (ETH or ERC-20) and briefly the tokens used in internal swaps. Swappers lose up to 20% of the unspecified amount to fees by design. Quote tokens that are fee-on-transfer make takes and sweeps revert (InexactQuoteTransfer), which can block swaps on such pools, and sweeps are blocked until the owner rescues. Bought-back memecoin is locked in an external vault (five-year vest), outside this hook's reach.
Security findings
- [medium] Hook takes a fee from swappers via return delta: _afterSwap returns int128(totalAmount) after poolManager.take, so up to 20% of the unspecified amount (hookFeeBps max 10% plus creatorTaxBps) is diverted from every swap on registered pools. Terms are frozen per pool, but the creator tax is chosen at launch.
- [medium] Hook custodies accrued fees: Taken fees sit in the hook's balance until sweepPoolFees or rescuePoolFees pays them out, tracked by the pendingFees, pendingCreatorTax and pendingBuyback mappings. They are exposed to the correctness of the hook's code and to the privileged callers.
- [medium] Internal swaps are sandwichable and rely on trusted minimums: Conversion and buyback swaps run against the pool's own liquidity with only a price-impact bound relative to spot, as the source acknowledges. Protection depends on the operator's minConversionQuoteOut and minBuybackTokensOut, and the creator cannot trigger these swaps. A badly chosen minimum by the operator could leak value.
- [low] Owner can rescue pending fees bypassing escrow: rescuePoolFees (onlyOwner) pays the protocol and creator split directly, zeroes the pending buckets, and skips the buyback. The recipients are the stored ones, not the owner, but it does change how and when fees are routed.
- [low] Factory and owner are trusted roles: The factory address (set once) controls pool registration, creator recipient changes and the buyback toggle. The owner sets the global policy and sweep operator, and renounceOwnership is disabled. Swaps cannot be paused by any role.
Contract details
- Verified source
- Yes (PonsV2MemeHook)
- Compiler
- solc 0.8.35+commit.47b9dedd
- Bytecode size
- 15,167 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, launchpad, liquidity-management, moves-currency, ownable, return-delta, self-unlock, tax
Pools using PonsV2MemeHook
- ETH / EMPIREX (0.00% fee) — 24h volume $1.61M, TVL $34.83K, 5,643 swaps today
- ETH / NOVAAI (0.00% fee) — 24h volume $1.41M, TVL $1.16M, 1,322 swaps today
- ETH / CUE (0.00% fee) — 24h volume $951.34K, TVL $3.49K, 7,958 swaps today
- ETH / OpenAI (0.00% fee) — 24h volume $921.60K, TVL $4.23K, 8,397 swaps today
- ETH / OPENAI (0.00% fee) — 24h volume $795.18K, TVL $3.77K, 7,566 swaps today
- ETH / MUT8 (0.00% fee) — 24h volume $710.96K, TVL $47.98K, 3,918 swaps today
- ETH / IGNITION (0.00% fee) — 24h volume $525.88K, TVL $39.55K, 3,507 swaps today
- ETH / BURROW (0.00% fee) — 24h volume $520.77K, TVL $11.76K, 6,466 swaps today
- VIH / USDG (0.00% fee) — 24h volume $479.80K, TVL $2.95K, 6,046 swaps today
- USDG / coms (0.00% fee) — 24h volume $469.33K, TVL $6.10K, 5,695 swaps today
- USDG / VRAX (0.00% fee) — 24h volume $437.73K, TVL $188.82K, 2,800 swaps today
- ORBIO / NVDA (0.00% fee) — 24h volume $430.97K, TVL $490.66K, 723 swaps today
- ETH / MOTION (0.00% fee) — 24h volume $293.83K, TVL $32.15K, 2,179 swaps today
- ETH / ZZZ (0.00% fee) — 24h volume $217.33K, TVL $345.78K, 752 swaps today
- SI / NVDA (0.00% fee) — 24h volume $213.69K, TVL $19.92K, 542 swaps today
- ETH / ZERO (0.00% fee) — 24h volume $209.65K, TVL $26.90K, 1,884 swaps today
- USDG / ROBINCAT (0.00% fee) — 24h volume $203.55K, TVL $55.32K, 1,298 swaps today
- ETH / IRIDIUS (0.00% fee) — 24h volume $199.08K, TVL $17.85K, 1,656 swaps today
- ETH / HRX (0.00% fee) — 24h volume $187.55K, TVL $13.50K, 2,471 swaps today
- ETH / VANAR (0.00% fee) — 24h volume $182.87K, TVL $5.92K, 2,662 swaps today