Bundle API
POST /submit with type bundle — 1–4 ordered buys / sells from different wallets, landed together.
POST {base}/submit with "type": "bundle". Up to 4 transactions in txs, executed in array order, all in the same slot or none. Each leg carries its own api_key; there is no top-level one.
Required fields
| Field | Type | Notes |
|---|---|---|
type | string | bundle |
session_id | string | JWT, or Authorization: Bearer |
mint_address | string | Same coin for every leg |
txs | array | 1–4 legs (below) |
Legs
| Leg | Fields |
|---|---|
| Buy | { "type": "buy", "sol_amount": 0.5, "api_key": "<key>" } — lamports takes priority over sol_amount |
| Sell | { "type": "sell", "percent": 100, "api_key": "<key>" } — 1–100 % of that wallet's tokens, or basis_points |
Optional fields (shared by every leg)
| Field | Type | Notes |
|---|---|---|
mode | string | pump (default), bonk, ray, usd1. Sells are pump-only |
creator_wallet | string | Coin creator pubkey — pass it when you have it |
quote_token | string | "usdc" for USDC-quoted pump coins |
mayhem_mode, bonkers_mode, locked_mode | boolean | Platform selectors |
bribe_fee_sol | number | Relay tip per tx |
slippage_bps | integer | USDC swap slippage, default 200 |
request_id | string | Echoed back |
{
"type": "bundle",
"session_id": "<jwt>",
"mint_address": "MintAddressHere",
"mode": "pump",
"creator_wallet": "CreatorPubkeyHere",
"txs": [
{ "type": "buy", "sol_amount": 0.3, "api_key": "<wallet_A_key>" },
{ "type": "sell", "percent": 100, "api_key": "<wallet_B_key>" },
{ "type": "buy", "sol_amount": 0.1, "api_key": "<wallet_C_key>" },
{ "type": "sell", "percent": 50, "api_key": "<wallet_D_key>" }
]
}Success response
txs comes back in the order you sent.
{
"type": "bundle_success",
"mint_address": "...",
"mode": "pump",
"bundle_id": "...",
"txs": [
{ "index": 1, "type": "buy", "wallet": "...", "sol_amount": 0.3, "signature": "..." },
{ "index": 2, "type": "sell", "wallet": "...", "percent": 100, "signature": "..." }
]
}Errors are { "type": "bundle_error", "error": "tx 2: …" } and name the leg that failed validation.