Skip to content

Submit Bundles ​

Submit multiple transactions as an atomic bundle. All transactions succeed together or all fail.


Request ​

json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sendBundle",
  "params": [
    [
      "<base64_tx_1>",
      "<base64_tx_2>",
      "<base64_tx_3>"
    ],
    {
      "encoding": "base64",
      "skipPreflight": true
    }
  ]
}

Parameters ​

ParameterTypeRequiredDefaultDescription
transactionsstring[]Yes—Array of base64 encoded signed transactions (max 4)
encodingstringNo"base64""base64"
skipPreflightbooleanNotrueSkip preflight simulation

Response ​

json
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "bundle_id": "abc123def456...",
    "signatures": [
      "5VERv8NMvzbJMEkV8xnrLkEaWRtSz9Co...",
      "3XHA7ofPAf3FaLUAY3kT52c9dwek2Gbi..."
    ]
  }
}

Endpoint ​

POST https://global.blocksprint.io/bundle/v1/YOUR_API_KEY

Alternative:

POST https://global.blocksprint.io/bundle

With X-API-Key header or ?api_key= query parameter.


URI Parameters ​

ConstraintTypeDefaultDescription
revertProtectionboolfalseEnables revert protection

Bundle Limits ​

ConstraintLimit
Max transactions4
Min transactions1
Max transaction size1,232 bytes (4,096 bytes for Transaction V1)
Min tip0.001 SOL to a BlockSprint tip address, in one of the bundle's transactions

How Bundles Work ​

Atomic execution ​

All transactions execute together.

Sequential order ​

Transactions execute in the order they appear in the array.

Revert protection ​

If any transaction fails, the entire bundle reverts.

Multi-provider ​

Bundles are sent to Jito.


Use Cases ​

Arbitrage ​

javascript
const bundle = [
  buyOnDexA,   // Buy token
  sellOnDexB,  // Sell token for profit
];

Flash Loans ​

javascript
const bundle = [
  flashBorrow,
  executeStrategy,
  flashRepay,
];

NFT Operations ​

javascript
const bundle = [
  approveSpend,
  buyNft,
];

Code Examples ​