> ## 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

> Simulieren Sie ein JITO-Bundle, ohne es auf der Blockchain auszuführen.

## Anfrageparameter

<ParamField body="params[0]" type="object" required>
  Erstes Konfigurationsobjekt. Enthält die codierten Transaktionen für die Simulation.
</ParamField>

<ParamField body="params[0].encodedTransactions" type="array">
  Array von codierten, serialisierten Transaktionen zur Simulation. Die Codierung wird durch das `transactionEncoding`-Feld bestimmt (standardmäßig Base-64).
</ParamField>

<ParamField body="params[1]" type="object">
  Zweites Konfigurationsobjekt. Optional.
</ParamField>

<ParamField body="params[1].preExecutionAccountsConfigs" type="array" required>
  Gibt an, welche Konten während der Simulation erfasst werden sollen.

  Dies erfasst die Kontostände *bevor* die Transaktion ausgeführt wird.

  Ein Array-Element an einem Index konfiguriert die Transaktion, die sich an demselben Index im Bundle befindet.

  Für jede Transaktion im Bundle:

  * Geben Sie `null` weiter, wenn Sie keinen Kontostand zurückgeben möchten.
  * Oder geben Sie ein Objekt an, das beschreibt, welche Konten zurückgegeben werden sollen.

  Die Array-Länge muss der Anzahl der Transaktionen im Bundle entsprechen.
</ParamField>

<ParamField body="params[1].postExecutionAccountsConfigs" type="array" required>
  Gibt an, welche Konten während der Simulation erfasst werden sollen.

  Dies erfasst die Kontostände *nachdem* die Transaktion ausgeführt wird.

  Ein Array-Element an einem Index konfiguriert die Transaktion, die sich an demselben Index im Bundle befindet.

  Für jede Transaktion im Bundle:

  * Geben Sie `null` weiter, wenn Sie keinen Kontostand zurückgeben möchten.
  * Oder geben Sie ein Objekt an, das beschreibt, welche Konten zurückgegeben werden sollen.

  Die Array-Länge muss der Anzahl der Transaktionen im Bundle entsprechen.
</ParamField>

<ParamField body="params[1].transactionEncoding" type="string" default="base64">
  Die in `encodedTransactions` verwendete Transaktionscodierung.

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

<ParamField body="params[1].simulationBank" type="any">
  Gibt an, gegen welche Bank die Simulation durchgeführt werden soll. Kann der Hinweis, ein Slot oder ein Commit-Level sein.
</ParamField>

<ParamField body="params[1].skipSigVerify" type="boolean" default="false">
  Ob die Signaturprüfung vor der Simulation übersprungen werden soll.
</ParamField>

<ParamField body="params[1].replaceRecentBlockhash" type="boolean" default="false">
  Ob der aktuelle Blockhash der simulierten Transaktion durch den neuesten Blockhash ersetzt werden soll.
</ParamField>


## OpenAPI

````yaml de/openapi/rpc-http/simulateBundle.yaml POST /
openapi: 3.1.0
info:
  title: Solana RPC API
  version: 1.0.0
  description: >-
    JITO Bundle Simulation API zum Testen und Validieren der Bündelausführung
    vor der Übertragung an das Solana-Netzwerk über JITO-Validatoren.
  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-Endpunkt
  - url: https://devnet.helius-rpc.com
    description: Devnet RPC-Endpunkt
