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

# getHistoricalAccountInfo

> Lisez n'importe quel compte Solana tel qu'il était à un slot antérieur ou juste après une transaction spécifique, avec les encodages de getAccountInfo et la position de la dernière écriture.

> [!NOTE]
>
> `getHistoricalAccountInfo` est en version bêta. Les paramètres, la tarification, les formats de réponse et la couverture des données peuvent changer.

## Présentation

`getHistoricalAccountInfo` renvoie un compte Solana tel qu'il était à un slot antérieur ou immédiatement après une transaction spécifique dans ce slot. Il s'agit d'une méthode RPC exclusive à Helius. La méthode standard `getAccountInfo` renvoie uniquement l'état actuel.

La réponse contient les mêmes champs de compte que `getAccountInfo`, ainsi que `lastUpdatedAt` : le slot et la transaction correspondant à la dernière écriture de l'état reçu.

L'historique est disponible à partir du slot 444,959,999 (7 septembre 2026), qui correspond à l'état au début de l'époque 1030. Les requêtes portant sur des slots antérieurs renvoient l'erreur `-32018`.

`getHistoricalAccountInfo` est disponible sur le mainnet pour les forfaits Business et supérieurs, et coûte 0 crédit par appel pendant la période bêta. La tarification est susceptible de changer.

## Choisir une position dans l'historique

Le deuxième paramètre est un objet de requête qui sélectionne le point de l'historique à lire :

| Requête | Renvoie le compte |
| - | - |
| Omis ou `{}` | Au dernier slot indexé, dans la limite de l'engagement demandé |
| `{ "slot": 445000000 }` | À la fin du slot 445,000,000 |
| `{ "slot": 445000000, "transactionIndex": 10 }` | Immédiatement après l'exécution de la transaction à l'index 10 dans le slot 445,000,000 |

`transactionIndex` nécessite `slot`. Pour lire un compte juste avant la transaction à l'index `N`, interrogez `transactionIndex: N - 1`. Pour la première transaction d'un slot, interrogez le slot précédent sans `transactionIndex`.

Les écritures qui ne proviennent pas de transactions, telles que les récompenses d'époque, sont appliquées à la fin du slot. Une requête avec `transactionIndex` ne les inclut jamais.

## Exemple de requête

```bash theme={"system"}
curl https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": "1",
    "method": "getHistoricalAccountInfo",
    "params": [
      "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      { "slot": 445000000 },
      { "encoding": "jsonParsed" }
    ]
  }'
```

## Lire la réponse

* **`value`** est le compte tel qu'il était à la position demandée, ou `null` si le compte n'existait pas à ce moment-là : il n'avait pas encore été créé ou avait été fermé. Une réponse `null` ne contient aucun `lastUpdatedAt`.
* **`lastUpdatedAt.slot`** et **`lastUpdatedAt.transactionIndex`** identifient l'écriture qui a produit cet état. L'écriture se trouve à la position demandée ou avant celle-ci.
* **`lastUpdatedAt.transactionIndex` vaut `null`** lorsque l'écriture a eu lieu en dehors d'une transaction, par exemple pour les récompenses d'époque.
* **Un `lastUpdatedAt.slot` de 444,959,999 avec un `transactionIndex` égal à `null`** signifie que le compte n'a pas changé depuis le début de la couverture historique. Cela ne signifie pas que le compte a été écrit dans ce slot.
* **`context.slot`** est le dernier slot que Helius avait indexé au moment de traiter la requête, et non le slot interrogé.
* **Les comptes de jetons `jsonParsed`** utilisent le nombre de décimales du mint à la position demandée. Si le mint ne peut pas être lu à cette position, le compte utilise base64 comme solution de repli.

Pour répertorier tous les états antérieurs d'un compte, utilisez `lastUpdatedAt` comme curseur. Consultez [Parcourir l'historique d'un compte à rebours](https://www.helius.dev/docs/fr/rpc/historical-accounts.md#remonter-lhistorique-dun-compte).

## Erreurs

| Code | Signification |
| - | - |
| `-32018` | Le slot est antérieur au début de la couverture historique (slot 444,959,999) |
| `-32004` | Le slot est plus récent que ne l'autorise l'engagement demandé. Utilisez `confirmed` ou interrogez un slot plus ancien |
| `-32602` | Paramètres non valides, comme `transactionIndex` sans `slot`, l'encodage `base58` ou un champ de configuration inconnu |
| `-32601` | Méthode introuvable. Appelez votre point de terminaison mainnet Helius ou Gatekeeper ; la méthode n'est pas disponible sur devnet |

## Méthodes associées

