Laser Bundle
POST /v1/laser/bundle
Builds, signs, and submits an atomic Jito bundle from managed Laser wallets.
The request is authenticated once with x-api-key; each leg can optionally
select one of that account's managed wallets. The final leg carries the
supplied Jito tip; all legs either land together or do not land. The first
bundle wallet pays the Jito tip.
Request
| Field | Type | Required | Notes |
|---|---|---|---|
accounts | object[] | Yes | 1 to 4 bundle legs. |
mint | string | Conditional | Required for buy and sell legs unless the first leg is create. |
jitoTip | number or string | Yes | SOL amount paid from the first wallet to a Jito tip account. |
confirm | boolean | No | Defaults to true; waits up to 30 seconds for Jito status. |
Every accounts entry requires type. type is buy, sell, or create.
Set optional wallet to a managed wallet public key; omit it to use the
account default wallet.
buyandselluseamount, optionaldenominatedInSol(defaulttrue),slippageBps(default200), and optional PumpSwappool.createuses the same fields as Laser Create:name,symbol, and a required externally hosteduri. It can includeinitial_buyandslippageto combine creation and the developer buy in one transaction.
sell amounts are token units and must set denominatedInSol: false.
Multi-wallet Buy
const bundle = await solanaLaser("/v1/laser/bundle", {
mint: "TokenMintAddress",
jitoTip: 0.01,
accounts: [
{ wallet: "WALLET_1_PUBLIC_KEY", type: "buy", amount: 0.1, denominatedInSol: true },
{ wallet: "WALLET_2_PUBLIC_KEY", type: "buy", amount: 0.2, denominatedInSol: true },
],
});
Create and Buy
const bundle = await solanaLaser("/v1/laser/bundle", {
jitoTip: 0.01,
accounts: [
{
wallet: "CREATOR_PUBLIC_KEY",
type: "create",
name: "My Token",
symbol: "MTK",
uri: "ipfs://YOUR_METADATA_CID",
initial_buy: 0.5,
slippage: 5,
},
{ wallet: "BUYER_PUBLIC_KEY", type: "buy", amount: 1, denominatedInSol: true },
],
});
The created mint is used automatically by following buy legs. New-token bundle buys must be SOL-denominated; the API maintains a fresh bonding-curve preview between legs so each buyer gets a quote for its actual position in the bundle. Only the first bundle leg receives the supplied Jito tip; later legs carry no Sender or Jito tip.
Response
{
"bundle_id": "JITO_BUNDLE_ID",
"results": [
{ "index": 0, "type": "buy", "wallet": "WALLET_1", "signature": "SIG_1" }
],
"mint": "CREATED_MINT_OR_NULL",
"confirmed": true,
"confirmation_status": "confirmed"
}
All wallets are resolved from the server's encrypted managed-wallet store. The endpoint never accepts private keys or pre-signed transactions.