> ## Documentation Index
> Fetch the complete documentation index at: https://www.helius.dev/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# simulateBundle

> Simulasikan bundle JITO tanpa mengeksekusinya di blockchain.

## Parameter Permintaan

<ParamField body="params[0]" type="object" required>
  Objek konfigurasi pertama. Berisi transaksi terenkode untuk simulasi.
</ParamField>

<ParamField body="params[0].encodedTransactions" type="array">
  Larik transaksi terenkode dan terserialisasi untuk simulasi. Enkoding ditentukan oleh bidang `transactionEncoding` (secara default base-64).
</ParamField>

<ParamField body="params[1]" type="object">
  Objek konfigurasi kedua. Opsional.
</ParamField>

<ParamField body="params[1].preExecutionAccountsConfigs" type="array" required>
  Menentukan akun yang akan diambil selama simulasi.

  Ini mengambil status akun *sebelum* transaksi dieksekusi.

  Elemen larik pada suatu indeks mengonfigurasi transaksi yang berada pada indeks yang sama dalam bundle.

  Untuk setiap transaksi dalam bundle:

  * Teruskan `null` jika Anda tidak ingin status akun apa pun dikembalikan.
  * Atau, berikan objek yang menjelaskan akun mana yang akan dikembalikan.

  Panjang larik harus sama dengan jumlah transaksi dalam bundle.
</ParamField>

<ParamField body="params[1].postExecutionAccountsConfigs" type="array" required>
  Menentukan akun yang akan diambil selama simulasi.

  Ini mengambil status akun *setelah* transaksi dieksekusi.

  Elemen larik pada suatu indeks mengonfigurasi transaksi yang berada pada indeks yang sama dalam bundle.

  Untuk setiap transaksi dalam bundle:

  * Teruskan `null` jika Anda tidak ingin status akun apa pun dikembalikan.
  * Atau, berikan objek yang menjelaskan akun mana yang akan dikembalikan.

  Panjang larik harus sama dengan jumlah transaksi dalam bundle.
</ParamField>

<ParamField body="params[1].transactionEncoding" type="string" default="base64">
  Enkoding transaksi yang digunakan dalam `encodedTransactions`.

  * `base64`
  * `base58`
</ParamField>

<ParamField body="params[1].simulationBank" type="any">
  Menentukan bank yang menjadi acuan untuk menjalankan simulasi. Dapat berupa tip, slot, atau tingkat komitmen.
</ParamField>

<ParamField body="params[1].skipSigVerify" type="boolean" default="false">
  Menentukan apakah verifikasi tanda tangan dilewati sebelum simulasi.
</ParamField>

<ParamField body="params[1].replaceRecentBlockhash" type="boolean" default="false">
  Menentukan apakah blockhash terbaru milik transaksi yang disimulasikan akan diganti dengan blockhash terkini.
</ParamField>


## OpenAPI

````yaml id/openapi/rpc-http/simulateBundle.yaml POST /
openapi: 3.1.0
info:
  title: Solana RPC API
  version: 1.0.0
  description: >-
    API Simulasi Bundle JITO untuk menguji dan memvalidasi eksekusi bundle
    sebelum dikirimkan ke jaringan Solana melalui validator JITO.
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://mainnet.helius-rpc.com
    description: Endpoint RPC Mainnet
  - url: https://devnet.helius-rpc.com
    description: Endpoint RPC Devnet
