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

> Simule um pacote JITO sem executá-lo na blockchain.

## Parâmetros da Solicitação

<ParamField body="params[0]" type="object" required>
  Primeiro objeto de configuração. Contém as transações codificadas para a simulação.
</ParamField>

<ParamField body="params[0].encodedTransactions" type="array">
  Array de transações codificadas e serializadas para simulação. A codificação é determinada pelo campo `transactionEncoding` (base-64 por padrão).
</ParamField>

<ParamField body="params[1]" type="object">
  Segundo objeto de configuração. Opcional.
</ParamField>

<ParamField body="params[1].preExecutionAccountsConfigs" type="array" required>
  Especifica quais contas capturar durante a simulação.

  Isso captura os estados das contas *antes* da execução da transação.

  Um elemento de array em um índice configura a transação que está no mesmo índice no pacote.

  Para cada transação no pacote:

  * Passe `null` se você não quiser que qualquer estado de conta seja retornado.
  * Ou, forneça um objeto descrevendo quais contas retornar.

  O comprimento do array deve ser igual ao número de transações no pacote.
</ParamField>

<ParamField body="params[1].postExecutionAccountsConfigs" type="array" required>
  Especifica quais contas capturar durante a simulação.

  Isso captura os estados das contas *após* a execução da transação.

  Um elemento de array em um índice configura a transação que está no mesmo índice no pacote.

  Para cada transação no pacote:

  * Passe `null` se você não quiser que qualquer estado de conta seja retornado.
  * Ou, forneça um objeto descrevendo quais contas retornar.

  O comprimento do array deve ser igual ao número de transações no pacote.
</ParamField>

<ParamField body="params[1].transactionEncoding" type="string" default="base64">
  A codificação da transação utilizada em `encodedTransactions`.

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

<ParamField body="params[1].simulationBank" type="any">
  Especifica qual banco usar para executar a simulação. Pode ser o mais recente, um slot ou um nível de compromisso.
</ParamField>

<ParamField body="params[1].skipSigVerify" type="boolean" default="false">
  Se deve pular a verificação de assinatura antes da simulação.
</ParamField>

<ParamField body="params[1].replaceRecentBlockhash" type="boolean" default="false">
  Se deve substituir o blockhash recente da transação simulada pelo blockhash mais recente.
</ParamField>


## OpenAPI

````yaml pt-BR/openapi/rpc-http/simulateBundle.yaml POST /
openapi: 3.1.0
info:
  title: Solana RPC API
  version: 1.0.0
  description: >-
    JITO Bundle Simulation API para testar e validar a execução de pacotes antes
    do envio para a rede Solana via validadores JITO.
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://mainnet.helius-rpc.com
    description: Ponto de extremidade Mainnet RPC
  - url: https://devnet.helius-rpc.com
    description: Ponto de extremidade Devnet RPC
