Documentation
Everything Buttlauncher does, described in full. It is shorter than it looks, because Buttlauncher does not do much. The parts that matter are the parts that touch your wallet, and those are covered carefully.
01Overview
Buttlauncher is a web interface for creating tokens on pump.fun. It collects the same information pump.fun asks for, builds the creation transaction, and passes it to your wallet to sign. When your wallet approves, the token exists on Solana and is tradable on pump.fun immediately.
There is nothing about a token launched here that differs from launching on pump.fun directly. Your wallet is the payer and the creator, so the creator fees pump.fun pays out on every trade accrue to you, exactly as they would on pump.fun. Buttlauncher takes no share of them and adds no fee of its own.
Tokens launched on Buttlauncher do nothing. The fees go to whoever launched them. There is no flywheel. This launchpad is useless. The rest of this document explains how that is implemented.
02The launch flow
A launch has five steps. You are involved in three of them.
- You fill in the form.
Name, ticker, description and an image are required. Website, X and Telegram links are optional, as is an initial buy. A live preview shows the card pump.fun will render.
- You confirm.
A dialog states that the token does nothing and that its creator fees go to your wallet. It links to the terms. You tick "I understand". Without that, nothing is built, and the server refuses requests that lack the acknowledgement.
- Buttlauncher prepares the transaction.
The image and a metadata JSON file are uploaded to IPFS. A fresh mint keypair is generated. A transaction is assembled containing pump.fun's create instruction (and a buy instruction if you chose an initial buy), with your wallet as both payer and creator. The transaction is simulated against the network first; if it would fail, you see the program's error and nothing is handed to your wallet.
- You sign.
The unsigned transaction is handed to Phantom. Phantom shows you the accounts and effects. You approve or decline. Buttlauncher never sees your private key.
- Buttlauncher relays and confirms.
The signed transaction is returned to the server, which verifies that it still contains exactly the instructions it prepared (Phantom adds its own Lighthouse safety checks before signing, which is allowed) and that your signature is valid, adds the mint keypair's signature, and sends it to the network. The mint's secret key is held only until then and wiped once the launch settles; after creation the pump.fun program controls the mint, so the key has no further use. Once confirmed, the result page links to the token on pump.fun.
On mobile, step four involves leaving the browser for the Phantom app and coming back. The launch state is stored locally so the page resumes automatically. See Wallets.
03Wallets
Buttlauncher supports Phantom. The token is always created from the connected wallet. There is no fallback where Buttlauncher deploys on your behalf.
Desktop
With the Phantom browser extension installed, the site talks to the injected provider using its standard connect and sign methods. The provider is detected by its own identifier, so an unrelated extension that imitates the interface is ignored. Connection is remembered by Phantom, not by Buttlauncher, and can be revoked from within Phantom at any time.
Mobile, inside Phantom
Phantom's mobile app includes a browser. Opening Buttlauncher inside it gives the same injected experience as desktop: connect, review, sign, done. This is the recommended path on a phone. The connect button on mobile offers to open the site in Phantom for you.
Mobile, in a regular browser
If you prefer to stay in Safari or Chrome, Buttlauncher uses Phantom's deep link protocol. It works like this:
- Buttlauncher generates a temporary encryption keypair in your browser and stores it locally.
- You are sent to the Phantom app with Buttlauncher's public key and a return address.
- Phantom returns you to Buttlauncher with its own public key and an encrypted payload containing your wallet address. Both sides now hold a shared secret that only they know.
- When you launch, the prepared transaction is encrypted with that secret and you are sent to Phantom again. Phantom decrypts it, shows it to you, and if you approve, returns the signed transaction encrypted the same way.
- Buttlauncher decrypts it, relays it to the network, and shows the result.
Buttlauncher uses the sign-transaction request rather than sign-and-send. Phantom recommends this, and it means the server can verify the transaction before anything is broadcast. The session secret lives only in your browser's local storage and is cleared on disconnect.
04Token details
The fields map directly onto what pump.fun stores and displays.
- Name
- Up to 32 characters. Stored on-chain in the token's metadata account.
- Ticker
- Up to 10 characters, letters and numbers, uppercased automatically. Stored on-chain. Displayed with a leading dollar sign on pump.fun.
- Description
- Up to 600 characters. Stored in the off-chain metadata file, shown on the coin page.
- Image
- PNG, JPG, GIF or WEBP, up to 5 MB. Square images look best. Uploaded to IPFS and referenced from the metadata file.
- Links
- Website, X and Telegram. Optional. Normalised to https URLs and included in the metadata file, where pump.fun reads them.
Names and tickers are not unique on pump.fun. Two tokens can share a name. The mint address is the only identifier that matters.
05Initial buy
You may buy some of your own token in the creation transaction. Enter an amount in SOL. Buttlauncher quotes the expected token amount from the current bonding curve parameters and includes a buy instruction with slippage tolerance. Because you are the first buyer, the price is the curve's starting price.
The initial buy is optional and defaults to zero. The maximum accepted is 85 SOL, which is roughly the amount a pump.fun curve absorbs before graduating. Buying the entire curve in the creation transaction is not a use case Buttlauncher is designed for.
Like all trades on pump.fun, the initial buy pays pump.fun's trading fee and the creator fee. Since you are the creator, the creator fee on your own initial buy accrues to your own vault.
06What you pay
Every cost of a launch is paid by you, from your wallet, in the one transaction you sign.
- pump.fun creation cost. Set by pump.fun and paid to pump.fun. It covers account rent for the mint, the bonding curve, the metadata account and the associated token accounts, plus pump.fun's own creation fee.
- Network fee. The Solana base fee plus a modest priority fee so the transaction lands in a reasonable time. Buttlauncher estimates the priority fee from recent network conditions and caps it.
- Initial buy. Whatever you entered, plus the trading fee on it. Zero if left blank.
Buttlauncher does not add a charge of its own, does not take a cut of the creation cost, and does not hold your SOL at any point. Before building the transaction, Buttlauncher checks that the wallet holds enough to cover the estimated total, so you get a clear message instead of a failed simulation.
07Creator fees
pump.fun pays a portion of every trade to the token's creator. On the bonding curve the total trading fee is 1.25%, of which 0.30% is the creator fee; it accrues in a per-creator vault inside the pump program. After a token graduates to PumpSwap, trading on the canonical pool continues to pay a creator fee on a market-cap schedule set by pump.fun (between 0.05% and 0.95% of each trade at the time of writing), which accrues in a vault inside the AMM program. The creator claims from both vaults at will, from the coin page on pump.fun. pump.fun publishes the current schedule at pump.fun/docs/fees.
The creator is recorded when the token is created and copied to the PumpSwap pool at graduation. pump.fun's create instruction takes the creator as a separate argument from the account that pays for and signs the transaction. Buttlauncher sets both to your wallet, which is what pump.fun's own site does.
This assignment is permanent for the token as far as Buttlauncher is concerned. Buttlauncher does not use pump.fun's fee sharing configuration, so there are no secondary recipients and Buttlauncher is not one. pump.fun itself offers ways for a creator to split or transfer creator fees after launch; those are between you and pump.fun.
08What Buttlauncher keeps
Nothing.
To be explicit about what is not happening:
- No portion of any creator fee is routed to Buttlauncher. The creator is your wallet.
- No fee of Buttlauncher's own is added to the creation transaction.
- No portion of anything is distributed to holders of any token.
- No portion of anything is used to buy back or burn any token.
- Nothing funds marketing, listings, liquidity, development grants or partnerships.
- Nothing is pledged, locked, staked or committed to any future programme.
Launchpads usually describe a loop in which fees feed activity, which feeds fees. Buttlauncher has neither half of that sentence.
09Security model
The wallet flow is designed so that Buttlauncher is never in a position to misuse it, even if it wanted to.
What the server holds
- A record of each launch: mint address, launcher address, metadata, the prepared transaction, and its status.
- The mint's secret key, only between preparing a launch and broadcasting it. It is deleted the moment the transaction is sent, or the launch fails or expires. After creation the pump.fun program controls the mint, so the key confers nothing anyway.
- Nothing about your wallet beyond its public address.
What the server never holds
- Your private key or seed phrase. Signing happens in Phantom.
- Custody of any SOL or tokens. Every account in the transaction belongs to you or to pump.fun.
- Any key that could receive fees. There is no Buttlauncher wallet in the transaction at all.
Verification before relay
When your signed transaction returns, the server compares it with the one it prepared. The fee payer and the set of signers must be unchanged, and every prepared instruction must be present, in order, with the same accounts and data. The only additions permitted are Phantom's own Lighthouse safety assertions and compute budget instructions, and none of them may require a signer other than you. It then verifies that your wallet's signature is valid, adds the mint's signature, and only then sends the transaction. This means the relay endpoint cannot be used to broadcast arbitrary transactions, and a prepared transaction cannot be altered between your review and the network.
Libraries
Buttlauncher builds instructions with pump.fun's published SDK, handles Solana primitives with the official web3 library, and implements the mobile deep link protocol as specified by Phantom, using the NaCl implementation Phantom's own documentation uses. No custom cryptography.
What you should still check
Read the transaction in Phantom before approving. It should show a token creation on pump.fun, SOL leaving your wallet for the creation cost and any initial buy, and nothing else. If it shows anything you did not expect, decline it.
10Metadata and storage
pump.fun reads a token's image, description and links from a JSON file referenced by the on-chain metadata URI. Buttlauncher uploads your image and then a JSON file in the shape pump.fun expects, containing the name, symbol, description, image URI, links and a marker that the token was created for pump.fun.
Uploads go to IPFS. Content on IPFS is addressed by its hash, so the file cannot be altered after the fact without changing the URI, and the URI is fixed on-chain at creation. Once a token is created, its metadata is effectively permanent and public.
Buttlauncher does not host the metadata itself. If you need a copy, the URI is visible on the token's result page and in the on-chain metadata account.
11Limits
Limits exist to keep the service usable and to avoid accidental spam. They are not features.
- Field limits as listed under Token details. They follow the pump program's own constraints.
- A cap on how many launches a wallet may prepare per hour, and a cap per network address.
- Prepared transactions expire when their blockhash does, roughly a minute. Sign promptly.
- One image per token. No animation preview, no video.
12When something fails
- You declined in Phantom
- Nothing was sent and nothing was charged. The launch record is left as prepared and can be ignored.
- The transaction expired
- Solana transactions reference a recent blockhash and are only valid for a short window. If you took too long to sign, the server marks the launch expired and asks you to start again. Nothing was charged.
- Not enough SOL
- Buttlauncher checks before building. If the balance changed in between, the network rejects the transaction and you see a clear error. Nothing was charged.
- Metadata upload failed
- The storage service was unavailable. Try again in a moment. Nothing was built or charged.
- The transaction landed but failed
- Rare, but possible if network state changed between simulation and execution. The network fee for the failed transaction is consumed and cannot be refunded by anyone. The token was not created. You can try again.
- Confirmation is slow
- The result page polls until the transaction is confirmed or dropped. If your connection was interrupted you can return to the page by its mint address and it will pick up.
13What is not included
For the avoidance of doubt, Buttlauncher does not provide:
- Fee sharing, revenue sharing or payouts of any kind from Buttlauncher. Creator fees come from pump.fun.
- Token utility, staking, governance, access gating or rewards.
- Marketing, listings, promotion or featured placement.
- Liquidity provision, market making or price support.
- Custody, recovery or support for lost keys.
- Investment, legal or tax advice.
- Any commitment to keep running.
If a token launched through Buttlauncher does something, it is because people decided to do something with it. Buttlauncher had no part in that and takes no credit.
14Public API
The site is driven by a small JSON API. It is public and read endpoints can be used freely.
| Method | Path | Description |
|---|---|---|
GET | /api/launches | Confirmed launches, newest first. Accepts ?limit=. |
GET | /api/launch/:mint | A single launch by mint address or internal id, with live status. |
GET | /api/config | Public configuration, including the site's contract address if one is set. |
GET | /api/health | Liveness check. |
POST | /api/launch/prepare | Used by the launch form. Multipart. Requires the acknowledgement flag and a wallet address. |
POST | /api/launch/submit | Used by the launch form. Relays a signed transaction that matches a prepared launch. |
All responses carry Cache-Control: no-store. Rate limits apply to the write endpoints.
15Glossary
- Bonding curve
- The pricing mechanism pump.fun uses for new tokens. Price rises as supply is bought. When enough SOL has been raised the token graduates to a regular liquidity pool.
- Creator
- The address pump.fun records as the token's creator and pays creator fees to. On Buttlauncher, this is your wallet.
- Creator vault
- A program-owned account where a creator's unclaimed fees accumulate until claimed.
- Graduation
- The point at which a token leaves the bonding curve and begins trading on PumpSwap.
- Mint
- The on-chain address that identifies a token. Generated fresh for each launch.
- Payer
- The account that funds a transaction and signs it. On Buttlauncher, this is always your wallet.
- PumpSwap
- pump.fun's AMM, where graduated tokens trade.
- Flywheel
- A mechanism in which fees are used to drive activity that produces more fees. Buttlauncher does not have one.
If something in these docs is wrong or out of date, it will be corrected. That is the only maintenance promise Buttlauncher makes.