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

# simulateTransaction

> simulateTransaction prévisualise les journaux, l'utilisation des unités de calcul et les changements de comptes d'une transaction Solana sans la soumettre — estimer les frais et détecter les échecs.

## Paramètres de la requête

<ParamField body="transaction" type="string" required>
  La transaction signée, sous forme de chaîne encodée (base58 ou base64).
</ParamField>

<ParamField body="encoding" type="string">
  Encodage utilisé pour les données de transaction.

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

<ParamField body="skipPreflight" type="boolean">
  Ignorer les vérifications de prévol de la transaction.
</ParamField>

<ParamField body="preflightCommitment" type="string">
  Niveau d'engagement à utiliser pour le prévol.

  * `confirmed`
  * `finalized`
  * `processed`
</ParamField>

<ParamField body="sigVerify" type="boolean">
  Si vrai, vérifier les signatures de la transaction.
</ParamField>

<ParamField body="replaceRecentBlockhash" type="boolean">
  Si vrai, remplacer le blockhash récent de la transaction par le plus récent.
</ParamField>

<ParamField body="minContextSlot" type="number">
  Emplacement minimum auquel effectuer les vérifications de prévol de la transaction.
</ParamField>

<ParamField body="innerInstructions" type="boolean">
  Si vrai, inclure les instructions internes dans la réponse.
</ParamField>

<ParamField body="accounts" type="object" />

<ParamField body="accounts.addresses" type="array">
  Tableau de comptes à retourner, sous forme de chaînes encodées en base-58.
</ParamField>

<ParamField body="accounts.encoding" type="string">
  Format d'encodage pour les données de compte retournées.

  * `base64`
  * `base58`
  * `base64+zstd`
  * `jsonParsed`
</ParamField>


## OpenAPI

````yaml fr/openapi/rpc-http/simulateTransaction.yaml POST /
openapi: 3.1.0
info:
  title: Solana RPC API
  version: 1.0.0
  description: >-
    API avancée de simulation de transactions Solana pour tester et déboguer les
    transactions blockchain avant de les valider sur le réseau Solana.
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://mainnet.helius-rpc.com
    description: Point d'accès RPC Mainnet
  - url: https://devnet.helius-rpc.com
    description: Point d'accès RPC Devnet
