Skip to main content
POST
getProgramAccountsV2

Vue d’ensemble

getProgramAccountsV2 est une version améliorée de la méthode standard getProgramAccounts, conçue pour les applications qui ont besoin de consulter efficacement de grands ensembles de comptes appartenant à des programmes Solana spécifiques. Cette méthode introduit des capacités de pagination par curseur et de mise à jour incrémentielle.
Nouvelles fonctionnalités dans la version V2 :
  • Pagination par curseur : Configurez des limites de 1 à 10 000 comptes par requête
  • Mises à jour incrémentielles : Utilisez changedSinceSlot pour récupérer uniquement les comptes récemment modifiés
  • Meilleure performance : Évite les dépassements de délai et réduit l’utilisation de la mémoire pour les grands ensembles de données
  • Compatibilité ascendante : Prend en charge tous les paramètres existants getProgramAccounts
  • Optionnel withContext : true ajoute slot et apiVersion sous result.context; omettez ou false et ils ne sont pas inclus

Principaux avantages

Requêtes évolutives

Gérez des programmes avec des millions de comptes en paginant efficacement les résultats

Synchronisation en temps réel

Utilisez changedSinceSlot pour les mises à jour incrémentielles et la synchronisation des données en temps réel

Prévenir les dépassements de délai

Les grandes requêtes qui expirent désormais fonctionnent de manière fiable avec la pagination

Efficacité de la mémoire

Traitez les données par morceaux au lieu de tout charger en mémoire d’un seul coup

Bonnes pratiques de pagination

Comportement important de la pagination : La fin de la pagination n’est indiquée que lorsque aucun compte n’est retourné. L’API peut retourner moins de comptes que votre limite en raison du filtrage - continuez toujours la pagination jusqu’à ce que paginationKey soit null.

Modèle de pagination de base

Mises à jour incrémentielles

Conseils de performance

Taille limite optimale : Pour la plupart des cas d’utilisation, une limite de 1 000 à 5 000 comptes par requête offre le meilleur équilibre entre performance et fiabilité.
  • Commencez avec des limites plus petites (1000) et augmentez selon les performances de votre réseau
  • Utilisez un encodage approprié : jsonParsed pour la commodité, base64 pour la performance
  • Appliquez des filtres pour réduire la taille du jeu de données avant la pagination
  • Stockez paginationKey pour reprendre les requêtes en cas d’interruption
  • Surveillez les temps de réponse et ajustez les limites en conséquence

withContext (optionnel)

Booléen sur l’objet de configuration du programme (params[1]). Seule la forme de result change, pas les filtres, limites ou pagination.

Migration depuis getProgramAccounts

La migration depuis la méthode originale est simple - remplacez simplement le nom de la méthode et ajoutez des paramètres de pagination :

Méthodes connexes

getProgramAccounts

Méthode originale sans pagination

getTokenAccountsByOwnerV2

Méthode V2 pour les requêtes de comptes de jetons

Paramètres de la requête

string
requis
La clé publique (adresse) du programme Solana pour interroger les comptes, en tant que chaîne encodée en base-58.
string
Le niveau d’engagement pour la requête.
  • confirmed
  • finalized
  • processed
number
Le slot minimum auquel la requête peut être évaluée.
boolean
Lorsque true, retourne result.context (métadonnées instantanées : slot, apiVersion) et imbrique accounts et paginationKey sous result.value. Lorsque false ou omis, ces champs apparaissent directement sur result (par exemple result.accounts). Les mêmes filtres et limites s’appliquent.
string
Format d’encodage pour les données de compte retournées.
  • jsonParsed
  • base58
  • base64
  • base64+zstd
object
Demander une tranche des données du compte.
number
Nombre d’octets à retourner.
number
Décalage en octets à partir duquel commencer la lecture.
number
Nombre maximum de comptes à retourner par requête (1-10 000).
string
Curseur de pagination encodé en base-58 pour récupérer les pages suivantes. Utilisez le paginationKey de la réponse précédente.
number
Ne retournez que les comptes modifiés à partir de ce numéro de slot. Utile pour les mises à jour incrémentielles.
array
Système de filtrage puissant pour interroger efficacement des modèles de données de comptes Solana spécifiques.

Autorisations

api-key
string
query
requis

Votre clé API Helius. Vous pouvez en obtenir une gratuitement dans le dashboard.

Corps

application/json
jsonrpc
enum<string>
défaut:2.0
requis

La version du protocole JSON-RPC.

Options disponibles:
2.0
Exemple:

"2.0"

id
string
défaut:1
requis

Un identifiant unique pour la requête.

Exemple:

"1"

method
enum<string>
défaut:getProgramAccountsV2
requis

Le nom de la méthode RPC à invoquer.

Options disponibles:
getProgramAccountsV2
Exemple:

"getProgramAccountsV2"

params
(string | object)[]
requis

Paramètres pour la méthode paginée améliorée.

La clé publique du programme Solana (adresse) pour interroger les comptes, sous forme de chaîne encodée en base-58.

Exemple:

"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"

Réponse

Program accounts paginés récupérés avec succès.

jsonrpc
enum<string>

La version du protocole JSON-RPC.

Options disponibles:
2.0
Exemple:

"2.0"

id
string

Identifiant correspondant à la requête.

Exemple:

"1"

result
sans withContext · object

Comptes de programme paginés. Les mêmes champs apparaissent dans le résultat lorsque withContext est faux ou omis, ou sous result.value lorsque withContext est vrai.