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

> Симулируйте пакет JITO без его выполнения в блокчейне.

## Параметры запроса

<ParamField body="params[0]" type="object" required>
  Первый объект конфигурации. Содержит закодированные транзакции для симуляции.
</ParamField>

<ParamField body="params[0].encodedTransactions" type="array">
  Массив закодированных сериализованных транзакций для симуляции. Кодировка определяется полем `transactionEncoding` (по умолчанию — base-64).
</ParamField>

<ParamField body="params[1]" type="object">
  Второй объект конфигурации. Необязательный.
</ParamField>

<ParamField body="params[1].preExecutionAccountsConfigs" type="array" required>
  Определяет, состояния каких аккаунтов нужно сохранить во время симуляции.

  Состояния аккаунтов сохраняются *до* выполнения транзакции.

  Элемент массива с определенным индексом настраивает транзакцию с тем же индексом в пакете.

  Для каждой транзакции в пакете:

  * Передайте `null`, если не нужно возвращать состояние какого-либо аккаунта.
  * Или укажите объект с описанием аккаунтов, состояния которых нужно вернуть.

  Длина массива должна быть равна количеству транзакций в пакете.
</ParamField>

<ParamField body="params[1].postExecutionAccountsConfigs" type="array" required>
  Определяет, состояния каких аккаунтов нужно сохранить во время симуляции.

  Состояния аккаунтов сохраняются *после* выполнения транзакции.

  Элемент массива с определенным индексом настраивает транзакцию с тем же индексом в пакете.

  Для каждой транзакции в пакете:

  * Передайте `null`, если не нужно возвращать состояние какого-либо аккаунта.
  * Или укажите объект с описанием аккаунтов, состояния которых нужно вернуть.

  Длина массива должна быть равна количеству транзакций в пакете.
</ParamField>

<ParamField body="params[1].transactionEncoding" type="string" default="base64">
  Кодировка транзакций, используемая в `encodedTransactions`.

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

<ParamField body="params[1].simulationBank" type="any">
  Определяет банк, относительно которого выполняется симуляция. Можно указать вершину цепочки, слот или уровень подтверждения.
</ParamField>

<ParamField body="params[1].skipSigVerify" type="boolean" default="false">
  Следует ли пропустить проверку подписи перед симуляцией.
</ParamField>

<ParamField body="params[1].replaceRecentBlockhash" type="boolean" default="false">
  Следует ли заменить недавний хеш блока симулируемой транзакции на последний хеш блока.
</ParamField>


## OpenAPI

````yaml ru/openapi/rpc-http/simulateBundle.yaml POST /
openapi: 3.1.0
info:
  title: Solana RPC API
  version: 1.0.0
  description: >-
    API симуляции пакетов JITO для тестирования и проверки выполнения пакетов
    перед их отправкой в сеть Solana через валидаторы JITO.
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://mainnet.helius-rpc.com
    description: Конечная точка RPC основной сети
  - url: https://devnet.helius-rpc.com
    description: Конечная точка RPC тестовой сети Devnet
