Saltar al contenido principal
POST
getHistoricalTokenAccountsByOwner
getHistoricalTokenAccountsByOwner está en fase beta. Los parámetros, precios, formatos de respuesta y la cobertura de datos pueden cambiar.

Descripción general

getHistoricalTokenAccountsByOwner devuelve las cuentas de SPL Token y Token-2022 que una cartera poseía 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 getTokenAccountsByOwner solo devuelve el estado actual. Con la codificación jsonParsed, las cantidades de tokens usan los decimales de cada mint correspondientes a la posición solicitada. De esta forma, los saldos reflejan lo que la cartera tenía en ese momento. 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. getHistoricalTokenAccountsByOwner está disponible en mainnet para los planes Business y superiores. Durante el periodo beta, cuesta 0 créditos por llamada. Los precios están sujetos a cambios.

Diferencias con getTokenAccountsByOwner

  • El filtro de mint o programa es opcional. Si no aplicas ningún filtro, obtienes todas las cuentas de tokens que poseía la cartera. Para limitar los resultados, establece mint o programId en el objeto de configuración (el tercer parámetro), pero no ambos.
  • El segundo parámetro es el objeto de consulta que selecciona la posición en el historial, no un filtro de mint o programa.
  • result.value es un objeto con accounts y paginationKey, no un arreglo.

Elige una posición en el historial

El segundo parámetro es un objeto de consulta:
  • Omitido o {}: el último slot indexado, limitado por el nivel de compromiso solicitado.
  • { "slot": 445000000 }: el final del slot 445,000,000.
  • { "slot": 445000000, "transactionIndex": 10 }: inmediatamente después de que se ejecutara la transacción con índice 10 en ese slot.
Consulta la guía de cuentas históricas para saber cómo funcionan las posiciones.

Solicitud de ejemplo

Esta solicitud devuelve las cuentas de tokens USDC de la cartera al final del slot 445,000,000:

Pagina por todas las cuentas de tokens

Los resultados se ordenan primero por mint y después por la dirección de la cuenta de tokens. Cada respuesta devuelve value.accounts e value.paginationKey, un cursor con el formato <mint>:<tokenAccount>. Pásalo en la siguiente solicitud hasta que sea null.
Una página puede contener pocos resultados, o incluso estar vacía, y aun así incluir un paginationKey. Solo un paginationKey con valor null indica que llegaste al final.
Incluye siempre un slot explícito cuando pagines. Si lo omites, cada página lee el último slot indexado, por lo que las páginas pueden provenir de distintos momentos.

Interpreta la respuesta

Cada entrada de value.accounts contiene el pubkey de la cuenta de tokens y un objeto account. El objeto de cuenta tiene los mismos campos que getAccountInfo, además de lastUpdatedAt:
  • lastUpdatedAt.slot e lastUpdatedAt.transactionIndex identifican la escritura que produjo este estado.
  • Un lastUpdatedAt.slot de 444,959,999 con un transactionIndex cuyo valor sea null significa que la cuenta de tokens no cambió desde que comenzó la cobertura del historial.
  • context.slot es el último slot que Helius había indexado cuando procesó la solicitud, no el slot que consultaste.

Errores

Métodos relacionados

Historical Accounts Guide

Cómo funcionan las posiciones, la cobertura y lastUpdatedAt para los métodos de cuentas históricas

getHistoricalAccountInfo

Lee una sola cuenta en un slot anterior

getTransactionsForAddress

Encuentra el slot y transactionIndex de las transacciones que quieres inspeccionar

getTokenAccountsByOwnerV2

Pagina por las cuentas de tokens actuales de una cartera

Parámetros de la solicitud

string
requerido
Dirección codificada en Base-58 de la cartera que poseía las cuentas de tokens. Pasa la cartera propietaria, no una cuenta de tokens.
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 compromiso solicitado.
number
Posición de una transacción dentro del slot. Devuelve el estado de la cuenta inmediatamente después de que se ejecutara esa transacción, en lugar del estado al final del slot. Requiere slot.
string
Devuelve solo las cuentas de tokens de este mint. No se puede combinar con programId.
string
Devuelve solo las cuentas de tokens que pertenecen a este programa de tokens. No se puede combinar con mint.
  • TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
  • TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
string
predeterminado:"base64"
Formato de codificación de los datos de la cuenta. Con jsonParsed, las cantidades de tokens usan los decimales del mint correspondientes a la posición solicitada. base58 y binary no son compatibles.
  • base64
  • base64+zstd
  • jsonParsed
object
Devuelve solo una sección de los datos de cada cuenta. Se aplica a las codificaciones base64 y base64+zstd.
number
requerido
Desplazamiento en bytes desde el que se comenzará a leer.
number
requerido
Cantidad de bytes que se devolverán.
number
predeterminado:"5000"
Cantidad máxima de cuentas de tokens que se devolverán (1-5,000).
string
Cursor de paginationKey de la respuesta anterior, con el formato &lt;mint&gt;:&lt;tokenAccount&gt;. Si también estableces mint, el mint del cursor debe coincidir con él.
string
predeterminado:"finalized"
Nivel de compromiso. processed no es compatible.
  • finalized
  • confirmed
number
Slot mínimo en el que se puede evaluar la solicitud.

Autorizaciones

api-key
string
query
requerido

Tu clave de API de Helius. Puedes obtener una gratis en el panel.

Cuerpo

application/json
jsonrpc
enum<string>
predeterminado:2.0
requerido

La versión del protocolo JSON-RPC.

Opciones disponibles:
2.0
Ejemplo:

"2.0"

id
string
predeterminado:1
requerido

Un identificador único para la solicitud.

Ejemplo:

"1"

method
enum<string>
predeterminado:getHistoricalTokenAccountsByOwner
requerido

El nombre del método RPC que se invocará.

Opciones disponibles:
getHistoricalTokenAccountsByOwner
Ejemplo:

"getHistoricalTokenAccountsByOwner"

params
(string | Consulta · object | Configuración · object)[]
requerido

Arreglo que contiene la dirección de la billetera propietaria, un objeto de consulta opcional que selecciona la posición en el historial y un objeto de configuración opcional.

Required array length: 1 - 3 elements

Dirección codificada en base 58 de la billetera a la que pertenecían las cuentas de tokens. Proporciona la billetera propietaria, no una cuenta de tokens.

Ejemplo:

"86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY"

Respuesta

Se recuperó correctamente una página de cuentas históricas de tokens.

jsonrpc
enum<string>

La versión del protocolo JSON-RPC.

Opciones disponibles:
2.0
Ejemplo:

"2.0"

id
string

Identificador que coincide con la solicitud.

Ejemplo:

"1"

result
object