Skip to main content
A purps.lol coin trades on a Meteora bonding curve until it raises the equivalent of 85 SOL, then graduates to a pool. Its creator fees go where you choose with feePreset: On top of the platform’s 1%, you set your own creator fee with creatorFeeBps: 0.5% to 10% of curve volume, 1% by default. That is the fee the preset above routes.
1

Read the options

GET /launch-options and look under venues.purps: who may launch, the fee tiers, and the payout assets. The three strategy presets and the airdrop-only config sit at the top level. GET /pairs lists the pairs (SOL is So11111111111111111111111111111111111111112); GET /markets the perp markets and their leverage caps.
2

Prepare

POST /launches/prepare with name, symbol, quoteMint, feePreset, creatorWallet and optionally devBuySol, creatorFeeBps and strategy. Sign message with the creator wallet.
3

Submit

POST /launches/submit with the same terms, the logo (imageUrl or image), socials, ts and signature. We upload the metadata, build the transactions and record the launch as pending.
4

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: when the pair is not SOL and there is a dev buy, the first transaction is a swap the launch spends. If confirmed is false, poll GET /transactions/{signature} until it is.
5

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 do not need to stay online, and if your process dies after sending, the launch still completes. A launch whose transaction never lands turns failed after an hour.

What it costs

The creator wallet needs about 0.03 SOL plus the dev buy. A dev buy on a non-SOL pair is converted from SOL by a swap transaction that runs before the launch; it is sized to the swap’s worst-case output so it never spends more than the swap delivers.

A strategy launch

With feePreset: "strategy", send a strategy object with the terms. It is hashed into the signed message, so it must be sent byte-for-byte the same to submit. The strategy is registered by us the moment the launch goes live; you never come back for a second signature. The site builds that object from a preset plus your choices. Do the same:
  • The three splits and strategy come straight from a preset’s config in /launch-options. Custom values are fine too.
  • perpLegs are your pick from /markets; weights must sum to 10000 across legs. Use the preset’s legReserveMode as each leg’s reserveMode.
  • rewardMode decides what profits do: burn buys and burns the coin, holders airdrops the coin, backed airdrops payoutMint, a tokenised stock or major from the venue’s payoutAssets or any Solana mint with a real market. payoutMint2 adds a second asset, half each. Paying coins need holderPayoutsEnabled to be true.
  • No perps at all: send the airdropOnly config from /launch-options and pick the payout the same way.
feePreset: "airdrop" and the airdropOnly strategy are different things. The airdrop preset pays holders straight from the curve’s fees, in the pair token, with no strategy at all. The airdropOnly config is a strategy launch with no perps: every fee buys the coin, or the backed asset you name, and airdrops that.

A complete example

Node 20+, npm i @solana/web3.js tweetnacl bs58. Launches a coin paired with SOL that airdrops its fees to holders, from a keypair file.
launch.mjs
For a strategy launch, set feePreset: "strategy" and add the strategy object from the section above to terms before prepare; it is part of what you sign.