> [card] [Historical Accounts Guide](https://www.helius.dev/docs/fr/rpc/historical-accounts.md)
>
> Fonctionnement des positions, de la couverture et de lastUpdatedAt pour les méthodes de comptes historiques

> [card] [getHistoricalTokenAccountsByOwner](https://www.helius.dev/docs/fr/api-reference/rpc/http/gethistoricaltokenaccountsbyowner.md)
>
> Répertoriez les comptes de jetons d'un portefeuille à un slot antérieur

> [card] [getTransactionsForAddress](https://www.helius.dev/docs/fr/rpc/gettransactionsforaddress.md)
>
> Trouvez le slot et le transactionIndex des transactions que vous souhaitez inspecter

> [card] [getAccountInfo](https://www.helius.dev/docs/fr/api-reference/rpc/http/getaccountinfo.md)
>
> Lisez l'état actuel d'un compte

## Paramètres de la requête

**pubkey** `string` *required*

Adresse du compte à lire, encodée en base 58.

**slot** `number`

Slot auquel lire l'état. Renvoie le compte tel qu'il était à la fin de ce slot. Le premier slot pris en charge est 444959999, soit l'état au début de l'époque 1030. Si ce paramètre est omis, lit le dernier slot indexé, dans la limite de l'engagement demandé.

**transactionIndex** `number`

Position d'une transaction dans le slot. Renvoie l'état du compte immédiatement après l'exécution de cette transaction, plutôt qu'à la fin du slot. Nécessite slot.

**encoding** `string` (default: base64)

Format d'encodage des données du compte. base58 et binary ne sont pas pris en charge.

* `base64`
* `base64+zstd`
* `jsonParsed`

**dataSlice** `object`

Renvoie uniquement une tranche des données de chaque compte. S'applique aux encodages base64 et base64+zstd.

**dataSlice.offset** `number` *required*

Décalage en octets à partir duquel commencer la lecture.

**dataSlice.length** `number` *required*

Nombre d'octets à renvoyer.

**commitment** `string` (default: finalized)

Niveau d'engagement. processed n'est pas pris en charge.

* `finalized`
* `confirmed`

**minContextSlot** `number`

Slot minimal auquel la requête peut être évaluée.


## OpenAPI

````yaml fr/openapi/rpc-http/getHistoricalAccountInfo.yaml POST /
openapi: 3.1.0
info:
  title: API RPC Solana
  version: 1.0.0
  description: >-
    API d'état historique des comptes Solana permettant de lire n'importe quel
    compte tel qu'il était à un slot antérieur ou immédiatement après une
    transaction spécifique au sein d'un slot.
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://mainnet.helius-rpc.com
    description: Point de terminaison RPC du réseau principal
security: []
paths:
  /:
    post:
      tags:
        - RPC
      summary: getHistoricalAccountInfo
      description: >
        **Bêta.** Les paramètres, les formats de réponse et la couverture des
        données peuvent changer.


        Renvoie un compte Solana tel qu'il était à un slot antérieur ou
        immédiatement après une

        transaction spécifique au sein de ce slot. Cette méthode RPC Helius
        accepte la même adresse et les

        mêmes options d'encodage que getAccountInfo, ainsi qu'un objet de
        requête qui sélectionne la position dans

        l'historique à lire.


        L'historique couvre les slots à partir du slot 444959999 (début de
        l'époque 1030). Chaque compte renvoyé

        inclut lastUpdatedAt, le slot et la transaction ayant écrit pour la
        dernière fois l'état que vous

        avez reçu.
      operationId: getHistoricalAccountInfo
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - jsonrpc
                - id
                - method
                - params
              properties:
                jsonrpc:
                  type: string
                  enum:
                    - '2.0'
                  example: '2.0'
                  description: Version du protocole JSON-RPC.
                  default: '2.0'
                id:
                  type: string
                  example: '1'
                  description: Identifiant unique de la requête.
                  default: '1'
                method:
                  type: string
                  enum:
                    - getHistoricalAccountInfo
                  example: getHistoricalAccountInfo
                  description: Nom de la méthode RPC à appeler.
                  default: getHistoricalAccountInfo
                params:
                  type: array
                  description: >-
                    Tableau contenant l'adresse du compte, un objet de requête
                    facultatif qui sélectionne la position dans l'historique et
                    un objet de configuration facultatif.
                  minItems: 1
                  maxItems: 3
                  default:
                    - EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                    - slot: 445000000
                    - encoding: jsonParsed
                  items:
                    oneOf:
                      - type: string
                        title: Clé publique
                        description: Adresse encodée en base 58 du compte à lire.
                        example: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                      - $ref: '#/components/schemas/HistoricalAccountQuery'
                        title: Requête
                      - type: object
                        title: Configuration
                        description: Objet de configuration facultatif.
                        properties:
                          encoding:
                            type: string
                            description: >-
                              Format d'encodage des données du compte. base58 et
                              binary ne sont pas pris en charge.
                            enum:
                              - base64
                              - base64+zstd
                              - jsonParsed
                            default: base64
                            example: jsonParsed
                          dataSlice:
                            $ref: '#/components/schemas/DataSliceConfig'
                          commitment:
                            type: string
                            description: >-
                              Niveau de confirmation. processed n'est pas pris
                              en charge.
                            enum:
                              - finalized
                              - confirmed
                            default: finalized
                            example: finalized
                          minContextSlot:
                            type: integer
                            description: Slot minimal auquel la requête peut être évaluée.
                            example: 445000000
                        additionalProperties: false
      responses:
        '200':
          description: État historique du compte récupéré avec succès.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    description: 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
                    properties:
                      context:
                        $ref: '#/components/schemas/HistoricalContext'
                      value:
                        oneOf:
                          - $ref: '#/components/schemas/HistoricalAccount'
                          - type: 'null'
                        description: >-
                          Compte à la position demandée, ou null s'il n'existait
                          pas à ce moment-là.
        '400':
          description: >-
            Requête incorrecte - Paramètres de requête non valides ou requête
            mal formée.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32602
                  message: Paramètres non valides
                id: '1'
        '401':
          description: Non autorisé - Clé API non valide 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 débit 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 dépassé - 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 dépassé
                id: '1'
      security:
        - ApiKeyQuery: []
components:
  schemas:
    HistoricalAccountQuery:
      type: object
      description: >-
        Position dans l'historique à lire. Omettez-la ou envoyez un objet vide
        pour lire le dernier slot indexé.
      properties:
        slot:
          type: integer
          description: >-
            Slot auquel lire l'état. Renvoie le compte tel qu'il était à la fin
            de ce slot. Le premier slot pris en charge est 444959999, soit
            l'état au début de l'époque 1030. Lorsque ce paramètre est omis, lit
            le dernier slot indexé, dans la limite du niveau de confirmation
            demandé.
          minimum: 444959999
          example: 445000000
        transactionIndex:
          type: integer
          description: >-
            Position d'une transaction au sein du slot. Renvoie l'état du compte
            immédiatement après l'exécution de cette transaction, plutôt qu'à la
            fin du slot. Nécessite slot.
          minimum: 0
          maximum: 16777214
          example: 10
      additionalProperties: false
    DataSliceConfig:
      type: object
      description: >-
        Renvoie uniquement une tranche des données de chaque compte. S'applique
        aux encodages base64 et base64+zstd.
      properties:
        offset:
          type: integer
          description: Décalage en octets à partir duquel commencer la lecture.
          example: 0
        length:
          type: integer
          description: Nombre d'octets à renvoyer.
          example: 8
      required:
        - offset
        - length
    HistoricalContext:
      type: object
      description: Métadonnées de la réponse.
      properties:
        slot:
          type: integer
          description: >-
            Dernier slot que le stockage d'historique avait indexé lorsqu'il a
            traité la requête. Il ne s'agit pas du slot interrogé.
          example: 468129571
    HistoricalAccount:
      type: object
      description: >-
        Compte tel qu'il était à la position demandée, ainsi que l'emplacement
        de la dernière écriture de cet état.
      properties:
        lamports:
          type: integer
          description: Nombre de lamports attribués à ce compte.
          example: 531589475273
        owner:
          type: string
          description: >-
            Clé publique encodée en base 58 du programme auquel ce compte a été
            attribué.
          example: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
        data:
          description: >-
            Données du compte. Avec base64 ou base64+zstd, tableau à deux
            éléments contenant les données encodées et l'encodage. Avec
            jsonParsed, objet contenant program, parsed et space. Les comptes
            qui ne peuvent pas être analysés utilisent à la place le tableau
            base64.
          oneOf:
            - type: array
              items:
                type: string
            - type: object
              properties:
                program:
                  type: string
                  description: Nom du programme propriétaire du compte.
                  example: spl-token
                parsed:
                  type: object
                  description: État analysé du compte propre au programme.
                space:
                  type: integer
                  description: Taille des données du compte.
                  example: 82
        executable:
          type: boolean
          description: Indique si le compte contient un programme.
          example: false
        rentEpoch:
          type: integer
          description: >-
            Époque à laquelle ce compte devra de nouveau payer un loyer. Les
            comptes exemptés de loyer renvoient la valeur u64 maximale.
        space:
          type: integer
          description: Taille des données du compte en octets.
          example: 82
        lastUpdatedAt:
          $ref: '#/components/schemas/AccountWritePosition'
      required:
        - lamports
        - owner
        - data
        - executable
        - rentEpoch
        - space
        - lastUpdatedAt
    ErrorResponse:
      type: object
      properties:
        jsonrpc:
          type: string
          description: Version du protocole JSON-RPC.
          enum:
            - '2.0'
          example: '2.0'
        error:
          type: object
          properties:
            code:
              type: integer
              description: Code d'erreur.
              example: -32602
            message:
              type: string
              description: 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'
    AccountWritePosition:
      type: object
      description: >-
        Emplacement de la dernière écriture de l'état renvoyé, à la position
        demandée ou avant celle-ci.
      properties:
        slot:
          type: integer
          description: >-
            Slot de la dernière écriture. Une valeur de 444959999 avec un
            transactionIndex nul signifie que le compte n'a pas changé depuis le
            début de la couverture historique.
          example: 444999837
        transactionIndex:
          oneOf:
            - type: integer
            - type: 'null'
          description: >-
            Position de la transaction ayant effectué la dernière écriture.
            Nulle lorsque l'écriture a eu lieu en dehors d'une transaction (par
            exemple, pour les récompenses d'époque), ou lorsque le compte n'a
            pas changé depuis le début de la couverture historique.
          example: 700
      required:
        - slot
        - transactionIndex
  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).

````

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