Skip to main content

simulateBundle RPC Method - JITO

Simulates a Jito bundle – exclusively available to Jito-Solana validator.

Updated on
Oct 19, 2026
Please note that this RPC method requires the Lil' JIT - JITO Bundles and transactions add-on enabled on your Quicknode endpoint.
Solana Kit includes the ability to customize RPC methods and transports, allowing you to seamlessly integrate Quicknode add-ons into your applications. For more information on how to use Quicknode add-ons with Solana Kit, check out these guides: How to Use Quicknode Add-ons using Solana Kit (Part 1) and How to Use Quicknode Add-ons using Solana Kit (Part 2)

Parameters

object
object
REQUIRED

An object containing the following fields:

encodedTransactions
array

An array of one or more base64-encoded, serialized transactions for simulation

object
array

The configuration object with the following fields:

simulationBank
string

(Optional) The bank to run the simulation against

skipSigVerify
boolean

(Optional) A boolean value indicating whether to skip signature verification before simulation. skipSigVerify and replaceRecentBlockhash must be included in the payload for this parameter to work properly.

replaceRecentBlockhash
boolean

(Optional) A boolean value indicating whether to replace the simulated transaction's recent blockhash with the latest blockhash. skipSigVerify and replaceRecentBlockhash must be included in the payload for this parameter to work properly.

accounts
object

The accounts configuration object containing the following fields:

addresses
string

An array of accounts to return, as base-58 encoded strings

encoding
string

The encoding format for account data. It can be one of base58 (slow), base64, base64+zstd or jsonParsed

preExecutionAccountsConfigs
array

Specifies account state configuration before execution. Each entry corresponds to a transaction in encodedTransactions

object
object

Configuration for a specific transaction, or null

accountIndex
number

The index of the account in the transaction you want to pre-configure

addresses
array

A list of account addresses to monitor before execution

postExecutionAccountsConfigs
array

Specifies account state configuration after execution. Each entry corresponds to a transaction in encodedTransactions

object
object

Configuration for a specific transaction, or null

accountIndex
number

The index of the account in the transaction you want to configure

addresses
array

A list of account addresses to monitor after execution

Returns

result
object

Null if the account doesn't exist otherwise RpcResponse JSON object with the following fields:

context
object

An object that contains metadata about the current state of the Solana network at the time the request was processed

apiVersion
string

The version number

slot
integer

The current slot in the Solana cluster during which the transactions are processed and new blocks are added to the blockchain

err
string

Error code if the transaction failed or null if the transaction succeeds

logs
array

An array of log messages the transaction instructions output during execution, null if simulation failed before the transaction was able to execute (for example due to an invalid blockhash or signature verification failure)

preExecutionAccounts
array

A list of accounts to return the pre transaction execution state for. The length of the array must be equal to the number transactions in the bundle

object
object

Returns null if the account doesn't exist or if err is not null, otherwise, a JSON object containing:

lamports
integer

The number of lamports assigned to this account as u64 (64-bit unsigned integer)

owner
string

The base-58 encoded address of the program this account has been assigned to

data
string

The data associated with the account, either as encoded binary data or JSON format {'program': 'state'}, depending on encoding parameter

executable
boolean

A boolean indicating if the account contains a program (and is strictly read-only)

rentEpoch
integer

The epoch at which this account will next owe rent, as u64 (64-bit unsigned integer)

postExecutionAccounts
array

A list of accounts to return the post transaction execution state for. The length of the array must be equal to the number transactions in the bundle

object
object

Returns null if the account doesn't exist or if err is not null, otherwise, a JSON object containing:

lamports
integer

The number of lamports assigned to this account as u64 (64-bit unsigned integer)

owner
string

The base-58 encoded address of the program this account has been assigned to

data
string

The data associated with the account, either as encoded binary data or JSON format {'program': 'state'}, depending on encoding parameter

executable
boolean

A boolean indicating if the account contains a program (and is strictly read-only)

rentEpoch
integer

The epoch at which this account will next owe rent, as u64 (64-bit unsigned integer)

unitsConsumed
integer

The number of compute budget units consumed during the processing of this transaction

returnData
object

The most-recent return data generated by an instruction in the transaction, with the following fields:

programId
string

The program that generated the return data, as base-58 encoded address

data
string

The return data itself, as base-64 encoded binary data

Request
Response
1
{
2
"jsonrpc": "2.0",
3
"id": 1,
4
"result": {
5
"context": {
6
"apiVersion": "1.16.3",
7
"slot": 202851945
8
},
9
"err": null,
10
"logs": [
11
"Program 11111111111111111111111111111111 invoke [1]",
12
"Program 11111111111111111111111111111111 success",
13
"Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [1]",
14
"Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success"
15
],
16
"preExecutionAccounts": [
17
{
18
"lamports": 1000000000,
19
"owner": "11111111111111111111111111111111",
20
"data": "",
21
"executable": false,
22
"rentEpoch": 371
23
}
24
],
25
"postExecutionAccounts": [
26
{
27
"lamports": 998000000,
28
"owner": "11111111111111111111111111111111",
29
"data": "",
30
"executable": false,
31
"rentEpoch": 371
32
}
33
],
34
"unitsConsumed": 200000,
35
"returnData": {
36
"programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
37
"data": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASjD8="
38
}
39
}
40
}
1
{
2
"jsonrpc": "2.0",
3
"id": 1,
4
"result": {
5
"context": {
6
"apiVersion": "1.16.3",
7
"slot": 202851945
8
},
9
"err": null,
10
"logs": [
11
"Program 11111111111111111111111111111111 invoke [1]",
12
"Program 11111111111111111111111111111111 success",
13
"Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [1]",
14
"Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success"
15
],
16
"preExecutionAccounts": [
17
{
18
"lamports": 1000000000,
19
"owner": "11111111111111111111111111111111",
20
"data": "",
21
"executable": false,
22
"rentEpoch": 371
23
}
24
],
25
"postExecutionAccounts": [
26
{
27
"lamports": 998000000,
28
"owner": "11111111111111111111111111111111",
29
"data": "",
30
"executable": false,
31
"rentEpoch": 371
32
}
33
],
34
"unitsConsumed": 200000,
35
"returnData": {
36
"programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
37
"data": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASjD8="
38
}
39
}
40
}
Don't have an account yet?
Create your Quicknode endpoint in seconds and start building
Get started for free