Skip to main content

Documentation Index

Fetch the complete documentation index at: https://blank.build/docs/llms.txt

Use this file to discover all available pages before exploring further.

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
  },
  "launchMode": "basic"
}
bps is basis points: 100 bps = 1%, and the splits in any single launch must total 10,000 bps (100%). staking.shareBps is optional. When present, the staking pool is created inside the launch bundle and the build response includes stakingPoolAddress. 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.