> ## Documentation Index
> Fetch the complete documentation index at: https://docs.purps.lol/llms.txt
> Use this file to discover all available pages before exploring further.

# Launch options

> Everything the create page knows before a launch is built, venue by venue: who may launch there right now, where its pairs are listed, which fee presets it takes, its fee terms, and what holders can be paid in. Plus the three strategy presets exactly as the site turns them into a config, and the airdrop-only config. Read this once, then pick a pair from /pairs and markets from /markets.



## OpenAPI

````yaml https://purps.lol/api/v1/openapi.json get /launch-options
openapi: 3.1.0
info:
  title: PURPS API
  version: 1.0.0
  description: >-
    Everything purps.lol can do, as JSON. Read the coin list, a coin's full page
    and the launchpad; launch coins on purps.lol, pump.fun and Robinhood Chain;
    wire an existing pump.fun coin's fees into a strategy. No key, no signup. A
    write is authorised by your own wallet's signature and every transaction is
    signed in your wallet, never by us. Every response is `{ ok: true, data }`
    or `{ ok: false, error }`. Cross-origin requests are allowed from any site.
servers:
  - url: https://purps.lol/api/v1
security: []
tags:
  - name: Coins
    description: Read what the site shows.
  - name: Launch on purps.lol
    description: Launch a coin on purps.lol. Prepare, sign, submit, send, poll.
  - name: Launch on pump.fun
    description: Launch straight on pump.fun with fees wired to a strategy.
  - name: Launch on Robinhood Chain
    description: Launch through Pons on Robinhood Chain.
  - name: Redirect a pump.fun coin
    description: Point an existing pump.fun coin's creator fees at a strategy.
  - name: Manage a coin
    description: Attach a strategy to a coin launched without one. Creator-signed.
  - name: Transactions
    description: Send a signed Solana transaction through our relay and watch it land.
paths:
  /launch-options:
    get:
      tags:
        - Launch on purps.lol
      summary: Launch options
      description: >-
        Everything the create page knows before a launch is built, venue by
        venue: who may launch there right now, where its pairs are listed, which
        fee presets it takes, its fee terms, and what holders can be paid in.
        Plus the three strategy presets exactly as the site turns them into a
        config, and the airdrop-only config. Read this once, then pick a pair
        from /pairs and markets from /markets.
      operationId: getLaunchOptions
      responses:
        '200':
          description: The options.
          content:
            application/json:
              schema:
                type: object
                properties:
                  ok:
                    type: boolean
                    enum:
                      - true
                  data:
                    $ref: '#/components/schemas/LaunchOptions'
        '429':
          description: Every failure carries the same envelope.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    LaunchOptions:
      type: object
      properties:
        holderPayoutsEnabled:
          type: boolean
          description: >-
            Whether coins may pay holders (`rewardMode` holders or backed) on
            any venue. When false, only burn coins register.
        venues:
          type: object
          description: One entry per launch venue, each with what that venue allows.
          properties:
            purps:
              $ref: '#/components/schemas/VenueOptions'
              type: object
              description: The purps.lol launchpad on Solana.
            pumpfun:
              $ref: '#/components/schemas/VenueOptions'
              type: object
              description: >-
                pump.fun. Adds `customPairAccess`: who may launch on a pair
                other than SOL.
            robinhood:
              $ref: '#/components/schemas/VenueOptions'
              type: object
              description: >-
                Pons on Robinhood Chain. Payout assets carry `address` instead
                of `mint`.
        presets:
          type: array
          description: >-
            The site's strategy presets, the same on every venue, each with the
            exact `config` fields to send.
          items:
            $ref: '#/components/schemas/StrategyPreset'
        airdropOnly:
          type: object
          description: >-
            The config for a coin that only pays holders and holds no perps: the
            whole fee to the buyback, no legs. Set `payoutMint` for a backed
            asset, or leave `rewardMode` as holders for the coin itself.
    Error:
      type: object
      properties:
        ok:
          type: boolean
          description: Always false on a failure.
        error:
          type: string
          description: >-
            A short reason in plain words: `coin not found`, `too many
            requests`, `invalid wallet signature`.
    VenueOptions:
      type: object
      properties:
        chain:
          type: string
          description: '`solana` or `robinhood`.'
          enum:
            - solana
            - robinhood
        access:
          type: object
          description: >-
            `{ openToAll, allowedWallets }`. When not open to all, only the
            listed wallets may launch here.
        pairs:
          type: object
          description: >-
            Where this venue's pairs are listed: `{ from: "/pairs", key, note
            }`. Read `/pairs` and take the list under `key`.
        feePresets:
          type: array
          description: The `feePreset` values this venue accepts.
          items:
            type: string
        fees:
          type: object
          description: >-
            The venue's fee terms: purps.lol has `platformBps`, `creatorFeeBps {
            min, max, default }` and `raiseTargetSol`; Robinhood Chain has
            `creatorTaxBps { min, max, default }`.
        payoutAssets:
          type: array
          description: >-
            What holders can be paid in on this venue, as the create page lists
            them.
          items:
            $ref: '#/components/schemas/PayoutAsset'
        payoutNote:
          type: string
          description: What else is accepted beyond the list, and how it is checked.
    StrategyPreset:
      type: object
      properties:
        key:
          type: string
          description: '`steady`, `balanced` or `degen`.'
        name:
          type: string
          description: Display name.
        sells:
          type: string
          description: How it takes profit, in words.
        buys:
          type: string
          description: How it handles dips, in words.
        config:
          type: object
          description: >-
            Merge into your Strategy: the three splits, the `strategy` tuning
            object, and `legReserveMode`, the `reserveMode` to set on every leg
            (`none` when the preset keeps no reserve). Add your own `perpLegs`,
            `rewardMode` and payout mints.
    PayoutAsset:
      type: object
      properties:
        mint:
          type: string
          description: 'Solana venues: use as `payoutMint` or in `payoutMintsExtra`.'
        address:
          type: string
          description: 'Robinhood Chain: use as `payoutMint` or in `payoutMintsExtra`.'
        symbol:
          type: string
          description: Ticker, e.g. `AAPLx`.
        kind:
          type: string
          description: '`crypto`, `stock`, `native` and so on.'
        market:
          type: string
          description: 'Solana venues: the perp market it backs, e.g. `AAPL`.'
        decimals:
          type: integer
          description: Token decimals.
        iconUrl:
          type: string
          description: Logo.

````