security: []
paths:
  /:
    post:
      tags:
        - RPC
      summary: simulateBundle
      description: >
        Simulieren Sie ein JITO-Bündel, ohne es in der Blockchain auszuführen.
        Diese Methode ermöglicht es Entwicklern,

        die Bündelausführung zu testen, das Verhalten von Transaktionen
        innerhalb von Bündeln zu überprüfen, den Verbrauch von Recheneinheiten
        zu schätzen,

        Fehler zu erkennen und Zustandsänderungen von Konten vor und nach der
        Bündelausführung anzuzeigen.

        Exklusiv verfügbar für JITO-Solana-Validatoren und wesentlich für die
        Entwicklung von MEV-Strategien

        und die Optimierung von Bündeln.
      operationId: simulateBundle
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                jsonrpc:
                  type: string
                  enum:
                    - '2.0'
                  description: Die JSON-RPC-Protokollversion.
                  example: '2.0'
                  default: '2.0'
                id:
                  type: string
                  description: Ein eindeutiger Identifikator für die Anfrage.
                  example: '1'
                  default: '1'
                method:
                  type: string
                  enum:
                    - simulateBundle
                  description: Der Name der aufzurufenden RPC-Methode.
                  example: simulateBundle
                  default: simulateBundle
                params:
                  type: array
                  description: Parameter für die Simulation eines JITO-Bündels.
                  default:
                    - encodedTransactions:
                        - >-
                          AUpZwml/cvAaQoRINPCXI/+Zp1bEG31TsbQ7YkESdUqtoGHrGSlZWLGh7qsa54Pon3RCx46Z6l+IlAgV8GNmbgcBAAED48eIT6fA5gQUuhts6qDwJ8rp6qemton7jK+tSNA6uiM3FVSCTsdmSMNKqTIUrKARpzIIQabdGWwDk74PLnrd/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASgbUMGWXPNjQAwed9kPYG5gXZsBq9jrSuVNeTuC4o0IBAgIAAQwCAAAA6AMAAAAAAAA=
                    - preExecutionAccountsConfigs:
                        - null
                      postExecutionAccountsConfigs:
                        - null
                      skipSigVerify: true
                      transactionEncoding: base64
                      replaceRecentBlockhash: true
                  items:
                    type: object
                    description: Objekt zur Bündelsimulationskonfiguration.
                    required:
                      - params[0]
                    properties:
                      params[0]:
                        type: object
                        description: >-
                          Erstes Konfigurationsobjekt. Enthält die kodierten
                          Transaktionen für die Simulation.
                        properties:
                          encodedTransactions:
                            type: array
                            description: >-
                              Array kodierter, serialisierter Transaktionen zur
                              Simulation. Die Kodierung wird durch das Feld
                              `transactionEncoding` bestimmt (standardmäßig
                              base-64).
                            items:
                              type: string
                              description: Kodierte, serialisierte Transaktion.
                              example: >-
                                5rqF8aHfs9JyEtKTvND6z8RgBtYxQwZLndS1kzHxV7D3kWm9VoYRzFtsP3qra5bM8rGhCv82LYo8fZpQoyQmtN1D9vxG2uEsMhV7jB4KdADRgxMXn5kRJzLZPt2LrPSmcUhfEmeQa7XrKeR9FHdKcXxZ1Hdq68oBr2AaPpTMuL85KDCt
                      params[1]:
                        type: object
                        description: Zweites Konfigurationsobjekt. Optional.
                        required:
                          - preExecutionAccountsConfigs
                          - postExecutionAccountsConfigs
                        properties:
                          preExecutionAccountsConfigs:
                            type: array
                            description: >
                              Gibt an, welche Konten während der Simulation
                              erfasst werden sollen.


                              Dies erfasst die Kontozustände *vor* der
                              Ausführung der Transaktion.


                              Ein Array-Element an einem Index konfiguriert die
                              Transaktion, die sich an demselben Index im Bündel
                              befindet.


                              Für jede Transaktion im Bündel:
                                - Geben Sie `null` an, wenn Sie keinen Kontostand zurückgeben möchten.
                                - Oder stellen Sie ein Objekt bereit, das beschreibt, welche Konten zurückgegeben werden sollen.

                              Die Array-Länge muss der Anzahl der Transaktionen
                              im Bündel entsprechen.
                            items:
                              type:
                                - object
                                - 'null'
                              required:
                                - addresses
                              properties:
                                addresses:
                                  type: array
                                  description: >-
                                    Liste der base-58 kodierten Konto-Adressen,
                                    deren Zustand erfasst wird.
                                  items:
                                    type: string
                                    description: Base-58 kodierte Konto-Adresse.
                                    example: >-
                                      TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
                                encoding:
                                  type: string
                                  description: >
                                    Die Kodierung, in der die erfassten
                                    Kontodaten zurückgegeben werden.
                                  default: base64
                                  enum:
                                    - binary
                                    - base58
                                    - base64
                                    - jsonParsed
                                    - base64+zstd
                                  example: base64
                          postExecutionAccountsConfigs:
                            type: array
                            description: >
                              Gibt an, welche Konten während der Simulation
                              erfasst werden sollen.


                              Dies erfasst die Kontozustände *nach* der
                              Ausführung der Transaktion.


                              Ein Array-Element an einem Index konfiguriert die
                              Transaktion, die sich an demselben Index im Bündel
                              befindet.


                              Für jede Transaktion im Bündel:
                                - Geben Sie `null` an, wenn Sie keinen Kontostand zurückgeben möchten.
                                - Oder stellen Sie ein Objekt bereit, das beschreibt, welche Konten zurückgegeben werden sollen.

                              Die Array-Länge muss der Anzahl der Transaktionen
                              im Bündel entsprechen.
                            items:
                              type:
                                - object
                                - 'null'
                              required:
                                - addresses
                              properties:
                                addresses:
                                  type: array
                                  description: >-
                                    Liste der base-58 kodierten Konto-Adressen,
                                    deren Zustand erfasst wird.
                                  items:
                                    type: string
                                    description: Base-58 kodierte Konto-Adresse.
                                    example: >-
                                      TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
                                encoding:
                                  type: string
                                  description: >
                                    Die Kodierung, in der die erfassten
                                    Kontodaten zurückgegeben werden.
                                  default: base64
                                  enum:
                                    - binary
                                    - base58
                                    - base64
                                    - jsonParsed
                                    - base64+zstd
                                  example: base64
                          transactionEncoding:
                            type: string
                            description: >-
                              Die Transaktionskodierung, die in
                              `encodedTransactions` verwendet wird.
                            enum:
                              - base64
                              - base58
                            default: base64
                          simulationBank:
                            description: >
                              Gibt an, gegen welche Bank die Simulation
                              durchgeführt werden soll. Kann die Spitze, ein
                              Slot oder ein Verpflichtungslevel sein.
                            oneOf:
                              - type: string
                                description: >-
                                  Verwenden Sie die Bank des höchsten Slots des
                                  RPCs, also die Arbeitsbank.
                                example: tip
                              - type: object
                                description: >-
                                  Simulation auf der Bank des angegebenen Slots
                                  (möglicherweise nicht verfügbar).
                                properties:
                                  slot:
                                    type: integer
                                    example: 373976835
                                required:
                                  - slot
                              - type: object
                                description: >-
                                  Definieren Sie ein Verpflichtungslevel, gegen
                                  das simuliert werden soll.
                                properties:
                                  commitment:
                                    type: object
                                    properties:
                                      commitment:
                                        type: string
                                        enum:
                                          - processed
                                          - confirmed
                                          - finalized
                                        description: >-
                                          Das Verpflichtungslevel, gegen das
                                          simuliert werden soll.
                                        example: processed
                                    required:
                                      - commitment
                                required:
                                  - commitment
                          skipSigVerify:
                            type: boolean
                            description: >-
                              Ob die Signaturüberprüfung vor der Simulation
                              übersprungen werden soll.
                            default: false
                          replaceRecentBlockhash:
                            type: boolean
                            description: >-
                              Ob der kürzlich blockierte Blockhash der
                              simulierten Transaktion durch den neuesten
                              Blockhash ersetzt werden soll.
                            default: false
      responses:
        '200':
          description: Das Bündel wurde erfolgreich simuliert.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    description: Die JSON-RPC-Protokollversion.
                    enum:
                      - '2.0'
                    example: '2.0'
                  id:
                    type: string
                    description: Identifikator, der zur Anfrage passt.
                    example: '1'
                  result:
                    type: object
                    description: Ergebnis des simulierten Bündels.
                    properties:
                      context:
                        type: object
                        description: Kontext der Simulationsantwort.
                        properties:
                          apiVersion:
                            type: string
                            description: Die API-Version.
                            example: 2.30.10
                          slot:
                            type: integer
                            description: Slot, in dem die Daten verarbeitet wurden.
                            example: 373999891
                      value:
                        type: object
                        description: >-
                          Details des Ergebnisses der simulierten
                          Bündelausführung.
                        properties:
                          summary:
                            description: >
                              Zusammenfassung des Ergebnisses der
                              Bündelsimulation.


                              Wenn die Simulation erfolgreich war, wird dies auf
                              `"succeeded"` gesetzt.


                              Wenn die Simulation fehlgeschlagen ist, wird dies
                              auf ein Objekt mit einem einzigen Feld `failed`
                              gesetzt, das Details zu diesem Fehler enthält.
                            oneOf:
                              - type: string
                                example: succeeded
                              - type: object
                                required:
                                  - failed
                                properties:
                                  failed:
                                    type: object
                                    required:
                                      - error
                                    properties:
                                      error:
                                        description: >-
                                          Wert, der Details zum Fehler enthält.
                                          Struktur kann variieren.
                                      tx_signature:
                                        type: string
                                        description: >-
                                          Signatur der fehlgeschlagenen
                                          Transaktion in base58. Kann `null` sein,
                                          wenn nicht zutreffend.
                          transactionResults:
                            type: array
                            description: >-
                              Array von Ergebnissen für jede Transaktion im
                              Bündel. Kann leer sein, wenn ein Fehler
                              aufgetreten ist.
                            items:
                              type: object
                              properties:
                                err:
                                  type:
                                    - object
                                    - 'null'
                                  description: >-
                                    Fehler, wenn die Transaktion fehlgeschlagen
                                    ist, `null` wenn erfolgreich.
                                logs:
                                  type:
                                    - array
                                    - 'null'
                                  description: >-
                                    Array von Protokollmeldungen von der
                                    Transaktionsausführung.
                                  items:
                                    type: string
                                    example: >-
                                      Program
                                      4Nd1mFvxhG1DQMLUKhMzrZ7yG1UrjC9xXH6kvvZtcg9R
                                      invoke [1]
                                preExecutionAccounts:
                                  type:
                                    - array
                                    - 'null'
                                  description: >-
                                    Kontozustände vor der Ausführung der
                                    Transaktion.
                                  items:
                                    type: object
                                    properties:
                                      data:
                                        type: string
                                        description: Daten, die mit dem Konto verknüpft sind.
                                      executable:
                                        type: boolean
                                        description: Ob das Konto ein Programm enthält.
                                        example: false
                                      lamports:
                                        type: integer
                                        description: >-
                                          Anzahl der Lamports, die diesem Konto
                                          zugewiesen sind.
                                        example: 1500000000
                                      owner:
                                        type: string
                                        description: >-
                                          Adresse des Programms, das dieses Konto
                                          besitzt.
                                        example: >-
                                          4Nd1mFvxhG1DQMLUKhMzrZ7yG1UrjC9xXH6kvvZtcg9R
                                      rentEpoch:
                                        type: integer
                                        description: >-
                                          Epoche, in der dieses Konto das nächste
                                          Mal Miete schuldet.
                                        example: 324
                                      space:
                                        type: integer
                                        description: Die Datengröße des Kontos.
                                        example: 1024
                                postExecutionAccounts:
                                  type:
                                    - array
                                    - 'null'
                                  description: >-
                                    Kontozustände nach der
                                    Transaktionsausführung.
                                  items:
                                    type: object
                                    properties:
                                      data:
                                        type: string
                                        description: Daten, die mit dem Konto verknüpft sind.
                                      executable:
                                        type: boolean
                                        description: Ob das Konto ein Programm enthält.
                                        example: false
                                      lamports:
                                        type: integer
                                        description: >-
                                          Anzahl der Lamports, die diesem Konto
                                          zugewiesen sind.
                                        example: 1500000000
                                      owner:
                                        type: string
                                        description: >-
                                          Adresse des Programms, das dieses Konto
                                          besitzt.
                                        example: >-
                                          4Nd1mFvxhG1DQMLUKhMzrZ7yG1UrjC9xXH6kvvZtcg9R
                                      rentEpoch:
                                        type: integer
                                        description: >-
                                          Epoche, in der dieses Konto das nächste
                                          Mal Miete schuldet.
                                        example: 324
                                      space:
                                        type: integer
                                        description: Die Datengröße des Kontos.
                                        example: 1024
                                unitsConsumed:
                                  type: integer
                                  description: >-
                                    Anzahl der während der Verarbeitung
                                    verbrauchten Recheneinheiten.
                                  example: 200000
                                returnData:
                                  type:
                                    - object
                                    - 'null'
                                  description: >-
                                    Die neueste Rückgabedaten, die von einer
                                    Anweisung generiert wurden.
                                  properties:
                                    programId:
                                      type: string
                                      description: >-
                                        Programm, das die Rückgabedaten
                                        generiert hat.
                                      example: >-
                                        Fx9Hp1gLzYj6Ryc4GaVoq2v6t4NxWg3GT1kP7quzZbVQ
                                    data:
                                      type: string
                                      description: >-
                                        Rückgabedaten als base-64 kodierte
                                        Binärdaten.
                                      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: >-
            Schlechte Anfrage - Ungültige Anforderungsparameter oder fehlerhafte
            Anfrage.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32602
                  message: Ungültige Parameter
                id: '1'
        '401':
          description: Nicht autorisiert - Ungültiger oder fehlender API-Schlüssel.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32001
                  message: Nicht autorisiert
                id: '1'
        '429':
          description: Zu viele Anfragen - Ratenlimit überschritten.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32005
                  message: Zu viele Anfragen
                id: '1'
        '500':
          description: >-
            Interner Serverfehler - Es ist ein Fehler auf dem Server
            aufgetreten.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32603
                  message: Interner Fehler
                id: '1'
        '503':
          description: >-
            Dienst nicht verfügbar - Der Dienst ist vorübergehend nicht
            verfügbar.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32002
                  message: Dienst nicht verfügbar
                id: '1'
        '504':
          description: Gateway-Timeout - Die Anfrage hat die Zeitüberschreitung erreicht.
          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: Die JSON-RPC-Protokollversion.
          enum:
            - '2.0'
          example: '2.0'
        error:
          type: object
          properties:
            code:
              type: integer
              description: Der Fehlercode.
              example: -32602
            message:
              type: string
              description: Die Fehlermeldung.
            data:
              type: object
              description: Zusätzliche Informationen zum Fehler.
        id:
          type: string
          description: Identifikator, der zur Anfrage passt.
          example: '1'
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api-key
      description: >-
        Ihr Helius API-Schlüssel. Sie können einen kostenlos im
        [Dashboard](https://dashboard.helius.dev/api-keys) erhalten.

````