Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions api-reference/rpc/http/sendbundle.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
title: "sendBundle"
"og:title": "sendBundle Solana RPC Method"
sidebarTitle: "sendBundle"
description: "Submit a Jito bundle for atomic, ordered transaction execution on Solana."
"og:description": "Submit a Jito bundle of Solana transactions for atomic, ordered execution on-chain."
openapi: "/openapi/rpc-http/sendBundle.yaml POST /"
---

## Request Parameters

<ParamField body="transactions" type="array" required>
Array of encoded, serialized transactions to execute as a bundle. Maximum of 5 transactions. Transactions are executed sequentially and atomically — if any transaction fails, the entire bundle is dropped. One of the transactions must include a tip to a Jito tip account.
</ParamField>

<ParamField body="encoding" type="string" default="base64">
The encoding used for the transaction strings.
- `base58`
- `base64`
</ParamField>

## Rate Limits

`sendBundle` is only available on **Business** plans and higher, and is currently limited to **5 requests per second**. If you need higher throughput, [contact our sales team](https://www.helius.dev/contact) to discuss custom limits.
1 change: 1 addition & 0 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -434,6 +434,7 @@
"api-reference/rpc/http/isblockhashvalid",
"api-reference/rpc/http/minimumledgerslot",
"api-reference/rpc/http/requestairdrop",
"api-reference/rpc/http/sendbundle",
"api-reference/rpc/http/sendtransaction",
"api-reference/rpc/http/simulatebundle",
"api-reference/rpc/http/simulatetransaction"
Expand Down
213 changes: 213 additions & 0 deletions openapi/rpc-http/sendBundle.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,213 @@
openapi: 3.1.0
info:
title: Solana RPC API
version: 1.0.0
description: Submit Jito bundles for atomic, ordered transaction execution on Solana.
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://mainnet.helius-rpc.com
description: Mainnet RPC endpoint
- url: https://devnet.helius-rpc.com
description: Devnet RPC endpoint
components:
securitySchemes:
ApiKeyQuery:
type: apiKey
in: query
name: api-key
description: Your Helius API key. You can get one for free in the [dashboard](https://dashboard.helius.dev/api-keys).
schemas:
ErrorResponse:
type: object
properties:
jsonrpc:
type: string
description: The JSON-RPC protocol version.
enum:
- "2.0"
example: "2.0"
error:
type: object
properties:
code:
type: integer
description: The error code.
example: -32602
message:
type: string
description: The error message.
data:
type: object
description: Additional data about the error.
id:
type: string
description: Identifier matching the request.
example: "1"
paths:
/:
post:
tags:
- RPC
summary: sendBundle
operationId: sendBundle
description: |
Submit a Jito bundle of up to 5 transactions for atomic, ordered execution on the Solana blockchain.
All transactions in the bundle are executed sequentially and atomically — if any transaction fails,
the entire bundle is dropped. Bundles must include a tip to a Jito tip account in one of the transactions.
security:
- ApiKeyQuery: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
jsonrpc:
type: string
enum:
- "2.0"
description: The JSON-RPC protocol version.
example: "2.0"
default: "2.0"
id:
type: string
description: A unique identifier for the request.
example: "1"
default: "1"
method:
type: string
enum:
- "sendBundle"
description: The name of the RPC method to invoke.
example: "sendBundle"
default: "sendBundle"
params:
type: array
description: Parameters for sending a Jito bundle.
items:
oneOf:
- type: array
description: Array of encoded, serialized transactions to execute as a bundle. Maximum of 5 transactions.
items:
type: string
description: An encoded serialized transaction.
- type: object
description: Optional configuration for the bundle submission.
properties:
encoding:
type: string
description: The encoding used for the transaction strings.
enum:
- base58
- base64
default: base64
example: base64
example:
jsonrpc: "2.0"
id: "1"
method: "sendBundle"
params:
- - "AT2AqtlokikUWgGNnSX5xrmdvBjSaiIPxvFz6zc5Abn5Z0CPFW5GO+Y3rXceLnqLgQFnGw0yTk3NtJdFNsbrwwQBAAIEsXPDJ9cMVbpFQYClVM7PGLh8JOfCD6E2vz5VNmBCF+p4Uhyxec67hYm1VqLV7JTSSYaC/fm7KvWtZOSRzEFT2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI1i3Wzl2VfewCI8oYXParnP78725sKFzYheTEn8v865YQIDABhqaXRvIGJ1bmRsZSAwOiBqaXRvIHRlc3QCAgABDAIAAACghgEAAAAAAA=="
- "AS6fOZuGDsmyYdd+RC0fiFUgNe1BYTOYT+1hkRXHAeroC8R60h3g34EPF5Ys8sGzVBMP9MDSTVgy1/SSTqpCtA4BAAIEsXPDJ9cMVbpFQYClVM7PGLh8JOfCD6E2vz5VNmBCF+p4Uhyxec67hYm1VqLV7JTSSYaC/fm7KvWtZOSRzEFT2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI1i3Wzl2VfewCI8oYXParnP78725sKFzYheTEn8v865YQIDABhqaXRvIGJ1bmRsZSAxOiBqaXRvIHRlc3QCAgABDAIAAACghgEAAAAAAA=="
- encoding: "base64"
responses:
200:
description: Bundle submitted successfully. Returns a bundle ID that can be used to track the bundle status.
content:
application/json:
schema:
type: object
properties:
jsonrpc:
type: string
enum:
- "2.0"
description: The JSON-RPC protocol version.
example: "2.0"
id:
type: string
description: Identifier matching the request.
example: "1"
result:
type: string
description: The bundle ID. Use this to check the bundle status with `getBundleStatuses` or `getInflightBundleStatuses`.
example: "2id3YC2jK9PXyfaos635MqHj2seMJHc4rxFBRa3pGqoN5H7JnwzYKiyoZPFbBSqBz3atSMEVZR5mhTiLby2VU9Hx"
example:
jsonrpc: "2.0"
id: "1"
result: "2id3YC2jK9PXyfaos635MqHj2seMJHc4rxFBRa3pGqoN5H7JnwzYKiyoZPFbBSqBz3atSMEVZR5mhTiLby2VU9Hx"
400:
description: Bad Request - Invalid request parameters or malformed request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
jsonrpc: "2.0"
error:
code: -32602
message: "Invalid params"
id: "1"
401:
description: Unauthorized - Invalid or missing API key.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
jsonrpc: "2.0"
error:
code: -32001
message: "Unauthorized"
id: "1"
429:
description: Too Many Requests - Rate limit exceeded.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
jsonrpc: "2.0"
error:
code: -32005
message: "Too many requests"
id: "1"
500:
description: Internal Server Error - An error occurred on the server.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
jsonrpc: "2.0"
error:
code: -32603
message: "Internal error"
id: "1"
503:
description: Service Unavailable - The service is temporarily unavailable.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
jsonrpc: "2.0"
error:
code: -32002
message: "Service unavailable"
id: "1"
504:
description: Gateway Timeout - The request timed out.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
example:
jsonrpc: "2.0"
error:
code: -32003
message: "Gateway timeout"
id: "1"