openfinance-pons-launch
OpenFinance Pons v2 launch — launch a token on Robinhood Chain (EVM, chain id 4663) paired against ETH or any Pons-approved asset, INCLUDING Robinhood's own tokenized-stock mirrors (TSLA, AAPL, NVDA, GOOGL, AMZN, MSFT, META, COIN, PLTR, GME, SPY, and more). This is the "launch a token against a Robinhood stock" tool.
ROUTING: • For a NEW launch, use openfinance-launchpad-wrapper instead. It launches on this same Pons curve and adds a fee module, so it is a superset; a plain launch is module='keep' there. This tool's launch_token is legacy, kept for compatibility — do not route a new launch to it. • This tool remains the right one for reading Pons state (list_quote_assets, get_launch_terms, list_tokens) and for fee actions on tokens launched through it before the wrapper existed (get_claimable_fees, sweep_fees, claim_fees, enable_holder_fee_sharing). • Always call action='list_quote_assets' first if the user hasn't stated an exact pair asset, or wants to see what's available — the approved list is live-checked and can change. • This is a DIFFERENT chain/protocol from the Solana launchpad tools (openfinance-raydium-launchpad, openfinance-raydium-cpmm) — Pons runs on Robinhood Chain, an EVM chain, and the user's Privy EVM wallet is used, not their Solana wallet. • There is no Pons API — everything here is a direct on-chain contract call (confirmed at docs.ponsfamily.com/v2).
ACTIONS:
launch_token — { name, symbol, image (base64), description?, twitter?, telegram?, website?, quoteAsset, creatorTaxBps?, developerBuyAmount?, snipeTaxExemptions? }:
twitter/telegram/website are full URLs (e.g. "https://x.com/handle") — pass them exactly as given, do not construct or prefix a URL from a bare handle.
quoteAsset — REQUIRED, a symbol (e.g. "TSLA", "ETH", "AAPL") or address from list_quote_assets.
creatorTaxBps — optional creator trading tax in basis points (0-10000), capped by Pons's live limit. Default 0.
developerBuyAmount — optional atomic dev buy in the quote asset's own human units (e.g. 0.05 for 0.05 ETH), executed in the SAME transaction as the launch via Pons's launchAndBuy helper.
No platform fee — the launching user's own wallet is set as creatorFeeRecipient by default, so they keep 100% of Pons's creator-fee bucket. Set creatorFeeRecipient to redirect it to a specific wallet instead, OR set shareFeesWithHolders: true to redirect it to a Pons holder distributor (pro-rata to token holders) — these two are mutually exclusive; see enable_holder_fee_sharing below for the fuller explanation of the holders path.
Returns { token, curve, pairToken, launchConfigId, graduationThreshold, txHash, tokensOut?, holderFeeSharing? }.
DESTRUCTIVE AND IRREVERSIBLE — launches a real token on mainnet with real ETH/asset committed for the launch fee (and dev buy if set). Show the user: name, symbol, exact quoteAsset resolved, launch fee (from get_launch_terms), creatorTaxBps, and developerBuyAmount. Require explicit confirmation before calling.
list_quote_assets — {} (PUBLIC — no auth): returns [{ address, symbol, name, decimals, isNative }] — every asset currently approved as a launch pair, including Robinhood's tokenized-stock mirrors.
get_launch_terms — { quoteAsset }: live launch eligibility + fee terms for the caller against one quote asset. Call this before launch_token to show the user the current launch fee and confirm their wallet is eligible (canLaunch). Returns { launchFee, launchEnabled, canLaunch, maxCreatorTaxBps, snipeTaxStartBps, snipeTaxSeconds, activeConfig, graduationThreshold, expectedEconomics, protocolFeeShareBps, hookFeeBps, buybackBurnBps }.
list_tokens — { limit?, offset?, creator? } (PUBLIC — no auth): paginated list of tokens launched under our platform. Returns { tokens: [{ token, curve, pairToken, name, symbol, logoUri, creatorAddress, twitter, telegram, website, marketCapUsd, marketCapDisplay, ... }], total, limit, offset }. marketCapUsd (raw number) + marketCapDisplay (compact, e.g. "143K"/"2.5M"/"1.2B") come from Codex via Uniblock — both null until Codex indexes the token, expected for very recent launches. twitter/telegram/website fall back to Codex's own indexed data when our own launch record doesn't have them (e.g. older launches) — our stored value always wins when present.
enable_holder_fee_sharing — { token } (0x… address): redirects an already-launched token's creator fees to its Pons holder distributor — the retry path if launch_token's own shareFeesWithHolders attempt failed, or for opting in after the fact on a token launched without it. Idempotent. Irreversible via Pons's own public creator-controls once done — a durable economic choice, not a UI toggle, so it needs the same explicit-confirmation treatment as launch_token itself.
get_claimable_fees — {} (uses the caller's connected wallet): READ-ONLY. Pons fees are never pushed to a wallet as they accrue (docs.ponsfamily.com/v2#claiming) — they build up on a launch's bonding curve and must be swept into a shared fee escrow before they're claimable. Call this FIRST, before sweep_fees or claim_fees, to see both: what's already claimable right now, and which of the caller's own launches still have fees sitting unswept on their curve. Returns { claimable: [{ quoteAssetSymbol, quoteAssetAddress, balance }], unswept: [{ token, quoteAssetSymbol, quoteAssetAddress, graduated, quoteFeeBalance, creatorTaxBalance }] }. graduated: true entries can't be swept yet (see sweep_fees).
sweep_fees — { token } (0x… address): moves a launch's unswept curve fees into the shared fee escrow, where they become claimable via claim_fees. The caller's connected wallet must be that token's current on-chain creator-fee recipient. Only pre-graduation launches are supported — a graduated token's fees accrue on its pool instead and this action rejects it rather than risk an unverified call. Writes a real transaction (moves the launch's own accrued fees; no user funds are put at risk beyond gas) — mention the amounts from get_claimable_fees before calling, but this doesn't need launch_token-level ceremony since it can't misdirect funds, only move them from curve to escrow. Returns { txHash, quoteFeeSwept, creatorTaxSwept }.
claim_fees — { quoteAsset? } (symbol like "ETH"/"TSLA" or address; defaults to native ETH): withdraws the caller's already-swept escrow balance for one quote asset to their own connected wallet. Call get_claimable_fees first to know which quote assets actually have a balance — this errors if the chosen asset's balance is zero. Returns { txHash, quoteAssetSymbol, claimed }.
⚠️ SAFETY — launch_token is irreversible and commits real funds (the launch fee, plus any dev buy) on mainnet. Always call get_launch_terms first, show the resolved launch fee and quote asset, and get explicit confirmation.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"action": "<action>"
},
"name": "openfinance-pons-launch"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Token name (≤60 chars). | |
| image | No | Base64-encoded PNG/JPG/WebP/GIF (with or without data: prefix). Required for launch_token. | |
| limit | No | ||
| token | No | enable_holder_fee_sharing / sweep_fees: the launched token's 0x… address. | |
| action | Yes | Which action to perform — see tool description. | |
| offset | No | ||
| symbol | No | Token ticker (≤20 chars). | |
| creator | No | list_tokens: filter to one creator wallet. | |
| No | Full URL (e.g. https://x.com/handle) — not a bare handle. | ||
| website | No | Full URL. | |
| telegram | No | Full URL (e.g. https://t.me/handle) — not a bare handle. | |
| quoteAsset | No | REQUIRED for launch_token / get_launch_terms — symbol (e.g. "TSLA", "ETH") or address. claim_fees: optional, defaults to native ETH. | |
| description | No | ≤256 chars. | |
| creatorTaxBps | No | Default 0. Capped by the live maxCreatorTaxBps. | |
| developerBuyAmount | No | Optional atomic dev buy, in the quote asset's own human units. | |
| snipeTaxExemptions | No | Up to 32 wallet addresses exempt from the opening snipe tax. | |
| creatorFeeRecipient | No | launch_token: explicit 0x… wallet to receive creator fees instead of the launcher's own wallet. Mutually exclusive with shareFeesWithHolders. Omit to default to the launcher's own wallet. | |
| minBuybackTokensOut | No | sweep_fees: slippage floor (as a string) for the curve's internal buyback during the sweep. Defaults to 0 (no protection). | |
| shareFeesWithHolders | No | launch_token: redirect creator fees to token holders instead of the launcher's own wallet. Mutually exclusive with creatorFeeRecipient. |