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

> Lee cualquier cuenta de Solana tal como estaba en un slot anterior o justo después de una transacción específica, con las codificaciones de getAccountInfo y la posición de la última escritura.

> [!NOTE]
>
> `getHistoricalAccountInfo` está en fase beta. Los parámetros, los precios, los formatos de respuesta y la cobertura de datos pueden cambiar.

## Descripción general

`getHistoricalAccountInfo` devuelve una cuenta de Solana tal como estaba en un slot anterior o inmediatamente después de una transacción específica de ese slot. Es un método RPC exclusivo de Helius. El método estándar `getAccountInfo` solo devuelve el estado actual.

La respuesta tiene los mismos campos de cuenta que `getAccountInfo`, además de `lastUpdatedAt`: el slot y la transacción que escribieron por última vez el estado que recibiste.

El historial está disponible a partir del slot 444,959,999 (7 de septiembre de 2026), que corresponde al estado al inicio de la época 1030. Las solicitudes de slots anteriores devuelven el error `-32018`.

`getHistoricalAccountInfo` está disponible en mainnet para los planes Business y superiores, y cuesta 0 créditos por llamada durante el período beta. Los precios están sujetos a cambios.

## Elige una posición en el historial

El segundo parámetro es un objeto de consulta que selecciona qué punto del historial se leerá:

| Consulta | Devuelve la cuenta |
| - | - |
| Omitido o `{}` | En el último slot indexado, limitado por el nivel de confirmación solicitado |
| `{ "slot": 445000000 }` | Al final del slot 445,000,000 |
| `{ "slot": 445000000, "transactionIndex": 10 }` | Inmediatamente después de que se ejecutó la transacción con índice 10 en el slot 445,000,000 |

`transactionIndex` requiere `slot`. Para leer una cuenta justo antes de la transacción con índice `N`, consulta `transactionIndex: N - 1`. Para la primera transacción de un slot, consulta el slot anterior sin `transactionIndex`.

Las escrituras que no corresponden a transacciones, como las recompensas de época, se aplican al final del slot. Una consulta con `transactionIndex` nunca las incluye.

## Solicitud de ejemplo

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

## Lee la respuesta

* **`value`** es la cuenta tal como estaba en la posición solicitada, o `null` si la cuenta no existía en ese momento: aún no se había creado o ya se había cerrado. Una respuesta `null` no tiene `lastUpdatedAt`.
* **`lastUpdatedAt.slot`** y **`lastUpdatedAt.transactionIndex`** identifican la escritura que produjo este estado. La escritura se encuentra en la posición que solicitaste o antes de ella.
* **`lastUpdatedAt.transactionIndex` es `null`** cuando la escritura ocurrió fuera de una transacción, como sucede con las recompensas de época.
* **Un valor `lastUpdatedAt.slot` de 444,959,999 con un valor `transactionIndex` de `null`** significa que la cuenta no ha cambiado desde que comenzó la cobertura del historial. No significa que la cuenta se haya escrito en ese slot.
* **`context.slot`** es el último slot que Helius había indexado cuando procesó la solicitud, no el slot que consultaste.
* **Las cuentas de tokens `jsonParsed`** usan los decimales del mint correspondientes a la posición solicitada. Si el mint no se puede leer en esa posición, la cuenta recurre a base64.

