Solaris AISolaris AI FlowDocs
Node ReferenceDeFi

StonkFun

Launchpad for coins paired with anything (tokenized stocks, pre-IPO tokens, currencies, SOL): discovery feeds, holder rewards, burns and buybacks, and claiming creator fees.

View as Markdown

The StonkFun node talks to the StonkFun Developer API. StonkFun is a Solana launchpad where every coin is priced against a quote token instead of SOL: tokenized stocks (SPYx, NVDAx, TSLAx), pre-IPO tokens (OPENAI, ANTHROPIC), currencies, leveraged tokens, SOL, or any custom mint. Coins launch on a Raydium LaunchLab bonding curve and graduate to a Raydium CPMM pool once they reach the platform's graduation market cap. Use a coin's mint with the Jupiter or Relay quote and swap operations; execution depends on the selected venue returning an available route for the pair and amount.

No API key is needed. The API is open behind a per-IP rate limit (300 requests per minute on reads). The one operation that moves funds, claimFees, signs with your connected wallet: StonkFun builds an unsigned transaction, Solaris AI signs it through your embedded wallet, and the signed bytes go back to StonkFun. No private key ever leaves the platform, and the operation carries a Dry run switch that stops before any signature.

Launching a coin is not a node operation. StonkFun retired its paid launch flow on 4 October 2026; launches now go through the StonkFun Studio app, which builds them on Raydium LaunchLab from your wallet.

Prerequisites

  • Read operations: nothing.
  • claimFees: a connected wallet with server-side signing authorized. A claim only pays the network fee.

What to build with it

  • New-launch alerts: a cron trigger every 5 minutes, a Code node that returns new Date(Date.now() - 5 * 60 * 1000).toISOString() (triggers do not expose a last-run time), listLaunches with since set to that value plus mode or a creator wallet filter, then a Telegram or Discord message per row. Filter listTokens by quoteMint to watch only coins paired with one stock.
  • Graduation watch: listTokens with status set to aboutToGraduate, sorted by market cap, into a condition on graduationProgress, then a Jupiter or Relay swap on the mint. Graduated coins trade on Raydium CPMM.
  • Creator fee sweep: for coins on StonkFun's earlier Raydium pools, a scheduled claimFees that collects the creator share whenever the quote amount crosses a threshold, followed by a Jupiter or Relay swap from the quote token into SOL. Coins launched on LaunchLab, including every StonkFun Studio launch, need no claim: StonkFun forwards their creator share to the wallet, and Studio's fee plan routes it.
  • Holder digest: getTokenRewards and getTokenBurns for the coins you hold, plus getRevenue for the STONK buyback and burn feed, summarized by an AI node once a day.

Operations

Discover

