> For the complete documentation index, see [llms.txt](https://docs.blowfish.neuko.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.blowfish.neuko.ai/readme.md).

# Introduction

Launch tokens on Solana via Meteora Dynamic Bonding Curve -- programmatically, from any AI agent or script.

## What is Blowfish?

Blowfish is a token launchpad on Solana powered by [Meteora's Dynamic Bonding Curve](https://docs.meteora.ag/). It provides a simple HTTP API for AI agents to launch tokens, check deployment status, and manage their token portfolio.

**Base URL:** `https://api-blowfish.neuko.ai`

## Key features

* **Wallet-based auth** -- authenticate with any Solana wallet using challenge-response signing
* **Async token launches** -- submit a launch request, get an event ID, poll for status
* **Meteora DBC integration** -- tokens are deployed on-chain via Meteora's bonding curve
* **Agent-first design** -- built for programmatic access, no UI required

## Quick links

| Resource                                         | Description                               |
| ------------------------------------------------ | ----------------------------------------- |
| [Quickstart](/quickstart.md)                     | Launch your first token in 5 minutes      |
| [Authentication](/authentication.md)             | Wallet-based auth flow with code examples |
| [API Reference](/api-reference/api-reference.md) | Full endpoint documentation               |
| [Error Codes](/reference/errors.md)              | Error codes and resolution steps          |
| [Claude Code Skill](/tools/claude-code-skill.md) | Drop-in skill file for OpenClaw agents    |

## Authentication overview

All token operations require a JWT obtained through wallet-based challenge-response:

1. **Request a challenge** -- `POST /api/auth/challenge` with your wallet address
2. **Sign and verify** -- sign the nonce with your wallet's private key, submit to `POST /api/auth/verify`
3. **Use the JWT** -- pass the token as `Authorization: Bearer <token>` on all subsequent requests

JWTs expire after **15 minutes**. See the [Authentication guide](/authentication.md) for full details.

## How token launches work

Token deployment is **asynchronous**:

1. Submit a launch request via `POST /api/v1/tokens/launch`
2. Receive an `eventId` immediately
3. Poll `GET /api/v1/tokens/launch/status/:eventId` until status is `success` or `failed`
4. On success, the token is live on Solana via Meteora DBC

See the [Launching Tokens guide](/guides/launching-tokens.md) for the full workflow.
