TheDocumentation Index
Fetch the complete documentation index at: https://docs.raze.bot/llms.txt
Use this file to discover all available pages before exploring further.
/utils/sol/* endpoints live on the same trading service as /swap/sol/*
and /perp/sol/*. They cover the non-swap workflows previously hosted on the
legacy public.raze.sh service: token launches, fee management, SOL/SPL
transfers, mixing, distribution, and consolidation.
All endpoints require an API key (same scheme as the swap routes —
X-API-Key, Authorization: Bearer sk_..., or ?apiKey=sk_...).
Endpoints
Transfer
Batch SOL + SPL + Token-2022 transfers. One request → as few txs as fit.
Burn
Batch burn SPL or Token-2022 tokens across many wallets and mints.
Distribute
One→many SOL distribute.
Consolidate
Many→one SOL sweep, percentage-based.
Mixer
One→one SOL routed through ephemeral hops.
Launch
Token launch (pumpfun / bonk / meteora_dbc / meteora_cpamm).
Fees: Claim
Claim pump.fun creator fees or Meteora partner/creator fees.
Fees: Config
Manage pump.fun creator-fee sharing config.
Batch semantics
transfer and burn are the two endpoints that accept a true batch (items[]).
The server groups items by their signer (sender for transfer, wallet for burn)
and bin-packs each group into as few versioned transactions as the 1232-byte
wire limit allows. Items that share a signer share a tx; items with different
signers go to different txs.
The response includes a batches[] array describing the packing — batches[i]
describes transactions[i], telling you which input item indices ended up in
that tx and how many non-fee instructions it contains. That lets you do
partial-retry logic when one tx in a batch lands and another doesn’t.
Common request flags
| Flag | Default | What it does |
|---|---|---|
encoding | base64 | Output transaction encoding. base58 supported for legacy callers. |
simulate | false | When true, every built tx is run through simulateTransaction and the result is attached as simulations[i]. |
feeTipLamports | — | Override the Raze tip transfer (min 900000 lamports). |
transactionsFeeLamports | — | When set, compute-budget instructions are prepended to every output tx. |
maxInstructionsPerTx | auto | Optional cap on non-fee instructions per tx. Default fits the 1232-byte budget. |
Common response envelope
Token program autodetection
Anywhere atokenAddress (mint) appears, the server batch-fetches the mint
account in one getMultipleAccounts call and detects whether the mint is owned
by the SPL Token program or Token-2022. The right program ID is used for
ATA derivation and transfer_checked / burn_checked instruction building.
Callers don’t pass a tokenProgram flag.
Token-2022 mints with the transfer-fee extension are not yet supported and
will fail on-chain. Open an issue if you hit one and we’ll add
transfer_checked_with_fee.
Migration from public.raze.sh
These endpoints replace the legacy public.raze.sh service, which has been
removed. Endpoint mapping:
| Legacy (removed) | New |
|---|---|
POST https://public.raze.sh/api/sol/transfer | POST https://<region>.raze.sh/utils/sol/transfer |
POST https://public.raze.sh/api/sol/burn | POST https://<region>.raze.sh/utils/sol/burn |
POST https://public.raze.sh/api/sol/distribute | POST https://<region>.raze.sh/utils/sol/distribute |
POST https://public.raze.sh/api/sol/consolidate | POST https://<region>.raze.sh/utils/sol/consolidate |
POST https://public.raze.sh/api/sol/mixer | POST https://<region>.raze.sh/utils/sol/mixer |
POST https://public.raze.sh/api/sol/create | POST https://<region>.raze.sh/utils/sol/launch |
POST https://public.raze.sh/api/sol/fee-claim | POST https://<region>.raze.sh/utils/sol/fees/claim |
POST https://public.raze.sh/api/sol/fee-config | POST https://<region>.raze.sh/utils/sol/fees/config |
GET /api/metadata/*, GET /api/image/*, and POST /api/upload
endpoints have no public replacement — read Metaplex / Token-2022 metadata via
Solana RPC, serve images through a CDN, and pin to IPFS via Pinata directly.
The new endpoints require an API key (the legacy service was open). Default
output encoding is base64 (legacy was base58); pass encoding: "base58"
for byte-for-byte compatibility.