Skip to main content
POST
getTokenAccountsByOwnerV2

Vue d’ensemble

getTokenAccountsByOwnerV2 est une version améliorée de la méthode standard getTokenAccountsByOwner, spécifiquement conçue pour interroger efficacement les portefeuilles de tokens et gérer les portefeuilles avec de vastes avoirs en tokens. Cette méthode introduit la pagination basée sur des curseurs et des capacités de mise à jour incrémentielle.
Nouvelles fonctionnalités dans V2 :
  • Pagination basée sur des curseurs : Configurez des limites de 1 à 10 000 comptes de tokens par requête
  • Mises à jour incrémentielles : Utilisez changedSinceSlot pour récupérer uniquement les comptes de tokens récemment modifiés
  • Évolutivité des portefeuilles : Gérez efficacement les portefeuilles avec des milliers de comptes de tokens
  • Compatibilité ascendante : Prend en charge tous les paramètres et filtres existants de getTokenAccountsByOwner
  • withContext facultatif : true ajoute slot et apiVersion sous result.context; omettre ou false et ils ne sont pas inclus
Exigence de filtre : Vous devez fournir soit un mint (token spécifique) soit un programId (programme SPL Token ou Token-2022) dans votre requête. Interroger tous les types de tokens pour un propriétaire sans filtre n’est pas pris en charge.

Principaux avantages

Grands portefeuilles

Gérez les portefeuilles avec des milliers de comptes de tokens sans délais ou problèmes de mémoire

Suivi en temps réel

Surveillez les changements de portefeuille en temps réel en utilisant changedSinceSlot pour les mises à jour incrémentielles

withContext (facultatif)

Booléen sur l’objet de configuration (params[2]). Seule la structure de result change, pas les filtres, limites ou pagination. Omit ou false : result.value est le tableau des comptes de tokens. true : result.context plus result.value en tant qu’objet (accounts, paginationKey). Si vous gérez les deux, branchez-vous sur Array.isArray(result.value).

Meilleures pratiques de pagination

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

Requête de portefeuille de base

Mises à jour incrémentielles du portefeuille

Support de programme de token

Support Token-2022 : Utilisez TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb comme programId pour interroger les comptes Token-2022 avec des extensions comme les frais de transfert, les tokens rapportant des intérêts, et plus.

Migration depuis getTokenAccountsByOwner

La migration est simple - ajoutez simplement des paramètres de pagination à vos requêtes existantes :

Méthodes associées

getTokenAccountsByOwner

Méthode originale sans pagination

getProgramAccountsV2

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

Paramètres de requête

string
requis
Adresse du portefeuille Solana (pubkey) du propriétaire du compte pour interroger les avoirs en tokens, sous forme de chaîne encodée en base-58.
string
Adresse de frappage de token Solana spécifique pour récupérer uniquement les comptes pour un token ou NFT particulier.
string
ID de programme de token Solana spécifique (typiquement programme SPL Token) qui a créé les comptes de tokens.
string
Le niveau d’engagement pour la requête.
  • confirmed
  • finalized
  • processed
number
Le slot minimum où la requête peut être évaluée.
boolean
Quand true, retourne result.context (métadonnées de snapshot : slot, apiVersion) et imbrique accounts et paginationKey sous result.value comme un objet. Quand false ou omis, result.value est le tableau de comptes de tokens pour cette page, avec paginationKey sur result. Les mêmes filtres et limites s’appliquent.
object
Demander une tranche des données du compte.
number
Nombre d’octets à retourner.
number
Décalage d’octet à partir duquel commencer la lecture.
string
Format d’encodage pour les données du compte.
  • base58
  • base64
  • base64+zstd
  • jsonParsed
number
Nombre maximal de comptes de tokens à retourner par requête (1-10 000).
string
Curseur de pagination encodé en base-58 pour récupérer les pages suivantes. Utilisez la paginationKey de la réponse précédente.
number
Ne retourner que les comptes de tokens qui ont été modifiés à ou après ce numéro de slot. Utile pour les mises à jour incrémentielles du portefeuille.

Autorisations

api-key
string
query
requis

Votre clé API Helius. Vous pouvez en obtenir une gratuitement sur le tableau de bord.

Corps

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

La version du protocole JSON-RPC.

Options disponibles:
2.0
Exemple:

"2.0"

id
string
défaut:1

Un identifiant unique pour la demande.

Exemple:

"1"

method
enum<string>
défaut:getTokenAccountsByOwnerV2

Le nom de la méthode RPC à invoquer.

Options disponibles:
getTokenAccountsByOwnerV2
Exemple:

"getTokenAccountsByOwnerV2"

params
string · object · object[]

Paramètres pour interroger les comptes de jetons paginés détenus par une clé publique spécifique.

Adresse du portefeuille Solana (clé publique) du propriétaire du compte pour interroger les avoirs en jetons, sous forme de chaîne encodée en base-58.

Exemple:

"A1TMhSGzQxMr1TboBKtgixKz1sS6REASMxPo1qsyTSJd"

Réponse

Récupération réussie des comptes de jetons paginés par propriétaire.

jsonrpc
enum<string>

La version du protocole JSON-RPC.

Options disponibles:
2.0
Exemple:

"2.0"

id
string

Identifiant correspondant à la demande.

Exemple:

"1"

result
without withContext · object

Comptes de jetons paginés lorsque withContext est faux ou omis. Correspond à la forme familière où la liste des comptes est result.value sous forme de tableau (non imbriqué sous accounts).