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

> Lies ein beliebiges Solana-Konto so, wie es in einem vergangenen slot oder direkt nach einer bestimmten Transaktion war. Nutze dabei die getAccountInfo-Codierungen und die Position des letzten Schreibvorgangs.

> [!NOTE]
>
> `getHistoricalAccountInfo` befindet sich in der Betaphase. Parameter, Preise, response-Formate und Datenabdeckung können sich ändern.

## Übersicht

`getHistoricalAccountInfo` gibt ein Solana-Konto so zurück, wie es in einem vergangenen slot oder direkt nach einer bestimmten Transaktion in diesem slot war. Diese RPC-Methode ist exklusiv bei Helius verfügbar. Das standardmäßige `getAccountInfo` gibt nur den aktuellen Zustand zurück.

Die response enthält dieselben Kontofelder wie `getAccountInfo` sowie `lastUpdatedAt`: den slot und die Transaktion des letzten Schreibvorgangs, der den empfangenen Zustand erzeugt hat.

Der Verlauf ist ab slot 444,959,999 (7. September 2026) verfügbar. Das entspricht dem Zustand zu Beginn der Epoche 1030. Requests für frühere slots geben den Fehler `-32018` zurück.

`getHistoricalAccountInfo` ist im Mainnet für Business-Tarife und höher verfügbar. Während der Betaphase kostet jeder Aufruf 0 Credits. Die Preise können sich ändern.

## Position im Verlauf auswählen

Der zweite Parameter ist ein Abfrageobjekt, das den zu lesenden Zeitpunkt im Verlauf auswählt:

| Abfrage | Gibt das Konto zurück |
| - | - |
| Weggelassen oder `{}` | Beim neuesten indizierten slot, begrenzt auf das angeforderte commitment |
| `{ "slot": 445000000 }` | Am Ende von slot 445,000,000 |
| `{ "slot": 445000000, "transactionIndex": 10 }` | Direkt nach Ausführung der Transaktion mit Index 10 in slot 445,000,000 |

`transactionIndex` erfordert `slot`. Um ein Konto direkt vor der Transaktion mit dem Index `N` zu lesen, frage `transactionIndex: N - 1` ab. Frage für die erste Transaktion in einem slot den vorherigen slot ohne `transactionIndex` ab.

Schreibvorgänge außerhalb von Transaktionen, etwa Epochenbelohnungen, werden am Ende des slot angewendet. Eine Abfrage mit `transactionIndex` enthält sie nie.

## Beispiel-request

```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" }
    ]
  }'
```

## response lesen

* **`value`** ist das Konto, wie es an der angeforderten Position war, oder `null`, wenn das Konto damals nicht existierte: Es war entweder noch nicht erstellt oder bereits geschlossen. Eine `null`-response enthält kein `lastUpdatedAt`.
* **`lastUpdatedAt.slot`** und **`lastUpdatedAt.transactionIndex`** identifizieren den Schreibvorgang, der diesen Zustand erzeugt hat. Der Schreibvorgang liegt an oder vor der angeforderten Position.
* **`lastUpdatedAt.transactionIndex` ist `null`**, wenn der Schreibvorgang außerhalb einer Transaktion erfolgte, etwa bei Epochenbelohnungen.
* **`lastUpdatedAt.slot` mit dem Wert 444,959,999 und einem `null`-Wert für `transactionIndex`** bedeutet, dass sich das Konto seit Beginn der Verlaufsabdeckung nicht geändert hat. Es bedeutet nicht, dass das Konto in diesem slot geschrieben wurde.
* **`context.slot`** ist der neueste slot, den Helius beim Verarbeiten des request indiziert hatte, nicht der von dir abgefragte slot.
* **`jsonParsed` token Konten** verwenden die Dezimalstellen des Mint zum Zeitpunkt der angeforderten Position. Wenn der Mint an dieser Position nicht gelesen werden kann, verwendet das Konto ersatzweise base64.