Para enumerar todos los estados anteriores de una cuenta, usa `lastUpdatedAt` como cursor. Consulta [Recorrer hacia atrás el historial de una cuenta](https://www.helius.dev/docs/es/rpc/historical-accounts.md#recorre-hacia-atrás-el-historial-de-una-cuenta).

## Errores

| Código | Significado |
| - | - |
| `-32018` | El slot es anterior al inicio de la cobertura del historial (slot 444,959,999) |
| `-32004` | El slot es más reciente de lo que permite el nivel de confirmación solicitado. Usa `confirmed` o consulta un slot anterior |
| `-32602` | Parámetros no válidos, como `transactionIndex` sin `slot`, la codificación `base58` o un campo de configuración desconocido |
| `-32601` | No se encontró el método. Llama a tu endpoint de Helius mainnet o Gatekeeper; el método no está disponible en devnet |

## Métodos relacionados

> [card] [Historical Accounts Guide](https://www.helius.dev/docs/es/rpc/historical-accounts.md)
>
> Cómo funcionan las posiciones, la cobertura y lastUpdatedAt en los métodos de cuentas históricas

> [card] [getHistoricalTokenAccountsByOwner](https://www.helius.dev/docs/es/api-reference/rpc/http/gethistoricaltokenaccountsbyowner.md)
>
> Enumera las cuentas de tokens de una billetera en un slot anterior

> [card] [getTransactionsForAddress](https://www.helius.dev/docs/es/rpc/gettransactionsforaddress.md)
>
> Encuentra el slot y el transactionIndex de las transacciones que quieres inspeccionar

> [card] [getAccountInfo](https://www.helius.dev/docs/es/api-reference/rpc/http/getaccountinfo.md)
>
> Lee el estado actual de una cuenta

## Parámetros de la solicitud

**pubkey** `string` *required*

Dirección de la cuenta que quieres leer, codificada en base 58.

**slot** `number`

Slot en el que se leerá el estado. Devuelve la cuenta tal como estaba al final de este slot. El primer slot compatible es 444959999, que corresponde al estado al inicio de la época 1030. Si se omite, lee el último slot indexado, limitado por el nivel de confirmación solicitado.

**transactionIndex** `number`

Posición de una transacción dentro del slot. Devuelve el estado de la cuenta inmediatamente después de que se ejecutó esa transacción, en lugar del estado al final del slot. Requiere slot.

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

Formato de codificación de los datos de la cuenta. base58 y binary no son compatibles.

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

**dataSlice** `object`

Devuelve solo una sección de los datos de cada cuenta. Se aplica a las codificaciones base64 y base64+zstd.

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

Desplazamiento en bytes desde el que se comenzará a leer.

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

Número de bytes que se devolverán.

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

Nivel de confirmación. processed no es compatible.

* `finalized`
* `confirmed`

**minContextSlot** `number`

Slot mínimo en el que se puede evaluar la solicitud.


## OpenAPI

````yaml es/openapi/rpc-http/getHistoricalAccountInfo.yaml POST /
openapi: 3.1.0
info:
  title: API RPC de Solana
  version: 1.0.0
  description: >-
    API de estado histórico de cuentas de Solana para leer cualquier cuenta tal
    como estaba en un slot anterior o inmediatamente después de una transacción
    específica dentro de 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: Endpoint RPC de Mainnet
security: []
paths:
  /:
    post:
      tags:
        - RPC
      summary: getHistoricalAccountInfo
      description: >
        **Beta.** Los parámetros, los formatos de respuesta y la cobertura de
        datos pueden cambiar.


        Devuelve una cuenta de Solana tal como estaba en un slot anterior o
        inmediatamente después de una

        transacción específica dentro de ese slot. Este método RPC de Helius
        acepta la misma dirección y las

        mismas opciones de codificación que getAccountInfo, además de un objeto
        de consulta que selecciona la posición

        del historial que se leerá.


        El historial abarca desde el slot 444959999 (el inicio de la época 1030)
        en adelante. Cada cuenta devuelta

        incluye lastUpdatedAt, el slot y la transacción que escribieron por
        última vez el estado que

        recibiste.
      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: La versión del protocolo JSON-RPC.
                  default: '2.0'
                id:
                  type: string
                  example: '1'
                  description: Un identificador único para la solicitud.
                  default: '1'
                method:
                  type: string
                  enum:
                    - getHistoricalAccountInfo
                  example: getHistoricalAccountInfo
                  description: Nombre del método RPC que se invocará.
                  default: getHistoricalAccountInfo
                params:
                  type: array
                  description: >-
                    Arreglo que contiene la dirección de la cuenta, un objeto de
                    consulta opcional que selecciona la posición del historial y
                    un objeto de configuración opcional.
                  minItems: 1
                  maxItems: 3
                  default:
                    - EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                    - slot: 445000000
                    - encoding: jsonParsed
                  items:
                    oneOf:
                      - type: string
                        title: Clave pública
                        description: >-
                          Dirección codificada en base 58 de la cuenta que se
                          leerá.
                        example: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                      - $ref: '#/components/schemas/HistoricalAccountQuery'
                        title: Consulta
                      - type: object
                        title: Configuración
                        description: Objeto de configuración opcional.
                        properties:
                          encoding:
                            type: string
                            description: >-
                              Formato de codificación de los datos de la cuenta.
                              base58 y binary no son compatibles.
                            enum:
                              - base64
                              - base64+zstd
                              - jsonParsed
                            default: base64
                            example: jsonParsed
                          dataSlice:
                            $ref: '#/components/schemas/DataSliceConfig'
                          commitment:
                            type: string
                            description: Nivel de confirmación. processed no es compatible.
                            enum:
                              - finalized
                              - confirmed
                            default: finalized
                            example: finalized
                          minContextSlot:
                            type: integer
                            description: >-
                              El slot mínimo en el que se puede evaluar la
                              solicitud.
                            example: 445000000
                        additionalProperties: false
      responses:
        '200':
          description: El estado histórico de la cuenta se recuperó correctamente.
          content:
            application/json:
              schema:
                type: object
                properties:
                  jsonrpc:
                    type: string
                    description: La versión del protocolo JSON-RPC.
                    enum:
                      - '2.0'
                    example: '2.0'
                  id:
                    type: string
                    description: Identificador que coincide con la solicitud.
                    example: '1'
                  result:
                    type: object
                    properties:
                      context:
                        $ref: '#/components/schemas/HistoricalContext'
                      value:
                        oneOf:
                          - $ref: '#/components/schemas/HistoricalAccount'
                          - type: 'null'
                        description: >-
                          La cuenta en la posición solicitada, o null si no
                          existía en ese momento.
        '400':
          description: >-
            Solicitud incorrecta: parámetros de solicitud no válidos o solicitud
            con formato incorrecto.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32602
                  message: Invalid params
                id: '1'
        '401':
          description: 'No autorizado: la clave de API no es válida o no está presente.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32001
                  message: Unauthorized
                id: '1'
        '429':
          description: 'Demasiadas solicitudes: se superó el límite de solicitudes.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32005
                  message: Too many requests
                id: '1'
        '500':
          description: 'Error interno del servidor: se produjo un error en el servidor.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32603
                  message: Internal error
                id: '1'
        '503':
          description: >-
            Servicio no disponible: el servicio no está disponible
            temporalmente.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                jsonrpc: '2.0'
                error:
                  code: -32002
                  message: Service unavailable
                id: '1'
        '504':
          description: >-
            Tiempo de espera de la puerta de enlace agotado: se agotó el tiempo
            de espera de la solicitud.
          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: >-
        La posición del historial que se leerá. Omítela o envía un objeto vacío
        para leer el último slot indexado.
      properties:
        slot:
          type: integer
          description: >-
            Slot en el que se leerá el estado. Devuelve la cuenta tal como
            estaba al final de este slot. El primer slot compatible es
            444959999, correspondiente al estado al inicio de la época 1030. Si
            se omite, lee el último slot indexado, limitado por el nivel de
            confirmación solicitado.
          minimum: 444959999
          example: 445000000
        transactionIndex:
          type: integer
          description: >-
            Posición de una transacción dentro del slot. Devuelve el estado de
            la cuenta inmediatamente después de que se ejecutó esa transacción,
            en lugar de al final del slot. Requiere slot.
          minimum: 0
          maximum: 16777214
          example: 10
      additionalProperties: false
    DataSliceConfig:
      type: object
      description: >-
        Devuelve solo una porción de los datos de cada cuenta. Se aplica a las
        codificaciones base64 y base64+zstd.
      properties:
        offset:
          type: integer
          description: Desplazamiento en bytes desde el cual comenzar a leer.
          example: 0
        length:
          type: integer
          description: Cantidad de bytes que se devolverán.
          example: 8
      required:
        - offset
        - length
    HistoricalContext:
      type: object
      description: Metadatos de la respuesta.
      properties:
        slot:
          type: integer
          description: >-
            El último slot que el almacén de historial había indexado cuando
            atendió la solicitud. Este no es el slot que consultaste.
          example: 468129571
    HistoricalAccount:
      type: object
      description: >-
        La cuenta tal como estaba en la posición solicitada, junto con la
        ubicación donde ese estado se escribió por última vez.
      properties:
        lamports:
          type: integer
          description: Cantidad de lamports asignados a esta cuenta.
          example: 531589475273
        owner:
          type: string
          description: >-
            Clave pública codificada en base 58 del programa al que se asignó
            esta cuenta.
          example: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
        data:
          description: >-
            Datos de la cuenta. Con base64 o base64+zstd, es un arreglo de dos
            elementos que contiene los datos codificados y la codificación. Con
            jsonParsed, es un objeto con program, parsed y space. Las cuentas
            que no se pueden analizar usan como alternativa el arreglo base64.
          oneOf:
            - type: array
              items:
                type: string
            - type: object
              properties:
                program:
                  type: string
                  description: Nombre del programa propietario de la cuenta.
                  example: spl-token
                parsed:
                  type: object
                  description: Estado analizado de la cuenta específico del programa.
                space:
                  type: integer
                  description: Tamaño de los datos de la cuenta.
                  example: 82
        executable:
          type: boolean
          description: Indica si la cuenta contiene un programa.
          example: false
        rentEpoch:
          type: integer
          description: >-
            Época en la que esta cuenta deberá pagar el próximo alquiler. Las
            cuentas exentas de alquiler informan el valor máximo de u64.
        space:
          type: integer
          description: Tamaño de los datos de la cuenta en bytes.
          example: 82
        lastUpdatedAt:
          $ref: '#/components/schemas/AccountWritePosition'
      required:
        - lamports
        - owner
        - data
        - executable
        - rentEpoch
        - space
        - lastUpdatedAt
    ErrorResponse:
      type: object
      properties:
        jsonrpc:
          type: string
          description: La versión del protocolo JSON-RPC.
          enum:
            - '2.0'
          example: '2.0'
        error:
          type: object
          properties:
            code:
              type: integer
              description: El código de error.
              example: -32602
            message:
              type: string
              description: El mensaje de error.
            data:
              type: object
              description: Datos adicionales sobre el error.
        id:
          type: string
          description: Identificador que coincide con la solicitud.
          example: '1'
    AccountWritePosition:
      type: object
      description: >-
        Ubicación donde se escribió por última vez el estado devuelto, en la
        posición solicitada o antes de ella.
      properties:
        slot:
          type: integer
          description: >-
            Slot de la última escritura. Un valor de 444959999 con un
            transactionIndex nulo significa que la cuenta no ha cambiado desde
            que comenzó la cobertura del historial.
          example: 444999837
        transactionIndex:
          oneOf:
            - type: integer
            - type: 'null'
          description: >-
            Posición de la transacción que realizó la última escritura. Es nulo
            cuando la escritura ocurrió fuera de una transacción (por ejemplo,
            recompensas de época) o cuando la cuenta no ha cambiado desde que
            comenzó la cobertura del historial.
          example: 700
      required:
        - slot
        - transactionIndex
  securitySchemes:
    ApiKeyQuery:
      type: apiKey
      in: query
      name: api-key
      description: >-
        Tu clave de API de Helius. Puedes obtener una gratis en el
        [panel](https://dashboard.helius.dev/api-keys).

````

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