Skip to main content
POST
simulateBundle
curl --request POST \
  --url 'https://mainnet.helius-rpc.com/?api-key=' \
  --header 'Content-Type: application/json' \
  --data '
{
  "jsonrpc": "2.0",
  "id": "1",
  "method": "simulateBundle",
  "params": [
    {
      "encodedTransactions": [
        "5rqF8aHfs9JyEtKTvND6z8RgBtYxQwZLndS1kzHxV7D3kWm9VoYRzFtsP3qra5bM8rGhC v82LYo8fZpQoyQmtN1D9vxG2uEsMhV7jB4KdADRgxMXn5kRJzLZPt2LrPSmcUhfEmeQa7X rKeR9FHdKcXxZ1Hdq68oBr2AaPpTMuL85KDCt",
        "5rqF8aHfs9JyEtKTvND6z8RgBtYxQwZLndS1kzHxV7D3kWm9VoYRzFtsP3qra5bM8rGhC v82LYo8fZpQoyQmtN1D9vxG2uEsMhV7jB4KdADRgxMXn5kRJzLZPt2LrPSmcUhfEmeQa7X rKeR9FHdKcXxZ1Hdq68oBr2AaPpTMuL85KDCt"
      ]
    },
    {
      "preExecutionAccountsConfigs": [
        {
          "addresses": [
            "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
          ],
          "encoding": "base64"
        },
        null
      ],
      "postExecutionAccountsConfigs": [
        {
          "addresses": [
            "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
          ],
          "encoding": "base64"
        },
        null
      ],
      "skipSigVerify": true,
      "simulationBank": {
        "commitment": {
          "commitment": "processed"
        }
      },
      "transactionEncoding": "base64",
      "replaceRecentBlockhash": false
    }
  ]
}
'
{
  "jsonrpc": "2.0",
  "id": "1",
  "result": {
    "context": {
      "apiVersion": "2.30.10",
      "slot": 373999891
    },
    "value": {
      "summary": "succeeded",
      "transactionResults": [
        {
          "err": null,
          "logs": [
            "Program ComputeBudget111111111111111111111111111111 invoke [1]",
            "Program ComputeBudget111111111111111111111111111111 success",
            "Program ComputeBudget111111111111111111111111111111 invoke [1]",
            "Program ComputeBudget111111111111111111111111111111 success",
            "Program 11111111111111111111111111111111 invoke [1]",
            "Program 11111111111111111111111111111111 success"
          ],
          "preExecutionAccounts": [
            {
              "data": [
                "",
                "base64"
              ],
              "executable": true,
              "lamports": 5299606121,
              "owner": "BPFLoader2111111111111111111111111111111111",
              "rentEpoch": 324,
              "space": 134080
            }
          ],
          "postExecutionAccounts": [
            {
              "data": [
                "",
                "base64"
              ],
              "executable": true,
              "lamports": 5299606121,
              "owner": "BPFLoader2111111111111111111111111111111111",
              "rentEpoch": 324,
              "space": 134080
            }
          ],
          "returnData": {
            "programId": "Fx9Hp1gLzYj6Ryc4GaVoq2v6t4NxWg3GT1kP7quzZbVQ",
            "data": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASjD8="
          },
          "unitsConsumed": 450
        },
        {
          "err": null,
          "logs": [
            "Program ComputeBudget111111111111111111111111111111 invoke [1]",
            "Program ComputeBudget111111111111111111111111111111 success",
            "Program ComputeBudget111111111111111111111111111111 invoke [1]",
            "Program ComputeBudget111111111111111111111111111111 success",
            "Program 11111111111111111111111111111111 invoke [1]",
            "Program 11111111111111111111111111111111 success"
          ],
          "postExecutionAccounts": null,
          "preExecutionAccounts": null,
          "returnData": null,
          "unitsConsumed": 450
        }
      ]
    }
  }
}

Request Parameters

params[0]
object
required
First configuration object. Contains the encoded transactions for the simulation.
params[0].encodedTransactions
array
Array of encoded, serialized transactions for simulation. The encoding is determined by the transactionEncoding field (base-64 by default).
params[1]
object
Second configuration object. Optional.
params[1].preExecutionAccountsConfigs
array
required
Specifies which accounts to capture during simulation.This captures the account states before the transaction is executed.An array element at an index configures the transaction that is at the same index in the bundle.For each transaction in the bundle:
  • Pass null if you do not want any account state to be returned.
  • Or, provide an object describing which accounts to return.
The array length must be equal to the number of transactions in the bundle.
params[1].postExecutionAccountsConfigs
array
required
Specifies which accounts to capture during simulation.This captures the account states after the transaction is executed.An array element at an index configures the transaction that is at the same index in the bundle.For each transaction in the bundle:
  • Pass null if you do not want any account state to be returned.
  • Or, provide an object describing which accounts to return.
The array length must be equal to the number of transactions in the bundle.
params[1].transactionEncoding
string
default:"base64"
The transaction encoding used in encodedTransactions.
  • base64
  • base58
params[1].simulationBank
any
Specified which bank to run the simulation against. Can be the tip, a slot, or a commitment level.
params[1].skipSigVerify
boolean
default:"false"
Whether to skip signature verification before simulation.
params[1].replaceRecentBlockhash
boolean
default:"false"
Whether to replace the simulated transaction’s recent blockhash with the latest blockhash.

Authorizations

api-key
string
query
required

Your Helius API key. You can get one for free in the dashboard.

Body

application/json
jsonrpc
enum<string>
default:2.0

The JSON-RPC protocol version.

Available options:
2.0
Example:

"2.0"

id
string
default:1

A unique identifier for the request.

Example:

"1"

method
enum<string>
default:simulateBundle

The name of the RPC method to invoke.

Available options:
simulateBundle
Example:

"simulateBundle"

params
object[]

Parameters for simulating a JITO bundle.

Response

Successfully simulated the bundle.

jsonrpc
enum<string>

The JSON-RPC protocol version.

Available options:
2.0
Example:

"2.0"

id
string

Identifier matching the request.

Example:

"1"

result
object

Result of the simulated bundle.