security: []
paths:
  /:
    post:
      tags:
        - RPC
      summary: simulateBundle
      description: >
        Simulasikan bundle JITO tanpa mengeksekusinya di blockchain. Metode ini
        memungkinkan pengembang

        menguji eksekusi bundle, memverifikasi perilaku transaksi dalam bundle,
        memperkirakan konsumsi unit

        komputasi, mendeteksi kesalahan, serta melihat pratinjau perubahan
        status akun sebelum dan sesudah eksekusi bundle.

        Tersedia secara eksklusif untuk validator JITO-Solana dan penting untuk
        pengembangan strategi MEV

        serta pengoptimalan bundle.
      operationId: simulateBundle
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                jsonrpc:
                  type: string
                  enum:
                    - '2.0'
                  description: Versi protokol JSON-RPC.
                  example: '2.0'
                  default: '2.0'
                id:
                  type: string
                  description: Pengidentifikasi unik untuk permintaan.
                  example: '1'
                  default: '1'
                method:
                  type: string
                  enum:
                    - simulateBundle
                  description: Nama metode RPC yang akan dipanggil.
                  example: simulateBundle
                  default: simulateBundle
                params:
                  type: array
                  description: Parameter untuk menyimulasikan bundle JITO.
                  default:
                    - encodedTransactions:
                        - >-
                          AUpZwml/cvAaQoRINPCXI/+Zp1bEG31TsbQ7YkESdUqtoGHrGSlZWLGh7qsa54Pon3RCx46Z6l+IlAgV8GNmbgcBAAED48eIT6fA5gQUuhts6qDwJ8rp6qemton7jK+tSNA6uiM3FVSCTsdmSMNKqTIUrKARpzIIQabdGWwDk74PLnrd/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASgbUMGWXPNjQAwed9kPYG5gXZsBq9jrSuVNeTuC4o0IBAgIAAQwCAAAA6AMAAAAAAAA=
                    - preExecutionAccountsConfigs:
                        - null
                      postExecutionAccountsConfigs:
                        - null
                      skipSigVerify: true
                      transactionEncoding: base64
                      replaceRecentBlockhash: true
                  items:
                    type: object
                    description: Objek konfigurasi simulasi bundle.
                    required:
                      - params[0]
                    properties:
                      params[0]:
                        type: object
                        description: >-
                          Objek konfigurasi pertama. Berisi transaksi yang
                          dikodekan untuk simulasi.
                        properties:
                          encodedTransactions:
                            type: array
                            description: >-
                              Array transaksi berseri yang dikodekan untuk
                              simulasi. Pengodean ditentukan oleh bidang
                              `transactionEncoding` (secara default base-64).
                            items:
                              type: string
                              description: Transaksi berseri yang dikodekan.
                              example: >-
                                5rqF8aHfs9JyEtKTvND6z8RgBtYxQwZLndS1kzHxV7D3kWm9VoYRzFtsP3qra5bM8rGhCv82LYo8fZpQoyQmtN1D9vxG2uEsMhV7jB4KdADRgxMXn5kRJzLZPt2LrPSmcUhfEmeQa7XrKeR9FHdKcXxZ1Hdq68oBr2AaPpTMuL85KDCt
                      params[1]:
                        type: object
                        description: Objek konfigurasi kedua. Opsional.
                        required:
                          - preExecutionAccountsConfigs
                          - postExecutionAccountsConfigs
                        properties:
                          preExecutionAccountsConfigs:
                            type: array
                            description: >
                              Menentukan akun yang akan diambil selama simulasi.


                              Ini mengambil status akun *sebelum* transaksi
                              dieksekusi.


                              Elemen array pada suatu indeks mengonfigurasi
                              transaksi yang berada pada indeks yang sama dalam
                              bundle.


                              Untuk setiap transaksi dalam bundle:
                                - Berikan `null` jika Anda tidak ingin status akun apa pun dikembalikan.
                                - Atau, berikan objek yang menjelaskan akun mana yang akan dikembalikan.

                              Panjang array harus sama dengan jumlah transaksi
                              dalam bundle.
                            items:
                              type:
                                - object
                                - 'null'
                              required:
                                - addresses
                              properties:
                                addresses:
                                  type: array
                                  description: >-
                                    Daftar alamat akun yang dikodekan dengan
                                    base-58 dan statusnya akan diambil.
                                  items:
                                    type: string
                                    description: Alamat akun yang dikodekan dengan base-58.
                                    example: >-
                                      TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
                                encoding:
                                  type: string
                                  description: >
                                    Pengodean yang akan digunakan untuk
                                    mengembalikan data akun yang diambil.
                                  default: base64
                                  enum:
                                    - binary
                                    - base58
                                    - base64
                                    - jsonParsed
                                    - base64+zstd
                                  example: base64
                          postExecutionAccountsConfigs:
                            type: array
                            description: >
                              Menentukan akun yang akan diambil selama simulasi.


                              Ini mengambil status akun *setelah* transaksi
                              dieksekusi.


                              Elemen array pada suatu indeks mengonfigurasi
                              transaksi yang berada pada indeks yang sama dalam
                              bundle.


                              Untuk setiap transaksi dalam bundle:
                                - Berikan `null` jika Anda tidak ingin status akun apa pun dikembalikan.
                                - Atau, berikan objek yang menjelaskan akun mana yang akan dikembalikan.

                              Panjang array harus sama dengan jumlah transaksi
                              dalam bundle.
                            items:
                              type:
                                - object
                                - 'null'
                              required:
                                - addresses
                              properties:
                                addresses:
                                  type: array
                                  description: >-
                                    Daftar alamat akun yang dikodekan dengan
                                    base-58 dan statusnya akan diambil.
                                  items:
                                    type: string
                                    description: Alamat akun yang dikodekan dengan base-58.
                                    example: >-
                                      TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
                                encoding:
                                  type: string
                                  description: >
                                    Pengodean yang akan digunakan untuk
                                    mengembalikan data akun yang diambil.
                                  default: base64
                                  enum:
                                    - binary
                                    - base58
                                    - base64
                                    - jsonParsed
                                    - base64+zstd
                                  example: base64
                          transactionEncoding:
                            type: string
                            description: >-
                              Pengodean transaksi yang digunakan dalam
                              `encodedTransactions`.
                            enum:
                              - base64
                              - base58
                            default: base64
                          simulationBank:
                            description: >
                              Menentukan bank yang menjadi acuan untuk
                              menjalankan simulasi. Dapat berupa tip, slot, atau
                              tingkat komitmen.
                            oneOf:
                              - type: string
                                description: >-
                                  Gunakan bank dari slot tertinggi RPC, yaitu
                                  bank yang sedang aktif.
                                example: tip
                              - type: object
                                description: >-
                                  Lakukan simulasi pada bank milik slot yang
                                  diberikan (mungkin tidak tersedia).
                                properties:
                                  slot:
                                    type: integer
                                    example: 373976835
                                required:
                                  - slot
                              - type: object
                                description: >-
                                  Tentukan tingkat komitmen yang menjadi acuan
                                  simulasi.
                                properties:
                                  commitment:
                                    type: object
                                    properties:
                                      commitment:
                                        type: string
                                        enum:
                                          - processed
                                          - confirmed
                                          - finalized
                                        description: >-
                                          Tingkat komitmen yang menjadi acuan
                                          simulasi.
                                        example: processed
                                    required:
                                      - commitment
                                required:
                                  - commitment
                          skipSigVerify:
                            type: boolean
                            description: >-
                              Apakah verifikasi tanda tangan dilewati sebelum
                              simulasi.
                            default: false
                          replaceRecentBlockhash:
                            type: boolean
                            description: >-
                              Apakah blockhash terbaru dari transaksi yang
                              disimulasikan diganti dengan blockhash terkini.
                            default: false
      responses:
        '200':
          description: Bundle berhasil disimulasikan.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    description: Versi protokol JSON-RPC.
                    enum:
                      - '2.0'
                    example: '2.0'
                  id:
                    type: string
                    description: Pengidentifikasi yang cocok dengan permintaan.
                    example: '1'
                  result:
                    type: object
                    description: Hasil bundle yang disimulasikan.
                    properties:
                      context:
                        type: object
                        description: Konteks respons simulasi.
                        properties:
                          apiVersion:
                            type: string
                            description: Versi API.
                            example: 2.30.10
                          slot:
                            type: integer
                            description: Slot tempat data diproses.
                            example: 373999891
                      value:
                        type: object
                        description: Detail hasil bundle yang disimulasikan.
                        properties:
                          summary:
                            description: >
                              Ringkasan hasil simulasi bundle.


                              Jika simulasi berhasil, nilai ini ditetapkan ke
                              `"succeeded"`.


                              Jika simulasi gagal, nilai ini ditetapkan ke objek
                              dengan satu bidang `failed` yang berisi detail
                              kegagalan tersebut.
                            oneOf:
                              - type: string
                                example: succeeded
                              - type: object
                                required:
                                  - failed
                                properties:
                                  failed:
                                    type: object
                                    required:
                                      - error
                                    properties:
                                      error:
                                        description: >-
                                          Nilai yang berisi detail kesalahan.
                                          Strukturnya dapat bervariasi.
                                      tx_signature:
                                        type: string
                                        description: >-
                                          Tanda tangan transaksi yang gagal dalam
                                          base58. Dapat berupa `null` jika tidak
                                          berlaku.
                          transactionResults:
                            type: array
                            description: >-
                              Array hasil untuk setiap transaksi dalam bundle.
                              Dapat kosong jika terjadi kesalahan.
                            items:
                              type: object
                              properties:
                                err:
                                  type:
                                    - object
                                    - 'null'
                                  description: >-
                                    Kesalahan jika transaksi gagal, `null` jika
                                    berhasil.
                                logs:
                                  type:
                                    - array
                                    - 'null'
                                  description: Array pesan log dari eksekusi transaksi.
                                  items:
                                    type: string
                                    example: >-
                                      Program
                                      4Nd1mFvxhG1DQMLUKhMzrZ7yG1UrjC9xXH6kvvZtcg9R
                                      invoke [1]
                                preExecutionAccounts:
                                  type:
                                    - array
                                    - 'null'
                                  description: Status akun sebelum eksekusi transaksi.
                                  items:
                                    type: object
                                    properties:
                                      data:
                                        type: string
                                        description: Data yang terkait dengan akun.
                                      executable:
                                        type: boolean
                                        description: Apakah akun berisi program.
                                        example: false
                                      lamports:
                                        type: integer
                                        description: >-
                                          Jumlah lamport yang ditetapkan ke akun
                                          ini.
                                        example: 1500000000
                                      owner:
                                        type: string
                                        description: Alamat program yang memiliki akun ini.
                                        example: >-
                                          4Nd1mFvxhG1DQMLUKhMzrZ7yG1UrjC9xXH6kvvZtcg9R
                                      rentEpoch:
                                        type: integer
                                        description: >-
                                          Epoch berikutnya saat akun ini harus
                                          membayar sewa.
                                        example: 324
                                      space:
                                        type: integer
                                        description: Ukuran data akun.
                                        example: 1024
                                postExecutionAccounts:
                                  type:
                                    - array
                                    - 'null'
                                  description: Status akun setelah eksekusi transaksi.
                                  items:
                                    type: object
                                    properties:
                                      data:
                                        type: string
                                        description: Data yang terkait dengan akun.
                                      executable:
                                        type: boolean
                                        description: Apakah akun berisi program.
                                        example: false
                                      lamports:
                                        type: integer
                                        description: >-
                                          Jumlah lamport yang ditetapkan ke akun
                                          ini.
                                        example: 1500000000
                                      owner:
                                        type: string
                                        description: Alamat program yang memiliki akun ini.
                                        example: >-
                                          4Nd1mFvxhG1DQMLUKhMzrZ7yG1UrjC9xXH6kvvZtcg9R
                                      rentEpoch:
                                        type: integer
                                        description: >-
                                          Epoch berikutnya saat akun ini harus
                                          membayar sewa.
                                        example: 324
                                      space:
                                        type: integer
                                        description: Ukuran data akun.
                                        example: 1024
                                unitsConsumed:
                                  type: integer
                                  description: >-
                                    Jumlah unit anggaran komputasi yang
                                    digunakan selama pemrosesan.
                                  example: 200000
                                returnData:
                                  type:
                                    - object
                                    - 'null'
                                  description: >-
                                    Data pengembalian terbaru yang dihasilkan
                                    oleh instruksi.
                                  properties:
                                    programId:
                                      type: string
                                      description: >-
                                        Program yang menghasilkan data
                                        pengembalian.
                                      example: >-
                                        Fx9Hp1gLzYj6Ryc4GaVoq2v6t4NxWg3GT1kP7quzZbVQ
                                    data:
                                      type: string
                                      description: >-
                                        Data pengembalian sebagai data biner
                                        yang dikodekan dengan base-64.
                                      example: >-
                                        AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASjD8=
              example:
                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
        '400':
          description: >-
            Permintaan Buruk - Parameter permintaan tidak valid atau format
            permintaan salah.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32602
                  message: Invalid params
                id: '1'
        '401':
          description: Tidak Diotorisasi - Kunci API tidak valid atau tidak ada.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32001
                  message: Unauthorized
                id: '1'
        '429':
          description: Terlalu Banyak Permintaan - Batas laju terlampaui.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32005
                  message: Too many requests
                id: '1'
        '500':
          description: Kesalahan Server Internal - Terjadi kesalahan pada server.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32603
                  message: Internal error
                id: '1'
        '503':
          description: Layanan Tidak Tersedia - Layanan tidak tersedia untuk sementara.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32002
                  message: Service unavailable
                id: '1'
        '504':
          description: Batas Waktu Gateway - Waktu permintaan habis.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32003
                  message: Gateway timeout
                id: '1'
      security:
        - ApiKeyQuery: []
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        jsonrpc:
          type: string
          description: Versi protokol JSON-RPC.
          enum:
            - '2.0'
          example: '2.0'
        error:
          type: object
          properties:
            code:
              type: integer
              description: Kode kesalahan.
              example: -32602
            message:
              type: string
              description: Pesan kesalahan.
            data:
              type: object
              description: Data tambahan tentang kesalahan.
        id:
          type: string
          description: Pengidentifikasi yang cocok dengan permintaan.
          example: '1'
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api-key
      description: >-
        Kunci API Helius Anda. Anda dapat memperolehnya secara gratis di
        [dasbor](https://dashboard.helius.dev/api-keys).

````