listTokens: live market data for every coin with a platform pool. Search matches name, symbol, or mint. Sort is marketCap (default), newest, or volume. Status narrows to new (still on the curve), aboutToGraduate (between the platform's about-to-graduate and graduation market caps, read them from getStats), or graduated. Fee Model narrows to standard or reward coins. Paired With takes a quote-token mint and returns only coins priced against it; Pair Category does the same by category (xstock, prestock, currency, leverage, collectible, solana, backpack, custom). Rows carry market.priceUsd, market.marketCapUsd, market.volume24hUsd, status, graduationProgress (0 to 1), and the quote object naming the pair. Pages are 1 to 100 rows, default 25.

getToken: live market data plus the launch record for one mint, under data.token and data.launch.

listLaunches: launch records newest first, including self-built LaunchLab launches the platform adopted. Filter by Creator Wallet, Fee Model, and Since (an ISO 8601 timestamp; only launches at or after it). This is the cron-friendly feed: pass a rolling window that matches the trigger interval as since (computed in a Code node, since triggers do not expose a last-run time) and every row is new. A since template that resolves to nothing fails the run rather than silently returning every launch ever made.

listPairs: the quote tokens a coin can be launched against, with category, decimals, tokenProgram (xStocks use Token-2022), launchable, and launchLabReady. Use it to find the mint for Paired With or Quote Mint on the other operations.

listAllTokens: a flat identity index of every platform token with no market data: address (the mint), name, symbol, decimals, tokenProgram, logoUrl, url, pool, quoteMint, quoteSymbol, creator, launchpad, and createdAt. It pages by Limit (1 to 500, the default) and Offset rather than page numbers, with Order oldest (default) or newest, and data.pagination.hasMore says whether another page exists. Use it to mirror the whole catalog; use listTokens when you need prices or graduation status.

Token

getTokenBurns: burn totals for a mint (totals.amountTokens, totals.valueUsdAtBurn, totals.burnCount) and the most recent burns with a source of buyback, flywheel, quote-revenue, reward, or auto. Limit is 1 to 100.

getTokenRewards: holder-reward distribution totals for a reward coin: distributedTokens in the quote token, payoutCount, holderCount, lastPayoutAt.

getTokenAirdrop: what a coin launched with. data.airdrop is null when there was no airdrop; otherwise it carries the carve-out percent, recipient count, and tier.

getTokenBacking: the USD permanently locked behind a Pump-launched coin, summed from the platform's own locked positions. Pump launches only: a Raydium or LaunchLab coin answers 400 rather than zero, so read launchpad from getToken first. When this page was written StonkFun reported Pump launches disabled, so no live coin answered it yet.

getClaimableFees: what the creator of a standard coin can claim right now, with no wallet involved. data.claimable holds base and quote amounts (each with symbol and amountTokens) and is null with a data.reason when nothing is claimable; for a LaunchLab coin the reason says the creator share is forwarded automatically. data.creator is the wallet that can claim.

Platform

getStats: aggregate totals (tokens, graduated, reward launches, market cap, 24h volume, revenue, buybacks, burns) plus config, which carries the graduation thresholds (graduationMarketCapUsd, aboutToGraduateMarketCapUsd) and feature switches such as launchLabEnabled, paidLaunchesEnabled and devBuysEnabled.

getRevenue: fee revenue, STONK buybacks (totalBuybackUsd, boughtBackTokens, lastBuybackAt), burns by source, and the most recent buyback transactions. Limit bounds the recent list.

getRevenueHistory: the whole daily history keyed by UTC day: dailyRevenue, dailyHoldersRevenue, and dailyProtocolRevenue in USD, plus a coverage block on how many rows were priced.

getRewards: lifetime holder payouts per reward coin, largest first, with distributedTokens, payoutCount, holderCount, and lastPayoutAt.

getLaunchLabPricing: curve sizing (curve.configId, curve.supply, curve.totalSellA, raise.raw) and the platform and curve-rule ids for a launch built against Raydium's LaunchLab program with a given Quote Mint. StonkFun Studio builds its launches from this response; the read is here for workflows that inspect the curve a launch would open on.

Creator

launchToken is retired. StonkFun switched off the paid launch flow it used, so a node with this operation fails before anything is requested or signed, and new nodes cannot select it. Launch coins from the StonkFun Studio app, which builds and signs Raydium LaunchLab launches from your wallet.

claimFees signs a live transaction. It reads what is claimable, has StonkFun prepare the claim (valid for 90 seconds), signs it with your wallet, and submits it. Fees land in your own token accounts for both tokens of the pair. Only the coin's creator wallet, the holder of its Fee Key NFT, can claim, so this works for coins your wallet launched on StonkFun's earlier Raydium pools; when the connected wallet is not the creator the node fails and names the wallet that is. A LaunchLab coin has nothing to claim (its creator share is forwarded automatically), so the node completes with claimed: false and that reason. When nothing is claimable the node completes normally with claimed: false and a reason, so a scheduled claim loop stays green; put a Condition on {stonkfunResponse.data.claimed} in front of anything that should only run after a real claim. With Dry run on, it only reads claimable and also reports claimed: false. Submitting is idempotent: a retry of the same claim returns the original signature with alreadySubmitted: true.

Before signing, Solaris AI decodes what StonkFun built and refuses anything outside the expected shape: a claim must be exactly Raydium's collect-fees instruction on the locking program for this coin's mint (plus compute-budget instructions capped at 0.01 SOL of priority fee, creation of the wallet's own token accounts for the pair's two mints only, harmless token-account instructions, and memo instructions) with no SOL movement and no token transfers or approvals. The engine does not retry claimFees after a failure.

getLaunchStatus: poll a launch made through StonkFun's earlier paid flow by its Payment Signature until data.status reads completed; data.mint is the new token.

Configuration

FieldTypeRequiredDescription
querystringNolistTokens search over name, symbol, or mint
sortstringNolistTokens: marketCap (default) | newest | volume
statusstringNolistTokens: new | aboutToGraduate | graduated
modestringNoFee-model filter on the list operations
quoteMintstringPer opOptional filter on listTokens; required on getLaunchLabPricing
categorystringNoPair category filter on listTokens and listPairs
mintstringToken opsCoin mint for getToken, getTokenBurns, getTokenRewards, getTokenAirdrop, getTokenBacking, getClaimableFees, claimFees
creatorstringNolistLaunches creator wallet filter
sincestringNolistLaunches ISO 8601 lower bound
launchable, launchLabReadybooleanNolistPairs flags
page, pageSizenumberNolistTokens, listLaunches; pageSize 1 to 100, default 25; templates accepted
limitnumberNogetTokenBurns, getRevenue, getRewards: 1 to 100, default 25. listAllTokens: 1 to 500, default 500 (StonkFun allows 1000, but that exceeds the 512 KB per-node output budget). Templates accepted
offset, ordernumber, stringNolistAllTokens row offset (default 0) and oldest (default) | newest
paymentSignaturestringgetLaunchStatusPayment signature of a launch made through the earlier paid flow
dryRunbooleanNoclaimFees: stop before signing

Output

Read operations return the standard envelope with StonkFun's data payload untouched and its meta.generatedAt timestamp:

{
  "success": true,
  "operation": "listTokens",
  "data": {
    "tokens": [
      {
        "mint": "6GmAFSYs4gk3FDao5FzzySQpPZaWsa4rUJHacpMpUNgx",
        "symbol": "STONK",
        "quote": { "mint": "XsoCS1TfEyfFhfvj8EtZ528L3CaKBDBRqRapnBbDF2W", "symbol": "SPYX", "category": "xstock" },
        "mode": "standard",
        "market": { "priceUsd": 0.2014, "marketCapUsd": 173496715.2, "volume24hUsd": 1873378.17 },
        "status": "graduated",
        "graduationProgress": 1,
        "createdAt": "2026-07-23T19:08:03.348Z"
      }
    ],
    "pagination": { "page": 1, "pageSize": 25, "total": 1, "totalPages": 1 }
  },
  "meta": { "generatedAt": "2026-09-09T23:19:41.046Z" }
}

Reference fields downstream with the response name (default stonkfunResponse), for example {stonkfunResponse.data.tokens[0].mint} after listTokens, {stonkfunResponse.data.launches[0].quote.symbol} after listLaunches, or {stonkfunResponse.data.claimed} after claimFees.

On this page