Skip to main content

HTTP Reference

Most integrations should just use the SDK. This page is for debugging, backend adapters, or anyone who wants to see exactly what the SDK is doing under the hood. The API is versioned at /api/v1/.... Stable endpoints live under that prefix. Unversioned paths (e.g. /api/token/...) exist for the blank.build web UI and are not part of the public stability contract — don’t depend on them.

Launch

MethodPathAuthUse
POST/api/v1/launch/buildAPI keyBuild a server-signed launch transaction bundle. Accepts optional Idempotency-Key header.
GET/api/v1/launch/{launchId}API keyRead launch payload status.
POST/api/v1/token/submitAPI key + wallet signatureSubmit signed transactions by submissionIntentId. SDK-internal for normal apps.
Build request body:
{
  "creator": "<creator-wallet>",
  "name": "Example Token",
  "symbol": "EXAMPLE",
  "metadataUri": "ipfs://bafy.../metadata.json",
  "antiSnipeEnabled": true,
  "creatorFeeSplit": [
    { "walletAddress": "<wallet-1>", "bps": 7000 },
    { "walletAddress": "<wallet-2>", "bps": 3000 }
  ],
  "staking": {
    "shareBps": 2000
  },
  "buybackBurn": {
    "shareBps": 1000
  },
  "liquidityCompounding": {
    "shareBps": 500
  },
  "launchMode": "basic"
}
bps is basis points: 100 bps = 1%, and the splits in any single launch must total 10,000 bps (100%). staking.shareBps, buybackBurn.shareBps, and liquidityCompounding.shareBps are optional creator-side fee allocations. When staking is present, the staking pool is created inside the launch bundle and the build response includes stakingPoolAddress. The three shares cannot exceed 10,000 bps combined and are increase-only after launch. Build response fields are all live values from the reserved launch: launchId, mintAddress, dbcConfig, poolAddress, feeCollector, feeVault, feeSplitConfig, stakingPoolAddress, lookupTable, submissionIntentId, payload, and expiresAt. expiresAt is the blockhash window for the unsigned bundle; the high-level SDK result intentionally does not expose it after submit succeeds. Submit request body:
{
  "submissionIntentId": "<uuid>",
  "transactions": ["<base64-signed-v0-transaction>"],
  "transport": "jito",
  "bundleOnly": true
}
Basic launches must use transport: "jito" and bundleOnly: true. The SDK sets these for you automatically — you only need to provide them if you’re calling the HTTP endpoint directly.

Staking

MethodPathAuthUse
POST/api/v1/token/{mint}/staking/enableAPI key + controller signatureEnable staking after launch for tokens launched without staking.
POST/api/v1/token/{mint}/staking/top-upAPI key + controller signatureBuild a creator-funded staking bonus transaction.
GET/api/token/{mint}/staking/top-up/preview?amount=1.5User tokenPreview a creator-funded staking bonus (web-only path).
Enable body (here, 2000 bps = 20% of the creator’s fee share routed to stakers):
{ "initialAllocationBps": 2000 }
Top-up body (amount in SOL, as a string):
{ "amount": "1.5" }

Public reads

MethodPathAuthUse
GET/api/v1/developers/solana/manifestNoneRead active Solana config and limits.
GET/api/v1/token/{mint}/feesNoneRead current fee status.
GET/api/v1/token/{mint}/fee-historyNoneRead fee distribution history.
Public reads are rate-limited by IP. Use them for display and diagnostics — they don’t prove who the user is, so don’t use them as a stand-in for auth.

Audience Exports

MethodPathAuthUse
GET/api/v1/token/{mint}/audience-exportAPI key + token controllerRead the latest export job for a token.
POST/api/v1/token/{mint}/audience-exportAPI key + token controllerStart an exact holder/staker export job.
GET/api/v1/token/{mint}/audience-export/{exportId}/download?kind=holdersAPI key + token controllerDownload the completed holders CSV.
GET/api/v1/token/{mint}/audience-export/{exportId}/download?kind=stakersAPI key + token controllerDownload the completed stakers CSV.
Exports are asynchronous. POST returns 202 Accepted with { export, reused }; if a job is already queued or running, reused is true and no duplicate job is created. Download returns 409 Conflict until the job is complete.