security: []
paths:
  /:
    post:
      tags:
        - RPC
      summary: simulateBundle
      description: >
        Симулируйте пакет JITO без его выполнения в блокчейне. Этот метод
        позволяет разработчикам

        тестировать выполнение пакетов, проверять поведение транзакций в
        пакетах, оценивать потребление

        вычислительных единиц, выявлять ошибки и предварительно просматривать
        изменения состояния аккаунтов до и после выполнения пакета.

        Доступен исключительно для валидаторов JITO-Solana и необходим для
        разработки стратегий MEV

        и оптимизации пакетов.
      operationId: simulateBundle
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                jsonrpc:
                  type: string
                  enum:
                    - '2.0'
                  description: Версия протокола JSON-RPC.
                  example: '2.0'
                  default: '2.0'
                id:
                  type: string
                  description: Уникальный идентификатор запроса.
                  example: '1'
                  default: '1'
                method:
                  type: string
                  enum:
                    - simulateBundle
                  description: Имя вызываемого метода RPC.
                  example: simulateBundle
                  default: simulateBundle
                params:
                  type: array
                  description: Параметры симуляции пакета JITO.
                  default:
                    - encodedTransactions:
                        - >-
                          AUpZwml/cvAaQoRINPCXI/+Zp1bEG31TsbQ7YkESdUqtoGHrGSlZWLGh7qsa54Pon3RCx46Z6l+IlAgV8GNmbgcBAAED48eIT6fA5gQUuhts6qDwJ8rp6qemton7jK+tSNA6uiM3FVSCTsdmSMNKqTIUrKARpzIIQabdGWwDk74PLnrd/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASgbUMGWXPNjQAwed9kPYG5gXZsBq9jrSuVNeTuC4o0IBAgIAAQwCAAAA6AMAAAAAAAA=
                    - preExecutionAccountsConfigs:
                        - null
                      postExecutionAccountsConfigs:
                        - null
                      skipSigVerify: true
                      transactionEncoding: base64
                      replaceRecentBlockhash: true
                  items:
                    type: object
                    description: Объект конфигурации симуляции пакета.
                    required:
                      - params[0]
                    properties:
                      params[0]:
                        type: object
                        description: >-
                          Первый объект конфигурации. Содержит закодированные
                          транзакции для симуляции.
                        properties:
                          encodedTransactions:
                            type: array
                            description: >-
                              Массив закодированных сериализованных транзакций
                              для симуляции. Кодировка определяется полем
                              `transactionEncoding` (по умолчанию base-64).
                            items:
                              type: string
                              description: Закодированная сериализованная транзакция.
                              example: >-
                                5rqF8aHfs9JyEtKTvND6z8RgBtYxQwZLndS1kzHxV7D3kWm9VoYRzFtsP3qra5bM8rGhCv82LYo8fZpQoyQmtN1D9vxG2uEsMhV7jB4KdADRgxMXn5kRJzLZPt2LrPSmcUhfEmeQa7XrKeR9FHdKcXxZ1Hdq68oBr2AaPpTMuL85KDCt
                      params[1]:
                        type: object
                        description: Второй объект конфигурации. Необязательный.
                        required:
                          - preExecutionAccountsConfigs
                          - postExecutionAccountsConfigs
                        properties:
                          preExecutionAccountsConfigs:
                            type: array
                            description: >
                              Указывает, состояния каких аккаунтов нужно
                              сохранить во время симуляции.


                              Сохраняет состояния аккаунтов *до* выполнения
                              транзакции.


                              Элемент массива с определенным индексом
                              настраивает транзакцию с тем же индексом в пакете.


                              Для каждой транзакции в пакете:
                                - Передайте `null`, если возвращать состояние аккаунтов не нужно.
                                - Или передайте объект, описывающий, какие аккаунты нужно вернуть.

                              Длина массива должна быть равна количеству
                              транзакций в пакете.
                            items:
                              type:
                                - object
                                - 'null'
                              required:
                                - addresses
                              properties:
                                addresses:
                                  type: array
                                  description: >-
                                    Список адресов аккаунтов в кодировке
                                    base-58, состояния которых будут сохранены.
                                  items:
                                    type: string
                                    description: Адрес аккаунта в кодировке base-58.
                                    example: >-
                                      TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
                                encoding:
                                  type: string
                                  description: >
                                    Кодировка, в которой будут возвращены
                                    сохраненные данные аккаунтов.
                                  default: base64
                                  enum:
                                    - binary
                                    - base58
                                    - base64
                                    - jsonParsed
                                    - base64+zstd
                                  example: base64
                          postExecutionAccountsConfigs:
                            type: array
                            description: >
                              Указывает, состояния каких аккаунтов нужно
                              сохранить во время симуляции.


                              Сохраняет состояния аккаунтов *после* выполнения
                              транзакции.


                              Элемент массива с определенным индексом
                              настраивает транзакцию с тем же индексом в пакете.


                              Для каждой транзакции в пакете:
                                - Передайте `null`, если возвращать состояние аккаунтов не нужно.
                                - Или передайте объект, описывающий, какие аккаунты нужно вернуть.

                              Длина массива должна быть равна количеству
                              транзакций в пакете.
                            items:
                              type:
                                - object
                                - 'null'
                              required:
                                - addresses
                              properties:
                                addresses:
                                  type: array
                                  description: >-
                                    Список адресов аккаунтов в кодировке
                                    base-58, состояния которых будут сохранены.
                                  items:
                                    type: string
                                    description: Адрес аккаунта в кодировке base-58.
                                    example: >-
                                      TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
                                encoding:
                                  type: string
                                  description: >
                                    Кодировка, в которой будут возвращены
                                    сохраненные данные аккаунтов.
                                  default: base64
                                  enum:
                                    - binary
                                    - base58
                                    - base64
                                    - jsonParsed
                                    - base64+zstd
                                  example: base64
                          transactionEncoding:
                            type: string
                            description: >-
                              Кодировка транзакций, используемая в
                              `encodedTransactions`.
                            enum:
                              - base64
                              - base58
                            default: base64
                          simulationBank:
                            description: >
                              Указывает банк, относительно которого выполняется
                              симуляция. Это может быть вершина цепочки, слот
                              или уровень подтверждения.
                            oneOf:
                              - type: string
                                description: >-
                                  Используйте банк самого высокого слота RPC, то
                                  есть рабочий банк.
                                example: tip
                              - type: object
                                description: >-
                                  Выполните симуляцию в банке указанного слота
                                  (может быть недоступен).
                                properties:
                                  slot:
                                    type: integer
                                    example: 373976835
                                required:
                                  - slot
                              - type: object
                                description: >-
                                  Задайте уровень подтверждения, относительно
                                  которого выполняется симуляция.
                                properties:
                                  commitment:
                                    type: object
                                    properties:
                                      commitment:
                                        type: string
                                        enum:
                                          - processed
                                          - confirmed
                                          - finalized
                                        description: >-
                                          Уровень подтверждения, относительно
                                          которого выполняется симуляция.
                                        example: processed
                                    required:
                                      - commitment
                                required:
                                  - commitment
                          skipSigVerify:
                            type: boolean
                            description: >-
                              Нужно ли пропустить проверку подписи перед
                              симуляцией.
                            default: false
                          replaceRecentBlockhash:
                            type: boolean
                            description: >-
                              Нужно ли заменить недавний хеш блока симулируемой
                              транзакции на последний хеш блока.
                            default: false
      responses:
        '200':
          description: Пакет успешно симулирован.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    description: Версия протокола JSON-RPC.
                    enum:
                      - '2.0'
                    example: '2.0'
                  id:
                    type: string
                    description: Идентификатор, соответствующий запросу.
                    example: '1'
                  result:
                    type: object
                    description: Результат симуляции пакета.
                    properties:
                      context:
                        type: object
                        description: Контекст ответа симуляции.
                        properties:
                          apiVersion:
                            type: string
                            description: Версия API.
                            example: 2.30.10
                          slot:
                            type: integer
                            description: Слот, в котором были обработаны данные.
                            example: 373999891
                      value:
                        type: object
                        description: Подробные сведения о результате симуляции пакета.
                        properties:
                          summary:
                            description: >
                              Сводка результата симуляции пакета.


                              Если симуляция выполнена успешно, этому полю
                              присваивается значение `"succeeded"`.


                              Если симуляция завершилась с ошибкой, этому полю
                              присваивается объект с единственным полем
                              `failed`, содержащим сведения об ошибке.
                            oneOf:
                              - type: string
                                example: succeeded
                              - type: object
                                required:
                                  - failed
                                properties:
                                  failed:
                                    type: object
                                    required:
                                      - error
                                    properties:
                                      error:
                                        description: >-
                                          Значение со сведениями об ошибке.
                                          Структура может различаться.
                                      tx_signature:
                                        type: string
                                        description: >-
                                          Подпись завершившейся с ошибкой
                                          транзакции в формате base58. Может иметь
                                          значение `null`, если неприменимо.
                          transactionResults:
                            type: array
                            description: >-
                              Массив результатов для каждой транзакции в пакете.
                              Может быть пустым при возникновении ошибки.
                            items:
                              type: object
                              properties:
                                err:
                                  type:
                                    - object
                                    - 'null'
                                  description: >-
                                    Ошибка, если транзакция завершилась
                                    неудачно; `null`, если успешно.
                                logs:
                                  type:
                                    - array
                                    - 'null'
                                  description: >-
                                    Массив сообщений журнала выполнения
                                    транзакции.
                                  items:
                                    type: string
                                    example: >-
                                      Program
                                      4Nd1mFvxhG1DQMLUKhMzrZ7yG1UrjC9xXH6kvvZtcg9R
                                      invoke [1]
                                preExecutionAccounts:
                                  type:
                                    - array
                                    - 'null'
                                  description: >-
                                    Состояния аккаунтов до выполнения
                                    транзакции.
                                  items:
                                    type: object
                                    properties:
                                      data:
                                        type: string
                                        description: Данные, связанные с аккаунтом.
                                      executable:
                                        type: boolean
                                        description: Содержит ли аккаунт программу.
                                        example: false
                                      lamports:
                                        type: integer
                                        description: >-
                                          Количество лампортов, назначенных этому
                                          аккаунту.
                                        example: 1500000000
                                      owner:
                                        type: string
                                        description: >-
                                          Адрес программы, которой принадлежит
                                          этот аккаунт.
                                        example: >-
                                          4Nd1mFvxhG1DQMLUKhMzrZ7yG1UrjC9xXH6kvvZtcg9R
                                      rentEpoch:
                                        type: integer
                                        description: >-
                                          Эпоха, в которой с этого аккаунта в
                                          следующий раз будет взиматься арендная
                                          плата.
                                        example: 324
                                      space:
                                        type: integer
                                        description: Размер данных аккаунта.
                                        example: 1024
                                postExecutionAccounts:
                                  type:
                                    - array
                                    - 'null'
                                  description: >-
                                    Состояния аккаунтов после выполнения
                                    транзакции.
                                  items:
                                    type: object
                                    properties:
                                      data:
                                        type: string
                                        description: Данные, связанные с аккаунтом.
                                      executable:
                                        type: boolean
                                        description: Содержит ли аккаунт программу.
                                        example: false
                                      lamports:
                                        type: integer
                                        description: >-
                                          Количество лампортов, назначенных этому
                                          аккаунту.
                                        example: 1500000000
                                      owner:
                                        type: string
                                        description: >-
                                          Адрес программы, которой принадлежит
                                          этот аккаунт.
                                        example: >-
                                          4Nd1mFvxhG1DQMLUKhMzrZ7yG1UrjC9xXH6kvvZtcg9R
                                      rentEpoch:
                                        type: integer
                                        description: >-
                                          Эпоха, в которой с этого аккаунта в
                                          следующий раз будет взиматься арендная
                                          плата.
                                        example: 324
                                      space:
                                        type: integer
                                        description: Размер данных аккаунта.
                                        example: 1024
                                unitsConsumed:
                                  type: integer
                                  description: >-
                                    Количество единиц вычислительного бюджета,
                                    израсходованных во время обработки.
                                  example: 200000
                                returnData:
                                  type:
                                    - object
                                    - 'null'
                                  description: >-
                                    Последние возвращаемые данные,
                                    сформированные инструкцией.
                                  properties:
                                    programId:
                                      type: string
                                      description: >-
                                        Программа, сформировавшая возвращаемые
                                        данные.
                                      example: >-
                                        Fx9Hp1gLzYj6Ryc4GaVoq2v6t4NxWg3GT1kP7quzZbVQ
                                    data:
                                      type: string
                                      description: >-
                                        Возвращаемые данные в виде двоичных
                                        данных, закодированных в 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: >-
            Некорректный запрос — недопустимые параметры или неверный формат
            запроса.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32602
                  message: Invalid params
                id: '1'
        '401':
          description: Не авторизовано — недопустимый или отсутствующий ключ API.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32001
                  message: Unauthorized
                id: '1'
        '429':
          description: Слишком много запросов — превышено ограничение частоты запросов.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32005
                  message: Too many requests
                id: '1'
        '500':
          description: Внутренняя ошибка сервера — на сервере произошла ошибка.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32603
                  message: Internal error
                id: '1'
        '503':
          description: Сервис недоступен — сервис временно недоступен.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32002
                  message: Service unavailable
                id: '1'
        '504':
          description: Время ожидания шлюза истекло — превышено время ожидания запроса.
          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: Версия протокола JSON-RPC.
          enum:
            - '2.0'
          example: '2.0'
        error:
          type: object
          properties:
            code:
              type: integer
              description: Код ошибки.
              example: -32602
            message:
              type: string
              description: Сообщение об ошибке.
            data:
              type: object
              description: Дополнительные сведения об ошибке.
        id:
          type: string
          description: Идентификатор, соответствующий запросу.
          example: '1'
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api-key
      description: >-
        Ваш ключ API Helius. Его можно бесплатно получить в [панели
        управления](https://dashboard.helius.dev/api-keys).

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.