security: []
paths:
  /:
    post:
      tags:
        - RPC
      summary: simulateTransaction
      description: >-
        Simuler des transactions Solana sans les exécuter sur la blockchain. Cet
        outil puissant de débogage permet aux développeurs de tester l'exécution
        des transactions, de vérifier le comportement des programmes, d'estimer
        la consommation d'unités de calcul, de détecter les erreurs, et de
        prévisualiser les changements d'état des comptes avant de valider les
        transactions sur le réseau. Essentiel pour le développement
        d'applications Solana, les tests de contrats intelligents et
        l'optimisation des transactions.
      operationId: simulateTransaction
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                jsonrpc:
                  type: string
                  enum:
                    - '2.0'
                  description: La version du protocole JSON-RPC.
                  example: '2.0'
                  default: '2.0'
                id:
                  type: string
                  description: Un identifiant unique pour la requête.
                  example: '1'
                  default: '1'
                method:
                  type: string
                  enum:
                    - simulateTransaction
                  description: Le nom de la méthode RPC à invoquer.
                  example: simulateTransaction
                  default: simulateTransaction
                params:
                  type: array
                  description: Paramètres pour simuler une transaction.
                  default:
                    - >-
                      AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEDArczbMia1tLmq7zz4DinMNN0pJ1JtLdqIJPUw3YrGCzYAMHBsgN27lcgB6H2WQvFgyZuJYHa46puOQo9yQ8CVQbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp20C7Wj2aiuk5TReAXo+VTVg8QTHjs0UjNMMKCvpzZ+ABAgEBARU=
                    - encoding: base64
                  items:
                    oneOf:
                      - type: string
                        description: >-
                          La transaction signée, en tant que chaîne encodée
                          (base58 ou base64).
                        example: >-
                          AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEDArczbMia1tLmq7zz4DinMNN0pJ1JtLdqIJPUw3YrGCzYAMHBsgN27lcgB6H2WQvFgyZuJYHa46puOQo9yQ8CVQbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp20C7Wj2aiuk5TReAXo+VTVg8QTHjs0UjNMMKCvpzZ+ABAgEBARU=
                      - type: object
                        description: Objet de configuration pour la simulation.
                        properties:
                          encoding:
                            type: string
                            description: Encodage utilisé pour les données de transaction.
                            enum:
                              - base58
                              - base64
                            example: base64
                          skipPreflight:
                            type: boolean
                            description: >-
                              Passer les vérifications de transaction
                              préliminaires.
                            example: false
                          preflightCommitment:
                            type: string
                            description: >-
                              Niveau d'engagement à utiliser pour
                              pré-vérification.
                            enum:
                              - confirmed
                              - finalized
                              - processed
                            example: finalized
                          sigVerify:
                            type: boolean
                            description: Si vrai, vérifier les signatures de transaction.
                            example: false
                          replaceRecentBlockhash:
                            type: boolean
                            description: >-
                              Si vrai, remplacer le blockhash récent de la
                              transaction par le plus récent.
                            example: false
                          minContextSlot:
                            type: integer
                            description: >-
                              Slot minimum pour effectuer les vérifications de
                              transaction préliminaires.
                            example: 1000
                          innerInstructions:
                            type: boolean
                            description: >-
                              Si vrai, inclure les instructions internes dans la
                              réponse.
                            example: false
                          accounts:
                            type: object
                            properties:
                              addresses:
                                type: array
                                description: >-
                                  Tableau de comptes à retourner, sous forme de
                                  chaînes encodées en base-58.
                                items:
                                  type: string
                                  example: 83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri
                              encoding:
                                type: string
                                description: >-
                                  Format d'encodage pour les données des comptes
                                  retournés.
                                enum:
                                  - base64
                                  - base58
                                  - base64+zstd
                                  - jsonParsed
                                example: base64
      responses:
        '200':
          description: Simulation réussie de la transaction.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    description: La version du protocole JSON-RPC.
                    enum:
                      - '2.0'
                    example: '2.0'
                  id:
                    type: string
                    description: Identifiant correspondant à la requête.
                    example: '1'
                  result:
                    type: object
                    description: Résultat de la transaction simulée.
                    properties:
                      context:
                        type: object
                        description: Contexte de la réponse de la simulation.
                        properties:
                          apiVersion:
                            type: string
                            description: La version de l'API du nœud RPC.
                            example: 2.3.3
                          slot:
                            type: integer
                            description: Slot dans lequel les données ont été récupérées.
                            example: 393226680
                      value:
                        type: object
                        description: Détails du résultat de la transaction simulée.
                        properties:
                          accounts:
                            type:
                              - array
                              - 'null'
                            items:
                              type: object
                              description: Détails de compte associés à la transaction.
                              example:
                                lamports: 5000
                                owner: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
                          err:
                            type:
                              - object
                              - 'null'
                            description: >-
                              Erreur si la transaction a échoué, null si
                              réussie.
                            example: null
                          innerInstructions:
                            type:
                              - array
                              - 'null'
                            description: >-
                              Instructions internes exécutées pendant la
                              transaction.
                            example: null
                          loadedAccountsDataSize:
                            type:
                              - integer
                              - 'null'
                            description: >-
                              Taille totale en octets de toutes les données de
                              compte chargées pendant la simulation.
                            example: 413
                          logs:
                            type:
                              - array
                              - 'null'
                            items:
                              type: string
                            description: >-
                              Journaux d'exécution du programme de la simulation
                              de la transaction.
                            example:
                              - >-
                                Program
                                TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
                                invoke [1]
                              - 'Program log: Instruction: Transfer'
                              - >-
                                Program
                                TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
                                consumed 1714 of 200000 compute units
                              - >-
                                Program
                                TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
                                success
                          replacementBlockhash:
                            type:
                              - object
                              - 'null'
                            description: >-
                              Informations sur le blockhash de remplacement
                              lorsque replaceRecentBlockhash est activé.
                            properties:
                              blockhash:
                                type: string
                                description: Le blockhash de remplacement.
                                example: 6oFLsE7kmgJx9PjR4R63VRNtpAVJ648gCTr3nq5Hihit
                              lastValidBlockHeight:
                                type: integer
                                description: >-
                                  La dernière hauteur de bloc valide pour le
                                  blockhash de remplacement.
                                example: 381186895
                          returnData:
                            type:
                              - object
                              - 'null'
                            properties:
                              programId:
                                type: string
                                example: 83astBRguLMdt2h5U1Tpdq5tjFoJ6noeGwaY3mDLVcri
                              data:
                                type: array
                                items:
                                  type: string
                                example:
                                  - Kg==
                                  - base64
                            description: >-
                              Données retournées par la transaction, le cas
                              échéant.
                            example: null
                          unitsConsumed:
                            type:
                              - integer
                              - 'null'
                            description: >-
                              Total des unités de calcul consommées pendant la
                              simulation.
                            example: 1714
              example:
                jsonrpc: '2.0'
                id: 1
                result:
                  context:
                    apiVersion: 2.3.3
                    slot: 393226680
                  value:
                    accounts: null
                    err: null
                    innerInstructions: null
                    loadedAccountsDataSize: 413
                    logs:
                      - >-
                        Program TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
                        invoke [1]
                      - 'Program log: Instruction: Transfer'
                      - >-
                        Program TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
                        consumed 1714 of 200000 compute units
                      - >-
                        Program TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
                        success
                    replacementBlockhash:
                      blockhash: 6oFLsE7kmgJx9PjR4R63VRNtpAVJ648gCTr3nq5Hihit
                      lastValidBlockHeight: 381186895
                    returnData: null
                    unitsConsumed: 1714
        '400':
          description: >-
            Requête incorrecte - Paramètres de requête invalides ou requête mal
            formée.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32602
                  message: Paramètres invalides
                id: '1'
        '401':
          description: Non Autorisé - Clé API invalide ou manquante.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32001
                  message: Non autorisé
                id: '1'
        '429':
          description: Trop de requêtes - Limite de fréquence dépassée.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32005
                  message: Trop de requêtes
                id: '1'
        '500':
          description: >-
            Erreur Interne du Serveur - Une erreur s'est produite sur le
            serveur.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32603
                  message: Erreur interne
                id: '1'
        '503':
          description: Service indisponible - Le service est temporairement indisponible.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32002
                  message: Service indisponible
                id: '1'
        '504':
          description: Délai d'attente de la passerelle - La requête a expiré.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32003
                  message: Délai d'attente de la passerelle
                id: '1'
      security:
        - ApiKeyQuery: []
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        jsonrpc:
          type: string
          description: La version du protocole JSON-RPC.
          enum:
            - '2.0'
          example: '2.0'
        error:
          type: object
          properties:
            code:
              type: integer
              description: Le code d'erreur.
              example: -32602
            message:
              type: string
              description: Le message d'erreur.
            data:
              type: object
              description: Données supplémentaires sur l'erreur.
        id:
          type: string
          description: Identifiant correspondant à la requête.
          example: '1'
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api-key
      description: >-
        Votre clé API Helius. Vous pouvez en obtenir une gratuitement dans le
        [tableau de bord](https://dashboard.helius.dev/api-keys).

````