# PURPS API - [PURPS API: Launch and Trade Coins with Automated Holder Strategies](https://docs.purps.lol/introduction.md): PURPS is a coin launchpad API where trading fees automatically reward holders through buybacks, airdrops, and perpetual futures — no API key required. - [Authenticate PURPS API Requests with Wallet Signatures](https://docs.purps.lol/guides/signing.md): Learn how PURPS authorizes writes using wallet signatures instead of API keys — covering the prepare-sign-submit flow for Solana and EVM. - [Error Codes and Rate Limits for the PURPS API](https://docs.purps.lol/guides/errors-and-limits.md): Reference for every PURPS API error status code and rate limit header, with plain-English explanations and retry guidance. - [Launch a Coin on the PURPS Solana Launchpad](https://docs.purps.lol/guides/launch-solana.md): Step-by-step guide to launching a coin on the PURPS Meteora bonding curve, choosing a fee preset, and optionally attaching a holder strategy. - [Launch a pump.fun Coin with PURPS Fee Strategies](https://docs.purps.lol/guides/launch-pumpfun.md): Create a pump.fun coin with its creator fees wired into a PURPS strategy from the very first trade, using four API calls. - [Launch a Coin on Robinhood Chain via the PURPS API](https://docs.purps.lol/guides/launch-robinhood.md): Deploy an EVM coin on Pons (Robinhood Chain) with ETH or a token pair, register a holder strategy, and handle the EVM transaction flow. - [Redirect a pump.fun Coin's Fees to a PURPS Strategy](https://docs.purps.lol/guides/redirect.md): Route an existing pump.fun coin's creator fees into a PURPS holder strategy in three steps, using only the coin's original creator wallet. - [Manage Your PURPS Coin After Launch](https://docs.purps.lol/guides/manage.md): Attach or update a holder strategy and change payout token for any PURPS launchpad coin, using the same prepare-sign-submit pattern. - [Trade Coins on PURPS Bonding Curves and Pools](https://docs.purps.lol/guides/trade.md): Buy and sell PURPS coins on Solana bonding curves and Robinhood Chain using signed transactions, with simulation-backed error handling. - [PURPS API Reference: All Endpoints and Schemas](https://docs.purps.lol/api-reference/overview.md): Complete PURPS API endpoint reference, generated from the live OpenAPI spec. Includes a playground for every endpoint with request and response schemas. - [List coins](https://docs.purps.lol/api-reference/coins/list-coins.md): Every visible coin on the platform, one page at a time. The same list the /coins page draws, in the same order. - [One coin](https://docs.purps.lol/api-reference/coins/one-coin.md): Everything the coin page shows: identity, market cap, holders, links, the strategy it runs, its books, open perp positions, the last 40 events on its timeline and its launch if it came from the launchpad. - [Flat index](https://docs.purps.lol/api-reference/coins/flat-index.md): Every coin's identity in one list, no market data. For indexers and agents that want the whole set in one call. - [Search](https://docs.purps.lol/api-reference/coins/search.md): Find coins by ticker, name or the start of a mint address. Up to 8 hits, best first. - [Launchpad coins](https://docs.purps.lol/api-reference/coins/launchpad-coins.md): The most recent launches on the PURPS launchpad, live and graduated, with curve progress, what they raised and what they have paid holders. - [Perp markets](https://docs.purps.lol/api-reference/coins/perp-markets.md): The perpetual futures markets a strategy can hold, with each one's leverage cap. A strategy's `perpLegs` must name markets from this list and stay within the cap. - [Launch pairs](https://docs.purps.lol/api-reference/coins/launch-pairs.md): The tokens a new coin can be paired with, per venue: `meteora` for the PURPS launchpad, `pumpfun` for pump.fun, `robinhood` for Pons. A launch names one of these as its quote. - [Prepare a launch](https://docs.purps.lol/api-reference/launch-on-solana/prepare-a-launch.md): Step 1 of a launchpad launch. Send the launch's terms and get back the exact message your wallet must sign, with the timestamp that is part of it. Nothing is stored or spent. Sign the message with the creator wallet (ed25519 over the UTF-8 bytes, the way `signMessage` does) and send the same terms p… - [Build the launch](https://docs.purps.lol/api-reference/launch-on-solana/build-the-launch.md): Step 2. The same terms as prepare, plus the coin's image and socials, `ts` and `signature`. We upload the metadata, build the launch transaction (and a SOL-to-pair swap in front of it when the pair is not SOL and there is a dev buy), simulate it, and record the launch as pending. You get back unsign… - [Launch status](https://docs.purps.lol/api-reference/launch-on-solana/launch-status.md): Where a launch is: `pending` until its pool is seen on chain, then `live`, `migrated` once it graduates, or `failed` with a reason if it never landed. Poll this after sending. - [Prepare a pump.fun launch](https://docs.purps.lol/api-reference/launch-on-pumpfun/prepare-a-pumpfun-launch.md): Step 1 of a pump.fun launch: the message to sign for these terms. Same rules as the launchpad's prepare. - [Build the pump.fun launch](https://docs.purps.lol/api-reference/launch-on-pumpfun/build-the-pumpfun-launch.md): Step 2. Builds the pump.fun create transaction with the coin's creator fees already pointed at a PURPS-managed wallet. Sign with the creator wallet and the mint key, send through /transactions/send, then call /pumpfun/fees to lock the fee routing and /redirects to attach the strategy. - [Lock fee routing](https://docs.purps.lol/api-reference/launch-on-pumpfun/lock-fee-routing.md): Step 3 for a pump.fun coin, and the first step for redirecting one you already own. Builds pump.fun's fee-sharing transaction that sends the coin's creator fees to its PURPS wallet permanently. Only the coin's on-chain creator can sign it. `done: true` means it is already in place. - [Check a pump.fun coin](https://docs.purps.lol/api-reference/redirect-a-pumpfun-coin/check-a-pumpfun-coin.md): Whether a pump.fun coin's creator fees already point at its PURPS wallet, who its creator is, and whether it is registered here. `feeWallet` is the address its fees must go to. - [Register the strategy](https://docs.purps.lol/api-reference/redirect-a-pumpfun-coin/register-the-strategy.md): Once a pump.fun coin's fees point at its PURPS wallet, this registers the strategy that will run on them. No signature: the on-chain fee routing is the proof of authority. `registered: false` with a `feeWallet` means the fees are not routed yet. - [Prepare a Robinhood Chain launch](https://docs.purps.lol/api-reference/launch-on-robinhood-chain/prepare-a-robinhood-chain-launch.md): Step 1: the message to sign with your EVM wallet (`personal_sign`, EIP-191). - [Build the Robinhood Chain launch](https://docs.purps.lol/api-reference/launch-on-robinhood-chain/build-the-robinhood-chain-launch.md): Step 2. Returns the EVM transactions to send from the creator wallet, in order: an optional swap and approval when there is a dev buy in a token pair, then the launch itself. You send these yourself (there is no relay on Robinhood Chain). Then call /robinhood/launches/{ref} with the launch transacti… - [Find a Robinhood Chain launch](https://docs.purps.lol/api-reference/launch-on-robinhood-chain/find-a-robinhood-chain-launch.md): Resolve a launch by its transaction hash or the token address it created: the token, the creator, the `walletKey` the register step needs, and whether it is registered. - [Prepare the registration](https://docs.purps.lol/api-reference/launch-on-robinhood-chain/prepare-the-registration.md): The message to sign to attach a strategy to a Robinhood Chain launch you sent. - [Register the strategy](https://docs.purps.lol/api-reference/launch-on-robinhood-chain/register-the-strategy.md): Attach the strategy to the launched coin. `registered: false` with a `reason` means the launch is not confirmed or indexed yet; wait and retry. - [Prepare a strategy](https://docs.purps.lol/api-reference/manage-a-coin/prepare-a-strategy.md): For a launchpad coin that was launched without a strategy (any preset but `creator`): the message the creator wallet signs to attach one now. - [Attach the strategy](https://docs.purps.lol/api-reference/manage-a-coin/attach-the-strategy.md): Register the strategy against the launch. The config must be byte-for-byte what prepare hashed. Once a coin has a strategy, changes are admin-only. - [Prepare a payout change](https://docs.purps.lol/api-reference/manage-a-coin/prepare-a-payout-change.md): For a coin that pays its holders: the message the creator signs to change what holders are paid in. - [Change the payout asset](https://docs.purps.lol/api-reference/manage-a-coin/change-the-payout-asset.md): Apply the change. Burn coins are refused: switching a coin from burning to paying is an admin decision. - [Trade on a Solana curve](https://docs.purps.lol/api-reference/trade/trade-on-a-solana-curve.md): Build a buy or sell on a live launchpad coin's curve for your wallet to sign. A buy is sized in the coin's quote token, a sell in raw token units. `viaSol: true` routes through Jupiter so you pay or receive SOL even when the pair is another token. The transaction is simulated first; send it through… - [Trade on Robinhood Chain](https://docs.purps.lol/api-reference/trade/trade-on-robinhood-chain.md): Build a buy or sell on a Pons coin, on its curve or its pool once graduated, for your EVM wallet to send. Returns the ordered steps (approvals, the trade, and purps.lol's 1% fee as a final transfer) with the quoted output. Send them yourself, then call /trades/robinhood/record with the trade's hash. - [Record a Robinhood Chain trade](https://docs.purps.lol/api-reference/trade/record-a-robinhood-chain-trade.md): After the trade lands, tell us its hash with the `feeTicket` you were given, so the trade and its fee show on the coin page. - [Send a signed transaction](https://docs.purps.lol/api-reference/transactions/send-a-signed-transaction.md): Relay a signed Solana transaction from a launch or a trade. Only transactions that touch the launchpad programs are forwarded; anything else is refused. Waits up to 8 seconds for confirmation. `confirmed: false` means it was sent but not yet seen; poll /transactions/{signature}. - [Transaction status](https://docs.purps.lol/api-reference/transactions/transaction-status.md): Whether a relayed transaction has confirmed or failed on chain. ## OpenAPI Specs - [openapi](https://purps.lol/api/v1/openapi.json)