Skip to main content
POST
getProgramAccountsV2

Visão Geral

getProgramAccountsV2 é uma versão aprimorada do método padrão getProgramAccounts, projetada para aplicativos que precisam consultar eficientemente grandes conjuntos de contas de programas específicos do Solana. Este método introduz paginação baseada em cursor e capacidades de atualização incremental.
Novos Recursos no V2:
  • Paginação baseada em cursor: Configure limites de 1 a 10.000 contas por requisição
  • Atualizações incrementais: Use changedSinceSlot para buscar apenas contas recentemente modificadas
  • Melhor performance: Evita timeouts e reduz o uso de memória para grandes conjuntos de dados
  • Compatibilidade reversa: Suporta todos os parâmetros existentes de getProgramAccounts
  • Opcional withContext: true adiciona slot e apiVersion sob result.context; omita ou false e eles não serão incluídos

Benefícios Principais

Consultas Escaláveis

Lide com programas com milhões de contas paginando eficientemente pelos resultados

Sincronização em Tempo Real

Use changedSinceSlot para atualizações incrementais e sincronização de dados em tempo real

Evitar Timeouts

Grandes consultas que anteriormente expiravam agora funcionam de forma confiável com paginação

Eficiente em Memória

Processe dados em blocos ao invés de carregar tudo na memória de uma vez

Melhores Práticas de Paginação

Comportamento Importante da Paginação: O fim da paginação é indicado apenas quando nenhuma conta é retornada. A API pode retornar menos contas do que o limite devido ao filtro - sempre continue paginando até que paginationKey seja null.

Padrão Básico de Paginação

Atualizações Incrementais

Dicas de Performance

Tamanho de Limite Ótimo: Para a maioria dos casos de uso, um limite de 1.000-5.000 contas por requisição fornece o melhor equilíbrio de performance e confiabilidade.
  • Comece com limites menores (1000) e aumente com base na performance da sua rede
  • Use a codificação apropriada: jsonParsed para conveniência, base64 para performance
  • Aplique filtros para reduzir o tamanho do conjunto de dados antes da paginação
  • Armazene paginationKey para retomar consultas se interrompidas
  • Monitore os tempos de resposta e ajuste os limites conforme necessário

withContext (opcional)

Boolean no objeto de configuração do programa (params[1]). Apenas a forma de result muda, não filtros, limites ou paginação.

Migração de getProgramAccounts

Migrar do método original é simples - basta substituir o nome do método e adicionar parâmetros de paginação:

Métodos Relacionados

getProgramAccounts

Método original sem paginação

getTokenAccountsByOwnerV2

Método V2 para consultas de contas de token

Parâmetros de Requisição

string
obrigatório
A chave pública do programa Solana (endereço) para consultar contas, como uma string codificada em base-58.
string
O nível de comprometimento para a requisição.
  • confirmed
  • finalized
  • processed
number
O slot mínimo em que a requisição pode ser avaliada.
boolean
Quando true, retorna result.context (metadados do instantâneo: slot, apiVersion) e aninha accounts e paginationKey sob result.value. Quando false ou omitido, esses campos aparecem diretamente em result (por exemplo, result.accounts). Mesmos filtros e limites se aplicam.
string
Formato de codificação para os dados retornados da conta.
  • jsonParsed
  • base58
  • base64
  • base64+zstd
object
Solicitar um trecho dos dados da conta.
number
Número de bytes a serem retornados.
number
Deslocamento em bytes a partir do qual começar a leitura.
number
Número máximo de contas a serem retornadas por requisição (1-10.000).
string
Cursor de paginação codificado em base-58 para buscar páginas subsequentes. Use o paginationKey da resposta anterior.
number
Retorna apenas contas que foram modificadas a partir ou após este número de slot. Útil para atualizações incrementais.
array
Sistema de filtragem poderoso para consultar eficientemente padrões específicos de dados de contas Solana.

Autorizações

api-key
string
query
obrigatório

Sua chave API da Helius. Você pode obter uma gratuitamente no dashboard.

Corpo

application/json
jsonrpc
enum<string>
padrão:2.0
obrigatório

A versão do protocolo JSON-RPC.

Opções disponíveis:
2.0
Exemplo:

"2.0"

id
string
padrão:1
obrigatório

Um identificador único para a solicitação.

Exemplo:

"1"

method
enum<string>
padrão:getProgramAccountsV2
obrigatório

O nome do método RPC a ser invocado.

Opções disponíveis:
getProgramAccountsV2
Exemplo:

"getProgramAccountsV2"

params
(string | object)[]
obrigatório

Parâmetros para o método paginado aprimorado.

A chave pública do programa Solana (endereço) para consultar contas, como uma string codificada em base-58.

Exemplo:

"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"

Resposta

Contas de programa paginadas recuperadas com sucesso.

jsonrpc
enum<string>

A versão do protocolo JSON-RPC.

Opções disponíveis:
2.0
Exemplo:

"2.0"

id
string

Identificador correspondente à solicitação.

Exemplo:

"1"

result
sem withContext · object

Contas de programa paginadas. Os mesmos campos aparecem no resultado quando withContext é falso ou omitido, ou em result.value quando withContext é verdadeiro.