> ## 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 ko/openapi/rpc-http/simulateBundle.yaml POST /
openapi: 3.1.0
info:
  title: Solana RPC API
  version: 1.0.0
  description: Solana 네트워크에 JITO 검증자를 통해 제출하기 전에 번들 실행을 테스트하고 검증하기 위한 JITO 번들 시뮬레이션 API입니다.
  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: Devnet RPC 엔드포인트
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: |
                              시뮬레이션 실행 대상 은행을 지정합니다. tip, 슬롯 또는 커밋 수준일 수 있습니다.
                            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: >-
        Helius API 키입니다. [대시보드](https://dashboard.helius.dev/api-keys)에서 무료로 받을
        수 있습니다.

````