Skip to main content
POST
getProgramAccountsV2

Descripción general

getProgramAccountsV2 es una versión mejorada del método estándar getProgramAccounts, diseñada para aplicaciones que necesitan consultar de manera eficiente grandes conjuntos de cuentas pertenecientes a programas específicos de Solana. Este método incorpora paginación basada en cursor y funciones de actualización incremental.
Nuevas funciones de V2:
  • Paginación basada en cursor: Configura límites de 1 a 10 000 cuentas por solicitud
  • Actualizaciones incrementales: Usa changedSinceSlot para obtener solo las cuentas modificadas recientemente
  • Mejor rendimiento: Evita tiempos de espera agotados y reduce el uso de memoria con conjuntos de datos grandes
  • Compatibilidad con versiones anteriores: Admite todos los parámetros existentes de getProgramAccounts
  • withContext opcional: true agrega slot y apiVersion dentro de result.context; omítelo o usa false para que no se incluyan

Beneficios principales

Consultas escalables

Gestiona programas con millones de cuentas mediante una paginación eficiente de los resultados

Sincronización en tiempo real

Usa changedSinceSlot para realizar actualizaciones incrementales y sincronizar datos en tiempo real

Evita tiempos de espera agotados

Las consultas grandes que antes agotaban el tiempo de espera ahora funcionan de manera confiable con la paginación

Uso eficiente de la memoria

Procesa los datos en bloques en lugar de cargar todo en la memoria de una sola vez

Prácticas recomendadas de paginación

Comportamiento importante de la paginación: El final de la paginación solo se indica cuando no se devuelve ninguna cuenta. La API puede devolver menos cuentas que el límite debido al filtrado. Continúa siempre la paginación hasta que paginationKey sea null.

Patrón básico de paginación

Actualizaciones incrementales

Consejos de rendimiento

Tamaño óptimo del límite: Para la mayoría de los casos de uso, un límite de entre 1000 y 5000 cuentas por solicitud ofrece el mejor equilibrio entre rendimiento y confiabilidad.
  • Comienza con límites más pequeños (1000) y auméntalos según el rendimiento de tu red
  • Usa la codificación adecuada: jsonParsed para mayor comodidad, base64 para mayor rendimiento
  • Aplica filtros para reducir el tamaño del conjunto de datos antes de la paginación
  • Guarda paginationKey para reanudar las consultas si se interrumpen
  • Supervisa los tiempos de respuesta y ajusta los límites según corresponda

withContext (opcional)

Valor booleano en el objeto de configuración del programa (params[1]). Solo cambia la estructura de result, no los filtros, los límites ni la paginación.

Migración desde getProgramAccounts

Migrar desde el método original es sencillo: solo reemplaza el nombre del método y agrega los parámetros de paginación:

Métodos relacionados

getProgramAccounts

Método original sin paginación

getTokenAccountsByOwnerV2

Método V2 para consultas de cuentas de tokens

Parámetros de la solicitud

string
requerido
La clave pública (dirección) del programa de Solana cuyas cuentas quieres consultar, como una cadena codificada en base 58.
string
El nivel de compromiso de la solicitud.
  • confirmed
  • finalized
  • processed
number
El slot mínimo en el que se puede evaluar la solicitud.
boolean
Cuando es true, devuelve result.context (metadatos de la instantánea: slot, apiVersion) y anida accounts y paginationKey dentro de result.value. Cuando es false o se omite, esos campos aparecen directamente en result (por ejemplo, result.accounts). Se aplican los mismos filtros y límites.
string
Formato de codificación de los datos de cuenta devueltos.
  • jsonParsed
  • base58
  • base64
  • base64+zstd
object
Solicita una sección de los datos de la cuenta.
number
Número de bytes que se devolverán.
number
Desplazamiento en bytes desde el que se comenzará a leer.
number
Número máximo de cuentas que se devolverán por solicitud (1-10 000).
string
Cursor de paginación codificado en base 58 para obtener las páginas siguientes. Usa el paginationKey de la respuesta anterior.
number
Devuelve únicamente las cuentas modificadas durante este número de slot o después. Es útil para las actualizaciones incrementales.
array
Potente sistema de filtrado para consultar de manera eficiente patrones específicos de datos de cuentas de Solana.

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:getProgramAccountsV2
requerido

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

Opciones disponibles:
getProgramAccountsV2
Ejemplo:

"getProgramAccountsV2"

params
(string | object)[]
requerido

Parámetros del método paginado mejorado.

La clave pública (dirección) del programa de Solana cuyas cuentas se consultarán, como una cadena codificada en base 58.

Ejemplo:

"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"

Respuesta

Las cuentas de programas paginadas se recuperaron correctamente.

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
sin withContext · object

Cuentas de programas paginadas. Los mismos campos aparecen en result cuando withContext es false o se omite, o en result.value cuando withContext es true.