Supported Methods
| Method | Description | Rate Limit |
|---|
sendBundle | Submit a Jito bundle | 5 RPS per project |
getBundleStatuses | Check the status of submitted bundles | General RPC rate limit |
simulateBundle | Simulate a bundle without submitting | General RPC rate limit |
sendBundle
Submits a list of signed transactions as an atomic bundle. If the bundle is accepted, returns a bundle_id (SHA-256 hash of the transaction signatures). This does not guarantee the bundle will land on-chain — use getBundleStatuses to check.
A tip is required. At least one transaction must transfer SOL to a Jito tip account. If the tip is too low, the bundle may not be selected during the auction.
Request
| Parameter | Type | Description |
|---|
params[0] | array[string] | Required. Up to 5 fully-signed transactions, base64 encoded. |
params[1].encoding | string | Optional. base64 (recommended) or base58. Default: base58. |
Example
curl "https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY" \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "sendBundle",
"params": [
[
"AT2AqtlokikUWgGNnSX5xrmdvBjSaiIPxvFz6zc5Abn5Z0CPFW5GO+Y3rXceLnqLgQFnGw0yTk3NtJdFNsbrwwQBAAIEsXPDJ9cMVbpFQYClVM7PGLh8JOfCD6E2vz5VNmBCF+p4Uhyxec67hYm1VqLV7JTSSYaC/fm7KvWtZOSRzEFT2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI1i3Wzl2VfewCI8oYXParnP78725sKFzYheTEn8v865YQIDABhqaXRvIGJ1bmRsZSAwOiBqaXRvIHRlc3QCAgABDAIAAACghgEAAAAAAA==",
"AS6fOZuGDsmyYdd+RC0fiFUgNe1BYTOYT+1hkRXHAeroC8R60h3g34EPF5Ys8sGzVBMP9MDSTVgy1/SSTqpCtA4BAAIEsXPDJ9cMVbpFQYClVM7PGLh8JOfCD6E2vz5VNmBCF+p4Uhyxec67hYm1VqLV7JTSSYaC/fm7KvWtZOSRzEFT2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI1i3Wzl2VfewCI8oYXParnP78725sKFzYheTEn8v865YQIDABhqaXRvIGJ1bmRsZSAxOiBqaXRvIHRlc3QCAgABDAIAAACghgEAAAAAAA=="
],
{
"encoding": "base64"
}
]
}'
Response
{
"jsonrpc": "2.0",
"result": "892b79ed49138bfb3aa5441f0df6e06ef34f9ee8f3976c15b323605bae0cf51d",
"id": 1
}
The result is the bundle ID — use it with getBundleStatuses to track landing.
getBundleStatuses
Returns the status of submitted bundles. If a bundle has not landed or is not found, it returns null.
Request
| Parameter | Type | Description |
|---|
params[0] | array[string] | Required. Up to 5 bundle IDs. |
Example
curl "https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY" \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "getBundleStatuses",
"params": [
[
"892b79ed49138bfb3aa5441f0df6e06ef34f9ee8f3976c15b323605bae0cf51d"
]
]
}'
Response
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 242806119
},
"value": [
{
"bundle_id": "892b79ed49138bfb3aa5441f0df6e06ef34f9ee8f3976c15b323605bae0cf51d",
"transactions": [
"3bC2M9fiACSjkTXZDgeNAuQ4ScTsdKGwR42ytFdhUvikqTmBheUxfsR1fDVsM5ADCMMspuwGkdm1uKbU246x5aE3",
"8t9hKYEYNbLvNqiSzP96S13XF1C2f1ro271Kdf7bkZ6EpjPLuDff1ywRy4gfaGSTubsM2FeYGDoT64ZwPm1cQUt"
],
"slot": 242804011,
"confirmation_status": "finalized",
"err": {
"Ok": null
}
}
]
},
"id": 1
}
Returns null in the value array for bundles not found.
Region Routing
By default, Helius routes your bundle to Jito’s global endpoint (mainnet.block-engine.jito.wtf), which geo-routes to the nearest Block Engine automatically.
To target a specific region, set the jito-region HTTP header:
| Header Value | Block Engine Region |
|---|
ams | Amsterdam |
dub | Dublin |
fra | Frankfurt |
lon | London |
nyc | New York |
slc | Salt Lake City |
sgp | Singapore |
tyo | Tokyo |
mainnet | Global (geo-routed) |
Example with Region
curl "https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY" \
-X POST \
-H "Content-Type: application/json" \
-H "jito-region: nyc" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "sendBundle",
"params": [
[
"AT2AqtlokikUWgGNnSX5xrmdvBjSaiIPxvFz6zc5Abn5Z0CPFW5GO+Y3rXceLnqLgQFnGw0yTk3NtJdFNsbrwwQBAAIEsXPDJ9cMVbpFQYClVM7PGLh8JOfCD6E2vz5VNmBCF+p4Uhyxec67hYm1VqLV7JTSSYaC/fm7KvWtZOSRzEFT2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI1i3Wzl2VfewCI8oYXParnP78725sKFzYheTEn8v865YQIDABhqaXRvIGJ1bmRsZSAwOiBqaXRvIHRlc3QCAgABDAIAAACghgEAAAAAAA==",
"AS6fOZuGDsmyYdd+RC0fiFUgNe1BYTOYT+1hkRXHAeroC8R60h3g34EPF5Ys8sGzVBMP9MDSTVgy1/SSTqpCtA4BAAIEsXPDJ9cMVbpFQYClVM7PGLh8JOfCD6E2vz5VNmBCF+p4Uhyxec67hYm1VqLV7JTSSYaC/fm7KvWtZOSRzEFT2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI1i3Wzl2VfewCI8oYXParnP78725sKFzYheTEn8v865YQIDABhqaXRvIGJ1bmRsZSAxOiBqaXRvIHRlc3QCAgABDAIAAACghgEAAAAAAA=="
],
{
"encoding": "base64"
}
]
}'
If you omit the jito-region header, the bundle is sent to Jito’s global endpoint which automatically routes to the nearest Block Engine. For most users, this is the best default.
Tip Accounts
At least one transaction in your bundle must include a SOL transfer to one of these tip accounts. Pick one at random to reduce contention.
3AVi9Tg9Uo68tJfuvoKvqKNWKkC5wPdSSdeBnizKZ6jT
HFqU5x63VTqvQss8hp11i4wVV8bD44PvwucfZ2bU7gRe
Cw8CFyM9FkoMi7K7Crf6HNQqf4uEMzpKw6QNghXLvLkY
DfXygSm4jCyNCybVYYK6DwvWqjKee8pbDmJGcLWNDXjh
ADuUkR4vqLUMWXxW9gh6D6L8pMSawimctcNZ5pGwDcEt
DttWaMuVvTiduZRnguLF7jNxTgiMBZ1hyAumKUiL2KRL
96gYZGLnJYVFmbjzopPSU6QiEV5fGqZNyN9nmNhvrZU5
ADaUMid9yfUytqMBgopwjb2DTLSokTSzL1zt6iGPaS49
Minimum tip is 1,000 lamports, but realistically higher during congestion. See Jito tip guidelines for current recommendations.
Bundle Requirements
- Max 5 transactions per bundle
- All transactions must be fully signed
- Use base64 encoding (recommended over base58 for performance)
- At least one transaction must include a tip
- Transactions execute sequentially — tx2 can depend on state changes from tx1
- If any transaction fails, the entire bundle is rejected
simulateBundle (Optional)
You can optionally simulate your bundle before submitting to check for errors:
curl "https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY" \
-X POST \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "simulateBundle",
"params": [
{
"encodedTransactions": [
"AT2AqtlokikUWgGNnSX5xrmdvBjSaiIPxvFz6zc5Abn5Z0CPFW5GO+Y3rXceLnqLgQFnGw0yTk3NtJdFNsbrwwQBAAIEsXPDJ9cMVbpFQYClVM7PGLh8JOfCD6E2vz5VNmBCF+p4Uhyxec67hYm1VqLV7JTSSYaC/fm7KvWtZOSRzEFT2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI1i3Wzl2VfewCI8oYXParnP78725sKFzYheTEn8v865YQIDABhqaXRvIGJ1bmRsZSAwOiBqaXRvIHRlc3QCAgABDAIAAACghgEAAAAAAA==",
"AS6fOZuGDsmyYdd+RC0fiFUgNe1BYTOYT+1hkRXHAeroC8R60h3g34EPF5Ys8sGzVBMP9MDSTVgy1/SSTqpCtA4BAAIEsXPDJ9cMVbpFQYClVM7PGLh8JOfCD6E2vz5VNmBCF+p4Uhyxec67hYm1VqLV7JTSSYaC/fm7KvWtZOSRzEFT2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI1i3Wzl2VfewCI8oYXParnP78725sKFzYheTEn8v865YQIDABhqaXRvIGJ1bmRsZSAxOiBqaXRvIHRlc3QCAgABDAIAAACghgEAAAAAAA=="
]
}
]
}'