How StonkMoney works
Overview
StonkMoney lets anyone launch a Solana coin for a creator — an X account, a GitHub maintainer, a streamer — who hasn’t signed up. The creator’s share of every trade accrues in an escrow wallet bound to their handle. When they show up, they prove the handle and sweep it to their own wallet.
It uses a UsePaid-style claim flow (sign in, a worker pays out) and extends it to seven platforms, profile-code claims with no sign-in, and sponsored gas. All of it runs on StonkFun’s fee sharing on Raydium LaunchLab.
Fees
Every launch is a Raydium LaunchLab bonding curve built to StonkFun’s standard launch shape. LaunchLab charges a 1% fee on every curve trade, attributed to StonkFun’s platform id. StonkFun forwards about half (≈0.5%) to the pool’s creator account. We set that account to the creator’s escrow.
StonkMoney takes 10% of what is claimed, at claim time. That covers the gas and rent we sponsor for each claim. Dev buys at launch belong to the fan who launched, never the creator.
Free launches
A fan can launch without a wallet. StonkMoney’s sponsor wallet pays the ≈0.0085 SOL of rent and fees and signs the transaction itself. In return, StonkMoney keeps 20% of that coin’s creator fees at claim time, instead of the usual 10%. Free launches have no dev buy and are limited per visitor, per creator and per day.
To keep the higher rate attributable on-chain, a free launch sets its pool creator to a second escrow for the same creator (escrow:v1:sponsored:…). A claim sweeps both escrows, each with its own rate, so the creator sees exactly which part carried which fee.
Launch path
The server reads /launchlab/pricing from StonkFun and builds one transaction. It derives every account and checks it against the pricing response before signing anything:
initialize_with_token2022(
payer = fan wallet | sponsor (free) // signs, pays rent
creator = escrow(platform, handle) // sponsored escrow on free launches, not a signer
config = pricing.curve.configId // quote's GlobalConfig
platform = pricing.platform.standard // StonkFun attribution
curve = Constant { supply, totalSellA, totalFundRaisingB = raise.raw } -> cpmm
decimals = 6, no transfer-fee extension
) + allowConfig.standard + curveRule.standard // appended read-only
[+ buy_exact_in(devBuy)] // optional, same txThe mint keypair is generated and partially signs on the server. The fan signs as fee payer. StonkFun’s indexer adopts pools that match this shape within a minute or two. After that, fee forwarding and market data go live.
Creator escrow
Each creator identity maps to one deterministic Solana keypair:
seed = HMAC-SHA512(ESCROW_MASTER_SEED, "escrow:v1:" + platform + ":" + lowercase(handle)) escrow = Ed25519.fromSeed(seed[0..32])
No private key is stored. The worker re-derives it only to sign a claim. Fees reach the escrow two ways: forwarded by StonkFun, or accrued in LaunchLab’s creator vault (creator + quote). The worker sweeps both in one transaction.
Claiming
Sign in with X or GitHub (OAuth). The session is bound to the platform user, and the claim goes to any wallet you paste.
Bio code needs no sign-in. Enter your handle and a destination wallet, and you get a one-time code like sm-7KQ2PX. On X you post it (the post is pre-written and links your coin) and paste the post link. Everywhere else you put it in your profile. Then hit verify. The wallet is locked to the code when it is issued, so someone who copies the code can’t redirect the payout.
A queued claim moves through queued → processing → submitted → confirmed. The treasury is the fee payer. The escrow co-signs. Each held token goes to your wallet (its ATA is created for you), minus the protocol cut, plus any SOL in the escrow.
Platforms
| Platform | Sign-in | How to verify |
|---|---|---|
| X | OAuth | Sign-in, or a post with your code (up to a few hours) |
| GitHub | OAuth | Sign-in, or a profile code (usually instant) |
| Twitch | — | Profile code (up to a few hours) |
| YouTube | — | Channel description code (up to a few hours) |
| Kick | — | Profile code (up to a few hours) |
| TikTok | — | Profile code (usually instant) |
| — | Profile code (up to a few hours) |
Trust model
Be honest about what’s custodial. The fee route is on-chain and fixed: the pool’s creator is the escrow, and no one can change it. The escrow key is held by the operator, derived from a master seed, until the creator claims. That is the price of “no sign-up needed”. Handle changes and recycled handles are a real risk: an escrow follows the handle string, not the person. GitHub launches also record the numeric user id. Nothing is guaranteed: fees exist only if people trade.
API
Every read is open. Writes are rate limited per IP.
GET /api/launches?sort=new|volume|mcap&platform=x&q=
GET /api/coin/{mint}
GET /api/creator/{platform}/{handle}
GET /api/pairs quote tokens (StonkFun, LaunchLab-ready)
GET /api/pricing?quote={mint}
POST /api/launch/prepare { platform, handle, name, symbol, quoteMint, devBuy?, launcher }
POST /api/launch/send { mint, tx } // fan-signed, base64
POST /api/bio/start { platform, handle, wallet } -> { id, code }
POST /api/bio/scan { id } -> { status, claimId? }
POST /api/claim { wallet } // signed-in session
GET /api/claim/{id}
GET /api/statsBuilt on StonkFun’s developer API and Raydium LaunchLab. Not affiliated with either.