security: []
paths:
  /:
    post:
      tags:
        - RPC
      summary: simulateBundle
      description: >-
        Simule um pacote JITO sem executá-lo na blockchain. Este método permite
        que os desenvolvedores testem a execução do pacote, verifiquem o
        comportamento das transações dentro dos pacotes, estimem o consumo de
        unidades de processamento, detectem erros e visualizem as mudanças de
        estado da conta antes e depois da execução do pacote. Disponível
        exclusivamente para validadores JITO-Solana e essencial para o
        desenvolvimento de estratégias MEV e otimização de pacotes.
      operationId: simulateBundle
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                jsonrpc:
                  type: string
                  enum:
                    - '2.0'
                  description: A versão do protocolo JSON-RPC.
                  example: '2.0'
                  default: '2.0'
                id:
                  type: string
                  description: Um identificador exclusivo para a solicitação.
                  example: '1'
                  default: '1'
                method:
                  type: string
                  enum:
                    - simulateBundle
                  description: O nome do método RPC a ser invocado.
                  example: simulateBundle
                  default: simulateBundle
                params:
                  type: array
                  description: Parâmetros para simular um pacote JITO.
                  default:
                    - encodedTransactions:
                        - >-
                          AUpZwml/cvAaQoRINPCXI/+Zp1bEG31TsbQ7YkESdUqtoGHrGSlZWLGh7qsa54Pon3RCx46Z6l+IlAgV8GNmbgcBAAED48eIT6fA5gQUuhts6qDwJ8rp6qemton7jK+tSNA6uiM3FVSCTsdmSMNKqTIUrKARpzIIQabdGWwDk74PLnrd/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASgbUMGWXPNjQAwed9kPYG5gXZsBq9jrSuVNeTuC4o0IBAgIAAQwCAAAA6AMAAAAAAAA=
                    - preExecutionAccountsConfigs:
                        - null
                      postExecutionAccountsConfigs:
                        - null
                      skipSigVerify: true
                      transactionEncoding: base64
                      replaceRecentBlockhash: true
                  items:
                    type: object
                    description: Objeto de configuração de simulação de pacote.
                    required:
                      - params[0]
                    properties:
                      params[0]:
                        type: object
                        description: >-
                          Primeiro objeto de configuração. Contém as transações
                          codificadas para a simulação.
                        properties:
                          encodedTransactions:
                            type: array
                            description: >-
                              Array de transações serializadas e codificadas
                              para simulação. A codificação é determinada pelo
                              campo `transactionEncoding` (base-64 por padrão).
                            items:
                              type: string
                              description: Transação serializada codificada.
                              example: >-
                                5rqF8aHfs9JyEtKTvND6z8RgBtYxQwZLndS1kzHxV7D3kWm9VoYRzFtsP3qra5bM8rGhCv82LYo8fZpQoyQmtN1D9vxG2uEsMhV7jB4KdADRgxMXn5kRJzLZPt2LrPSmcUhfEmeQa7XrKeR9FHdKcXxZ1Hdq68oBr2AaPpTMuL85KDCt
                      params[1]:
                        type: object
                        description: Segundo objeto de configuração. Opcional.
                        required:
                          - preExecutionAccountsConfigs
                          - postExecutionAccountsConfigs
                        properties:
                          preExecutionAccountsConfigs:
                            type: array
                            description: >
                              Especifica quais contas capturar durante a
                              simulação.


                              Isso captura os estados das contas *antes* que a
                              transação seja executada.


                              Um elemento do array em um índice configura a
                              transação que está no mesmo índice no pacote.


                              Para cada transação no pacote:
                                - Passe `null` se você não desejar que nenhum estado da conta seja retornado.
                                - Ou, forneça um objeto descrevendo quais contas devem ser retornadas.

                              O comprimento do array deve ser igual ao número de
                              transações no pacote.
                            items:
                              type:
                                - object
                                - 'null'
                              required:
                                - addresses
                              properties:
                                addresses:
                                  type: array
                                  description: >-
                                    Lista de endereços de contas codificados em
                                    base-58 cujos estados serão capturados.
                                  items:
                                    type: string
                                    description: Endereço da conta codificado em base-58.
                                    example: >-
                                      TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
                                encoding:
                                  type: string
                                  description: >
                                    A codificação na qual os dados da conta
                                    capturados serão retornados.
                                  default: base64
                                  enum:
                                    - binary
                                    - base58
                                    - base64
                                    - jsonParsed
                                    - base64+zstd
                                  example: base64
                          postExecutionAccountsConfigs:
                            type: array
                            description: >
                              Especifica quais contas capturar durante a
                              simulação.


                              Isso captura os estados das contas *depois* que a
                              transação é executada.


                              Um elemento do array em um índice configura a
                              transação que está no mesmo índice no pacote.


                              Para cada transação no pacote:
                                - Passe `null` se você não desejar que nenhum estado da conta seja retornado.
                                - Ou, forneça um objeto descrevendo quais contas devem ser retornadas.

                              O comprimento do array deve ser igual ao número de
                              transações no pacote.
                            items:
                              type:
                                - object
                                - 'null'
                              required:
                                - addresses
                              properties:
                                addresses:
                                  type: array
                                  description: >-
                                    Lista de endereços de contas codificados em
                                    base-58 cujos estados serão capturados.
                                  items:
                                    type: string
                                    description: Endereço da conta codificado em base-58.
                                    example: >-
                                      TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
                                encoding:
                                  type: string
                                  description: >
                                    A codificação na qual os dados da conta
                                    capturados serão retornados.
                                  default: base64
                                  enum:
                                    - binary
                                    - base58
                                    - base64
                                    - jsonParsed
                                    - base64+zstd
                                  example: base64
                          transactionEncoding:
                            type: string
                            description: >-
                              A codificação da transação utilizada em
                              `encodedTransactions`.
                            enum:
                              - base64
                              - base58
                            default: base64
                          simulationBank:
                            description: >
                              Especificado qual banco executar a simulação. Pode
                              ser o tip, um slot ou um nível de compromisso.
                            oneOf:
                              - type: string
                                description: >-
                                  Use o banco do slot mais alto do RPC, ou seja,
                                  o banco de trabalho.
                                example: tip
                              - type: object
                                description: >-
                                  Simule no banco do slot fornecido (pode não
                                  estar disponível).
                                properties:
                                  slot:
                                    type: integer
                                    example: 373976835
                                required:
                                  - slot
                              - type: object
                                description: Defina um nível de compromisso para simular.
                                properties:
                                  commitment:
                                    type: object
                                    properties:
                                      commitment:
                                        type: string
                                        enum:
                                          - processed
                                          - confirmed
                                          - finalized
                                        description: Nível de compromisso para simular.
                                        example: processed
                                    required:
                                      - commitment
                                required:
                                  - commitment
                          skipSigVerify:
                            type: boolean
                            description: >-
                              Se deseja pular a verificação de assinatura antes
                              da simulação.
                            default: false
                          replaceRecentBlockhash:
                            type: boolean
                            description: >-
                              Se deve substituir o hash do bloco recente da
                              transação simulada pelo hash do bloco mais
                              recente.
                            default: false
      responses:
        '200':
          description: Pacote simulado com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    description: A versão do protocolo JSON-RPC.
                    enum:
                      - '2.0'
                    example: '2.0'
                  id:
                    type: string
                    description: Identificador correspondente à solicitação.
                    example: '1'
                  result:
                    type: object
                    description: Resultado do pacote simulado.
                    properties:
                      context:
                        type: object
                        description: Contexto da resposta da simulação.
                        properties:
                          apiVersion:
                            type: string
                            description: A versão da API.
                            example: 2.30.10
                          slot:
                            type: integer
                            description: Slot em que os dados foram processados.
                            example: 373999891
                      value:
                        type: object
                        description: Detalhes do resultado simulado do pacote.
                        properties:
                          summary:
                            description: >
                              Resumo do resultado da simulação do pacote.


                              Se a simulação foi bem-sucedida, este campo é
                              definido como `"succeeded"`.


                              Se a simulação falhou, este campo é definido como
                              um objeto com um único campo `failed` que contém
                              detalhes sobre a falha.
                            oneOf:
                              - type: string
                                example: succeeded
                              - type: object
                                required:
                                  - failed
                                properties:
                                  failed:
                                    type: object
                                    required:
                                      - error
                                    properties:
                                      error:
                                        description: >-
                                          Valor contendo detalhes sobre o erro. A
                                          estrutura pode variar.
                                      tx_signature:
                                        type: string
                                        description: >-
                                          Assinatura da transação falhada em
                                          base58. Pode ser `null` se não
                                          aplicável.
                          transactionResults:
                            type: array
                            description: >-
                              Array de resultados para cada transação no pacote.
                              Pode estar vazio se houver um erro.
                            items:
                              type: object
                              properties:
                                err:
                                  type:
                                    - object
                                    - 'null'
                                  description: >-
                                    Erro se a transação falhou, `null` se
                                    bem-sucedida.
                                logs:
                                  type:
                                    - array
                                    - 'null'
                                  description: >-
                                    Array de mensagens de log da execução da
                                    transação.
                                  items:
                                    type: string
                                    example: >-
                                      Program
                                      4Nd1mFvxhG1DQMLUKhMzrZ7yG1UrjC9xXH6kvvZtcg9R
                                      invoke [1]
                                preExecutionAccounts:
                                  type:
                                    - array
                                    - 'null'
                                  description: >-
                                    Estados das contas antes da execução da
                                    transação.
                                  items:
                                    type: object
                                    properties:
                                      data:
                                        type: string
                                        description: Dados associados à conta.
                                      executable:
                                        type: boolean
                                        description: Se a conta contém um programa.
                                        example: false
                                      lamports:
                                        type: integer
                                        description: >-
                                          Número de lamports atribuídos a esta
                                          conta.
                                        example: 1500000000
                                      owner:
                                        type: string
                                        description: >-
                                          Endereço do programa que possui esta
                                          conta.
                                        example: >-
                                          4Nd1mFvxhG1DQMLUKhMzrZ7yG1UrjC9xXH6kvvZtcg9R
                                      rentEpoch:
                                        type: integer
                                        description: >-
                                          Época em que esta conta deverá pagar
                                          aluguel.
                                        example: 324
                                      space:
                                        type: integer
                                        description: O tamanho dos dados da conta.
                                        example: 1024
                                postExecutionAccounts:
                                  type:
                                    - array
                                    - 'null'
                                  description: >-
                                    Estados das contas após a execução da
                                    transação.
                                  items:
                                    type: object
                                    properties:
                                      data:
                                        type: string
                                        description: Dados associados à conta.
                                      executable:
                                        type: boolean
                                        description: Se a conta contém um programa.
                                        example: false
                                      lamports:
                                        type: integer
                                        description: >-
                                          Número de lamports atribuídos a esta
                                          conta.
                                        example: 1500000000
                                      owner:
                                        type: string
                                        description: >-
                                          Endereço do programa que possui esta
                                          conta.
                                        example: >-
                                          4Nd1mFvxhG1DQMLUKhMzrZ7yG1UrjC9xXH6kvvZtcg9R
                                      rentEpoch:
                                        type: integer
                                        description: >-
                                          Época em que esta conta deverá pagar
                                          aluguel.
                                        example: 324
                                      space:
                                        type: integer
                                        description: O tamanho dos dados da conta.
                                        example: 1024
                                unitsConsumed:
                                  type: integer
                                  description: >-
                                    Número de unidades de orçamento de
                                    computação consumidas durante o
                                    processamento.
                                  example: 200000
                                returnData:
                                  type:
                                    - object
                                    - 'null'
                                  description: >-
                                    Dados de retorno mais recentes gerados por
                                    uma instrução.
                                  properties:
                                    programId:
                                      type: string
                                      description: Programa que gerou os dados de retorno.
                                      example: >-
                                        Fx9Hp1gLzYj6Ryc4GaVoq2v6t4NxWg3GT1kP7quzZbVQ
                                    data:
                                      type: string
                                      description: >-
                                        Dados de retorno como dados binários
                                        codificados em 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: >-
            Solicitação inválida - Parâmetros da solicitação inválidos ou
            malformados.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32602
                  message: Parâmetros inválidos
                id: '1'
        '401':
          description: Não autorizado - Chave de API inválida ou ausente.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32001
                  message: Não autorizado
                id: '1'
        '429':
          description: Muitas solicitações - Limite de taxa excedido.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32005
                  message: Muitas solicitações
                id: '1'
        '500':
          description: Erro interno do servidor - Ocorreu um erro no servidor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32603
                  message: Erro interno
                id: '1'
        '503':
          description: Serviço indisponível - O serviço está temporariamente indisponível.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32002
                  message: Serviço indisponível
                id: '1'
        '504':
          description: Tempo limite do gateway - A solicitação expirou.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32003
                  message: Tempo limite do gateway
                id: '1'
      security:
        - ApiKeyQuery: []
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        jsonrpc:
          type: string
          description: A versão do protocolo JSON-RPC.
          enum:
            - '2.0'
          example: '2.0'
        error:
          type: object
          properties:
            code:
              type: integer
              description: O código de erro.
              example: -32602
            message:
              type: string
              description: A mensagem de erro.
            data:
              type: object
              description: Dados adicionais sobre o erro.
        id:
          type: string
          description: Identificador correspondente à solicitação.
          example: '1'
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api-key
      description: >-
        Sua chave de API Helius. Você pode obter uma gratuitamente no
        [painel](https://dashboard.helius.dev/api-keys).

````