Verwende `lastUpdatedAt` als Cursor, um alle früheren Zustände eines Kontos aufzulisten. Siehe [Kontoverlauf rückwärts durchlaufen](https://www.helius.dev/docs/de/rpc/historical-accounts.md#account-verlauf-rückwärts-durchlaufen).

## Fehler

| Code | Bedeutung |
| - | - |
| `-32018` | Der slot liegt vor dem Beginn der Verlaufsabdeckung (slot 444,959,999) |
| `-32004` | Der slot ist neuer, als das angeforderte commitment zulässt. Verwende `confirmed` oder frage einen älteren slot ab |
| `-32602` | Ungültige Parameter, etwa `transactionIndex` ohne `slot`, die Codierung `base58` oder ein unbekanntes Konfigurationsfeld |
| `-32601` | Methode nicht gefunden. Rufe deinen Helius Mainnet- oder Gatekeeper-endpoint auf. Die Methode ist im Devnet nicht verfügbar |

## Verwandte Methoden

> [card] [Historical Accounts Guide](https://www.helius.dev/docs/de/rpc/historical-accounts.md)
>
> So funktionieren Positionen, Abdeckung und lastUpdatedAt bei Methoden für historische Konten

> [card] [getHistoricalTokenAccountsByOwner](https://www.helius.dev/docs/de/api-reference/rpc/http/gethistoricaltokenaccountsbyowner.md)
>
> Liste die token Konten einer Wallet in einem vergangenen slot auf

> [card] [getTransactionsForAddress](https://www.helius.dev/docs/de/rpc/gettransactionsforaddress.md)
>
> Finde den slot und den transactionIndex der Transaktionen, die du untersuchen möchtest

> [card] [getAccountInfo](https://www.helius.dev/docs/de/api-reference/rpc/http/getaccountinfo.md)
>
> Lies den aktuellen Zustand eines Kontos

## Request-Parameter

**pubkey** `string` *required*

Base58-codierte Adresse des zu lesenden Kontos.

**slot** `number`

slot, an dem der Zustand gelesen werden soll. Gibt das Konto so zurück, wie es am Ende dieses slot war. Der früheste unterstützte slot ist 444959999. Das entspricht dem Zustand zu Beginn der Epoche 1030. Wenn dieser Parameter weggelassen wird, liest die Methode den neuesten indizierten slot, begrenzt auf das angeforderte commitment.

**transactionIndex** `number`

Position einer Transaktion innerhalb des slot. Gibt den Kontozustand direkt nach Ausführung dieser Transaktion zurück, nicht am Ende des slot. Erfordert slot.

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

Codierungsformat für Kontodaten. base58 und binary werden nicht unterstützt.

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

**dataSlice** `object`

Gibt nur einen Ausschnitt der Daten jedes Kontos zurück. Gilt für die Codierungen base64 und base64+zstd.

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

Byte-Offset, ab dem gelesen werden soll.

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

Anzahl der zurückzugebenden Bytes.

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

commitment-Stufe. processed wird nicht unterstützt.

* `finalized`
* `confirmed`

**minContextSlot** `number`

Der minimale slot, an dem der request ausgewertet werden kann.


## OpenAPI

````yaml de/openapi/rpc-http/getHistoricalAccountInfo.yaml POST /
openapi: 3.1.0
info:
  title: Solana RPC API
  version: 1.0.0
  description: >-
    API für historische Solana-Kontozustände. Damit kannst du ein beliebiges
    Konto so lesen, wie es in einem früheren slot oder direkt nach einer
    bestimmten Transaktion innerhalb eines slot vorlag.
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://mainnet.helius-rpc.com
    description: RPC endpoint im Mainnet
security: []
paths:
  /:
    post:
      tags:
        - RPC
      summary: getHistoricalAccountInfo
      description: >
        **Beta.** Parameter, response-Formate und Datenabdeckung können sich
        ändern.


        Gibt ein Solana-Konto so zurück, wie es in einem früheren slot oder
        direkt nach einer bestimmten

        Transaktion innerhalb dieses slot vorlag. Diese Helius RPC-Methode
        akzeptiert dieselbe Adresse und

        dieselben Kodierungsoptionen wie getAccountInfo sowie ein Abfrageobjekt,
        das die zu lesende Position

        im Verlauf auswählt.


        Der Verlauf deckt slot 444959999, den Beginn der Epoche 1030, und alle
        nachfolgenden slots ab. Jedes zurückgegebene Konto

        enthält lastUpdatedAt, also den slot und die Transaktion, die den
        empfangenen Zustand zuletzt

        geschrieben haben.
      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: Die Version des JSON-RPC-Protokolls.
                  default: '2.0'
                id:
                  type: string
                  example: '1'
                  description: Eine eindeutige Kennung für den request.
                  default: '1'
                method:
                  type: string
                  enum:
                    - getHistoricalAccountInfo
                  example: getHistoricalAccountInfo
                  description: Der Name der aufzurufenden RPC-Methode.
                  default: getHistoricalAccountInfo
                params:
                  type: array
                  description: >-
                    Array mit der Kontoadresse, einem optionalen Abfrageobjekt
                    zur Auswahl der Position im Verlauf und einem optionalen
                    Konfigurationsobjekt.
                  minItems: 1
                  maxItems: 3
                  default:
                    - EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                    - slot: 445000000
                    - encoding: jsonParsed
                  items:
                    oneOf:
                      - type: string
                        title: Öffentlicher Schlüssel
                        description: Base58-kodierte Adresse des zu lesenden Kontos.
                        example: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                      - $ref: '#/components/schemas/HistoricalAccountQuery'
                        title: Abfrage
                      - type: object
                        title: Konfiguration
                        description: Optionales Konfigurationsobjekt.
                        properties:
                          encoding:
                            type: string
                            description: >-
                              Kodierungsformat für Kontodaten. base58 und binary
                              werden nicht unterstützt.
                            enum:
                              - base64
                              - base64+zstd
                              - jsonParsed
                            default: base64
                            example: jsonParsed
                          dataSlice:
                            $ref: '#/components/schemas/DataSliceConfig'
                          commitment:
                            type: string
                            description: >-
                              commitment-Stufe. processed wird nicht
                              unterstützt.
                            enum:
                              - finalized
                              - confirmed
                            default: finalized
                            example: finalized
                          minContextSlot:
                            type: integer
                            description: >-
                              Der minimale slot, an dem der request ausgewertet
                              werden kann.
                            example: 445000000
                        additionalProperties: false
      responses:
        '200':
          description: Der historische Kontozustand wurde erfolgreich abgerufen.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    description: Die Version des JSON-RPC-Protokolls.
                    enum:
                      - '2.0'
                    example: '2.0'
                  id:
                    type: string
                    description: Kennung, die dem request entspricht.
                    example: '1'
                  result:
                    type: object
                    properties:
                      context:
                        $ref: '#/components/schemas/HistoricalContext'
                      value:
                        oneOf:
                          - $ref: '#/components/schemas/HistoricalAccount'
                          - type: 'null'
                        description: >-
                          Das Konto an der angeforderten Position oder null,
                          wenn es zu diesem Zeitpunkt nicht existierte.
        '400':
          description: >-
            Ungültiger request – Ungültige request-Parameter oder fehlerhaft
            formatierter request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32602
                  message: Ungültige Parameter
                id: '1'
        '401':
          description: Nicht autorisiert – Ungültiger oder fehlender API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32001
                  message: Nicht autorisiert
                id: '1'
        '429':
          description: Zu viele requests – rate limit überschritten.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32005
                  message: Zu viele requests
                id: '1'
        '500':
          description: Interner Serverfehler – Auf dem Server ist ein Fehler aufgetreten.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32603
                  message: Interner Fehler
                id: '1'
        '503':
          description: >-
            Dienst nicht verfügbar – Der Dienst ist vorübergehend nicht
            verfügbar.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32002
                  message: Dienst nicht verfügbar
                id: '1'
        '504':
          description: Gateway-timeout – Beim request wurde das Zeitlimit überschritten.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32003
                  message: Gateway-timeout
                id: '1'
      security:
        - ApiKeyQuery: []
components:
  schemas:
    HistoricalAccountQuery:
      type: object
      description: >-
        Die Position im Verlauf, die gelesen werden soll. Lasse sie weg oder
        sende ein leeres Objekt, um den neuesten indizierten slot zu lesen.
      properties:
        slot:
          type: integer
          description: >-
            slot, an dem der Zustand gelesen werden soll. Gibt das Konto zum
            Ende dieses slot zurück. Der früheste unterstützte slot ist
            444959999, also der Zustand zu Beginn der Epoche 1030. Wenn du
            diesen Wert weglässt, wird der neueste indizierte slot gelesen,
            begrenzt auf das angeforderte commitment.
          minimum: 444959999
          example: 445000000
        transactionIndex:
          type: integer
          description: >-
            Position einer Transaktion innerhalb des slot. Gibt den Kontozustand
            direkt nach Ausführung dieser Transaktion statt am Ende des slot
            zurück. Erfordert slot.
          minimum: 0
          maximum: 16777214
          example: 10
      additionalProperties: false
    DataSliceConfig:
      type: object
      description: >-
        Gibt nur einen Ausschnitt der Daten jedes Kontos zurück. Gilt für die
        Kodierungen base64 und base64+zstd.
      properties:
        offset:
          type: integer
          description: Byte-Offset, ab dem gelesen werden soll.
          example: 0
        length:
          type: integer
          description: Anzahl der zurückzugebenden Bytes.
          example: 8
      required:
        - offset
        - length
    HistoricalContext:
      type: object
      description: Metadaten der response.
      properties:
        slot:
          type: integer
          description: >-
            Der neueste slot, den der Verlaufsspeicher beim Verarbeiten des
            request indiziert hatte. Dies ist nicht der von dir abgefragte slot.
          example: 468129571
    HistoricalAccount:
      type: object
      description: >-
        Das Konto, wie es an der angeforderten Position vorlag, sowie die
        Position, an der dieser Zustand zuletzt geschrieben wurde.
      properties:
        lamports:
          type: integer
          description: Anzahl der diesem Konto zugewiesenen Lamports.
          example: 531589475273
        owner:
          type: string
          description: >-
            Base58-kodierter öffentlicher Schlüssel des Programms, dem dieses
            Konto zugewiesen wurde.
          example: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
        data:
          description: >-
            Kontodaten. Bei base64 oder base64+zstd ist dies ein Array mit zwei
            Elementen: den kodierten Daten und der Kodierung. Bei jsonParsed ist
            es ein Objekt mit program, parsed und space. Konten, die nicht
            geparst werden können, verwenden stattdessen das base64-Array.
          oneOf:
            - type: array
              items:
                type: string
            - type: object
              properties:
                program:
                  type: string
                  description: Name des Programms, dem das Konto gehört.
                  example: spl-token
                parsed:
                  type: object
                  description: Programmspezifischer geparster Kontozustand.
                space:
                  type: integer
                  description: Datengröße des Kontos.
                  example: 82
        executable:
          type: boolean
          description: Gibt an, ob das Konto ein Programm enthält.
          example: false
        rentEpoch:
          type: integer
          description: >-
            Die Epoche, in der für dieses Konto das nächste Mal Miete fällig
            wird. Mietbefreite Konten geben den maximalen u64-Wert zurück.
        space:
          type: integer
          description: Datengröße des Kontos in Bytes.
          example: 82
        lastUpdatedAt:
          $ref: '#/components/schemas/AccountWritePosition'
      required:
        - lamports
        - owner
        - data
        - executable
        - rentEpoch
        - space
        - lastUpdatedAt
    ErrorResponse:
      type: object
      properties:
        jsonrpc:
          type: string
          description: Die Version des JSON-RPC-Protokolls.
          enum:
            - '2.0'
          example: '2.0'
        error:
          type: object
          properties:
            code:
              type: integer
              description: Der Fehlercode.
              example: -32602
            message:
              type: string
              description: Die Fehlermeldung.
            data:
              type: object
              description: Zusätzliche Daten zum Fehler.
        id:
          type: string
          description: Kennung, die dem request entspricht.
          example: '1'
    AccountWritePosition:
      type: object
      description: >-
        Position, an der oder vor der der zurückgegebene Zustand zuletzt
        geschrieben wurde.
      properties:
        slot:
          type: integer
          description: >-
            slot des letzten Schreibvorgangs. Der Wert 444959999 mit einem
            transactionIndex von null bedeutet, dass sich das Konto seit Beginn
            der Verlaufsabdeckung nicht geändert hat.
          example: 444999837
        transactionIndex:
          oneOf:
            - type: integer
            - type: 'null'
          description: >-
            Position der Transaktion, die den letzten Schreibvorgang ausgeführt
            hat. Null, wenn der Schreibvorgang außerhalb einer Transaktion
            stattfand, etwa bei Epochenbelohnungen, oder wenn sich das Konto
            seit Beginn der Verlaufsabdeckung nicht geändert hat.
          example: 700
      required:
        - slot
        - transactionIndex
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api-key
      description: >-
        Dein Helius API key. Du erhältst ihn kostenlos im
        [Dashboard](https://dashboard.helius.dev/api-keys).

````

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