feePreset:
For any other share, send one
feeSplit object instead: { strategyBps, airdropBps, creatorBps } summing to 10000, for example { strategyBps: 6000, airdropBps: 0, creatorBps: 4000 } for 60% into the strategy and 40% to you. Send feePreset as the closest label alongside it. A strategyBps above zero needs a strategy object, same as the strategy preset.
On top of the platform’s 1%, you set your own creator fee with creatorFeeBps: 50 to 980, that’s 0.5% to 9.8% of curve volume, 100 (1%) by default. That’s the fee the preset above routes.
There’s no message to sign. The launch transaction can only land with your wallet’s signature, and that’s the proof.
1
Read the options
GET /launch-options and look under purps: who may launch, the creator fee range, and the payout assets. The three strategy presets sit at the top level, with what each one becomes in full. GET /pairs lists the pairs (SOL is So11111111111111111111111111111111111111112); GET /markets the perp markets and their leverage caps.2
Build
POST /launches with name, symbol, quoteMint, feePreset, creatorWallet, the logo (image as a data URL, or imageUrl), and optionally feeSplit, devBuySol, creatorFeeBps, strategy (a preset with markets or legs, see below), description, twitter and telegram. We check the strategy, upload the metadata, build the transactions and record the launch as pending. A bad strategy, or a wallet the launchpad doesn’t admit, is refused before anything is uploaded.3
Sign and send
Sign each of
transactions with the creator wallet, and the one at createIndex with the mint keypair from mintSecret as well. POST /transactions/send them one at a time, in order, waiting for each to confirm before the next (a swap can go through your own node; the create at createIndex must go through the relay, which adds the launchpad’s memo signature). When the pair isn’t SOL and there’s a dev buy, the first transaction is a swap the launch spends. Send wait: 30 with each send and most of them answer confirmed straight away. If confirmed is false, poll GET /transactions/{signature} until it is; that poll runs on your own Helius key, sent as X-Helius-Key.4
Wait for live
Poll
GET /launches/{mint} every few seconds until status is live, usually within half a minute of the create confirming. We watch the chain and flip it ourselves. You don’t need to stay online; if your process dies after sending, the launch still completes. A launch whose transaction never lands turns failed after about an hour.What it costs
The creator wallet needs about 0.03 SOL plus the dev buy. The build checks that before uploading anything (when it can read the balance). A dev buy on a non-SOL pair is converted from SOL by a swap transaction that runs before the launch; it’s sized to the swap’s worst-case output so it never spends more than the swap delivers.The logo
Sendimage as a data URL (data:image/png;base64,…; PNG, JPEG, WebP or GIF, 512KB max) or imageUrl as a public https link straight to the file. Fetching by URL is budgeted at 20 an hour per address; when the build answers 429 about image fetches, send the bytes as image instead.
Or host the metadata yourself and send metadataUri instead of a logo: a public https link to a JSON file with name, symbol and an https image, the standard token metadata shape. We fetch it once to check it and upload nothing.
A strategy launch
WithfeePreset: "strategy", send a strategy with the terms. We check it before anything is uploaded and register it the moment the launch goes live. There’s no second signature.
A strategy has three forms. Pick the smallest one that says what you want; they all end up as the same full config.
1. A preset and the markets. Every market is long at 2x, weights split evenly:
legs, when you want a short, or your own leverage, on any market:
presetissteady,balancedordegen: the fee split, the take-profit and dip-buy rules, and each leg’s reserve mode, as/launch-optionslists them.balanced, for instance, is 5% of each fee to buybacks, 75% to trading and 20% to the reserve.marketsis a list of names from/markets, up to 10, each once. Long at 2x, weights split evenly. Uselegsinstead when that isn’t what you want.legsreplacesmarkets:[{ "market", "direction", "leverage" }]per market.directionislong(default) orshort;leveragea whole number from 1 to 100, within the market’s cap on/markets(default 2). Leave a field out to take its default, so{ "market": "SOL" }is long at 2x. Weights are still split evenly; for uneven weights use the full config.rewardModedecides what profits do:burn(the default) buys and burns the coin,holdersairdrops the coin,backedairdropspayoutMint. Naming apayoutMintmakes itbackedon its own: a tokenised stock or major from the launchpad’spayoutAssets, or any Solana mint with a real market.payoutMintsExtraadds up to four more assets, split evenly. Paying coins needholderPayoutsEnabledto be true.ownerControls: trueasks for creator authority from launch: you can steer the coin from its page or through the API, every move signed and shown to holders. It applies while the platform has creator authority open.- No perps at all:
{ "preset": "airdrop" }, with no markets. Every fee goes to the buyback and is airdropped to holders as the coin, or aspayoutMintwhen you name one.
feePreset: "airdrop" and the airdrop strategy preset are different things. The airdrop fee preset pays holders straight from the curve’s fees, in the pair token, with no strategy at all. The airdrop strategy preset is a strategy launch with no perps: every fee buys the coin, or the backed asset you name, and airdrops that.The long way
The short form covers what the create page offers. For anything else (uneven weights, your own fee split, a take-profit or stop-loss on one leg, a different reserve mode) send the full config instead. It’s what the short form expands to, and it works everywhere the short form does:- The three splits and
strategycome straight from a preset’sconfigin/launch-options. Custom values are fine too. perpLegsare your pick from/markets; weights must sum to 10000 across legs. Use the preset’slegReserveModeas each leg’sreserveMode. A leg may also carrytakeProfitPctandstopLossPct.rewardMode,payoutMint,payoutMintsExtraandownerControlsmean the same as above (the olderpayoutMint2still works for one extra asset).- No perps at all: the
airdropOnlyconfig from/launch-options.
splitBuybackBps is taken as the full form.
A complete example
Node 20+,npm i @solana/web3.js bs58, and your own free Helius key in HELIUS_API_KEY (the status polls run on it). Launches a coin paired with SOL that airdrops its fees to holders, from a keypair file.
launch.mjs
feePreset: "strategy" and add strategy: { preset: "balanced", markets: ["ETH"] } to the build body.