Documentation · Pons V2
DocsProtocol

Pons V2

Pons V2 is the dominant launchpad on Robinhood Chain. It publishes no ABI and its explorer sits behind a bot check, so every figure below was obtained by reading the deployed bytecode over the public RPC, resolving the selectors, and calling the getters against a live curve.

These values were measured on 23 September 2026. They are constants in the deployed contracts rather than configuration we control, but verify them on chain before relying on them if time has passed.

Addresses

ContractAddress
PonsV2LaunchFactory0x7ed5…ec7e
PonsV2LaunchAndBuy0xe33e…2948
PonsV2LaunchLocker0x2674…4952
FeeEscrow0xd3af…ac9e

Economics of a USDG pair

pairTokenEconomics(USDG) returns the opening virtual reserve, the graduation threshold and the quote decimals. The ETH pair carries the same ratio — 1.68 opening against 4.2 graduation — which is what confirms the reading rather than a lucky guess at the field order.

GetterValue
Opening market cap$3,236
Graduation threshold$8,090
launchSupply1,000,000,000
sellableTokens≈ 714,000,000
reservedTokens≈ 286,000,000
launchFee0.0005 ETH
feeBps100 (1.00%)
protocolFeeShareBps3,000 (30%)
Creator share of volume0.70%
snipeTaxStartBps9,900 over 3s
maxCreatorTaxBps1,000

The 72-hour timelock

CREATOR_FEE_RECIPIENT_TIMELOCK is the single most structuring fact about building on Pons. Changing where a launch's creator fees go takes effect three days later. Any contract that is supposed to receive them must therefore exist before the curve does, which is why the vault is deployed first and the token pinned afterwards.

The launch sequence is a direct consequence of this one constant.

Details that cost time to learn

  • Quote assets are whitelisted. approvedPairTokens contains USDG. It does not contain WETH.
  • The escrow indexes credit by msg.sender. One recipient address per coin, which suits a per-coin vault exactly.
  • Reserves are virtual. quoteReserve() equals realQuoteReserve() + phantomQuote(), and getReserves() returns them in the order (quote, token). Reading the real reserve where the price uses the virtual one would mis-size every order.
  • The launch event emits (token, curve, creator) as indexed topics, which is how the keeper discovers a new curve without an ABI.

The curve interface

buy(uint256 quoteIn,  uint256 minTokenOut, address recipient)
sell(uint256 tokenIn, uint256 minQuoteOut, address recipient)
getReserves() → (uint256 quoteReserve, uint256 tokenReserve)

PonsCurveAdapter wraps exactly these three and nothing else, so the vault never holds a hand-rolled encoding of a contract we do not control.

The consequence for pricing

No liquid skin is worth $3,236. The most expensive item in the reference basket trades around $2,150. Under the obvious convention — whole supply equals one skin — every coin would open far above its target, in the direction a fresh vault with no inventory cannot defend. Hence the multiplier described in the launch sequence. covertskins has the identical problem on pump.fun and does not address it.

Snapshot data last refreshed Sep 23, 2026 UTC.