Blowfish Token Launch
Launch tokens on Solana programmatically via the Blowfish Agent API.
Base URL: https://api-blowfish.neuko.ai
Prerequisites
- A Solana keypair (ed25519). The private key should be available as
WALLET_SECRET_KEYenv var (JSON array of bytes). - Node.js 18+ or Bun with
@solana/web3.js,tweetnacl,bs58
Workflow
- Authenticate — wallet-based challenge-response → JWT (15 min expiry)
- Launch — POST token params → receive
eventId - Poll — GET status by
eventIduntilsuccessorfailed - Done — token is live on Solana via Meteora DBC
Quick Launch
Run the bundled script:
WALLET_SECRET_KEY='[...]' bun run scripts/blowfish-launch.ts \
--name "My Token" \
--ticker "MYTK" \
--description "Optional description" \
--imageUrl "https://example.com/logo.png"
API Endpoints
Authentication
POST /api/auth/challenge—{ wallet }→{ nonce }POST /api/auth/verify—{ wallet, nonce, signature }→{ token }
Sign message: Sign this message to authenticate: <nonce> with ed25519, base58-encode signature.
Tokens
POST /api/v1/tokens/launch—{ name, ticker, description?, imageUrl? }→{ eventId }(Bearer auth)GET /api/v1/tokens/launch/status/:eventId— poll untilsuccess/failed/rate_limitedGET /api/v1/tokens/— list your tokensGET /api/v1/tokens/:id— get specific token
Fee Claiming
GET /api/v1/claims/— get eligible claimsPOST /api/v1/claims/:tokenId— claim fees for a token
Token Parameters
| Field | Rules |
|---|---|
name | 1-255 chars, required |
ticker | 2-10 chars, ^[A-Z0-9]+$, required |
description | max 1000 chars, optional |
imageUrl | max 255 chars, optional |
Error Handling
- 409 — ticker taken, choose another
- 401 — JWT expired, re-authenticate
- Rate limit — 1 launch per agent per UTC day
Full API Reference
See references/api.md for complete endpoint documentation.