Passer au contenu principal
POST
getHistoricalTokenAccountsByOwner
getHistoricalTokenAccountsByOwner est en version bêta. Les paramètres, la tarification, les formats de réponse et la couverture des données peuvent changer.

Présentation

getHistoricalTokenAccountsByOwner renvoie les comptes SPL Token et Token-2022 qu’un portefeuille possédait à un slot passé, ou immédiatement après une transaction spécifique de ce slot. Il s’agit d’une méthode RPC exclusive à Helius. La méthode standard getTokenAccountsByOwner renvoie uniquement l’état actuel. Avec l’encodage jsonParsed, les montants des jetons utilisent le nombre de décimales de chaque mint à la position demandée. Les soldes reflètent donc ce que le portefeuille détenait à ce moment-là. L’historique est disponible à partir du slot 444,959,999 (7 septembre 2026), qui correspond à l’état au début de l’époque 1030. getHistoricalTokenAccountsByOwner est disponible sur le mainnet pour les offres Business et supérieures. Chaque appel coûte 0 crédit pendant la période bêta. La tarification est susceptible de changer.

Différences avec getTokenAccountsByOwner

  • Le filtre par mint ou par programme est facultatif. Sans filtre, vous obtenez tous les comptes de jetons que le portefeuille possédait. Pour affiner les résultats, définissez soit mint, soit programId dans l’objet de configuration (le troisième paramètre), mais pas les deux.
  • Le deuxième paramètre est l’objet de requête qui sélectionne la position dans l’historique, et non un filtre par mint ou par programme.
  • result.value est un objet contenant accounts et paginationKey, et non un tableau.

Choisir une position dans l’historique

Le deuxième paramètre est un objet de requête :
  • Omis ou {} : le dernier slot indexé, limité au niveau d’engagement demandé.
  • { "slot": 445000000 } : la fin du slot 445,000,000.
  • { "slot": 445000000, "transactionIndex": 10 } : immédiatement après l’exécution de la transaction d’index 10 dans ce slot.
Consultez le guide des comptes historiques pour comprendre le fonctionnement des positions.

Exemple de requête

Cette requête renvoie les comptes de jetons USDC du portefeuille à la fin du slot 445,000,000 :

Parcourir tous les comptes de jetons avec la pagination

Les résultats sont triés d’abord par mint, puis par adresse de compte de jetons. Chaque réponse renvoie value.accounts et value.paginationKey, un curseur au format <mint>:<tokenAccount>. Transmettez-le dans la requête suivante jusqu’à ce qu’il soit égal à null.
Une page peut contenir peu de résultats, voire être vide, tout en incluant un paginationKey. Seul un paginationKey égal à null signifie que vous avez atteint la fin.
Transmettez toujours un slot explicite lorsque vous utilisez la pagination. Si vous l’omettez, chaque page lit le dernier slot indexé. Les pages peuvent donc provenir de différents moments.

Lire la réponse

Chaque entrée de value.accounts contient le pubkey du compte de jetons et un objet account. L’objet du compte possède les mêmes champs que getAccountInfo, ainsi que lastUpdatedAt :
  • lastUpdatedAt.slot et lastUpdatedAt.transactionIndex identifient l’écriture qui a produit cet état.
  • Un lastUpdatedAt.slot égal à 444,959,999 avec un transactionIndex égal à null signifie que le compte de jetons n’a pas changé depuis le début de la couverture historique.
  • context.slot est le dernier slot que Helius avait indexé au moment de traiter la requête, et non le slot interrogé.

Erreurs

Méthodes associées

Historical Accounts Guide

Découvrez le fonctionnement des positions, de la couverture et de lastUpdatedAt pour les méthodes de comptes historiques

getHistoricalAccountInfo

Lisez un compte unique à un slot passé

getTransactionsForAddress

Trouvez le slot et le transactionIndex des transactions que vous souhaitez examiner

getTokenAccountsByOwnerV2

Parcourez les comptes de jetons actuels d’un portefeuille avec la pagination

Paramètres de la requête

string
requis
Adresse encodée en base 58 du portefeuille qui possédait les comptes de jetons. Transmettez le portefeuille propriétaire, et non un compte de jetons.
number
Slot auquel lire l’état. Renvoie le compte tel qu’il était à la fin de ce slot. Le premier slot pris en charge est 444959999, soit l’état au début de l’époque 1030. Si ce paramètre est omis, lit le dernier slot indexé, limité au niveau d’engagement demandé.
number
Position d’une transaction dans le slot. Renvoie l’état du compte immédiatement après l’exécution de cette transaction, plutôt qu’à la fin du slot. Nécessite slot.
string
Renvoie uniquement les comptes de jetons correspondant à ce mint. Ne peut pas être combiné avec programId.
string
Renvoie uniquement les comptes de jetons détenus par ce programme de jetons. Ne peut pas être combiné avec mint.
  • TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA
  • TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb
string
défaut:"base64"
Format d’encodage des données du compte. Avec jsonParsed, les montants des jetons utilisent le nombre de décimales du mint à la position demandée. base58 et binary ne sont pas pris en charge.
  • base64
  • base64+zstd
  • jsonParsed
object
Renvoie uniquement une tranche des données de chaque compte. S’applique aux encodages base64 et base64+zstd.
number
requis
Décalage en octets à partir duquel commencer la lecture.
number
requis
Nombre d’octets à renvoyer.
number
défaut:"5000"
Nombre maximal de comptes de jetons à renvoyer (1-5,000).
string
Curseur provenant du paginationKey de la réponse précédente, au format &lt;mint&gt;:&lt;tokenAccount&gt;. Si vous définissez également mint, le mint du curseur doit lui correspondre.
string
défaut:"finalized"
Niveau d’engagement. processed n’est pas pris en charge.
  • finalized
  • confirmed
number
Slot minimal auquel la requête peut être évaluée.

Autorisations

api-key
string
query
requis

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

Corps

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

Version du protocole JSON-RPC.

Options disponibles:
2.0
Exemple:

"2.0"

id
string
défaut:1
requis

Identifiant unique de la requête.

Exemple:

"1"

method
enum<string>
défaut:getHistoricalTokenAccountsByOwner
requis

Nom de la méthode RPC à appeler.

Options disponibles:
getHistoricalTokenAccountsByOwner
Exemple:

"getHistoricalTokenAccountsByOwner"

params
(string | Requête · object | Configuration · object)[]
requis

Tableau contenant l’adresse du portefeuille propriétaire, un objet de requête facultatif qui sélectionne la position dans l’historique et un objet de configuration facultatif.

Required array length: 1 - 3 elements

Adresse encodée en base 58 du portefeuille qui détenait les comptes de jetons. Transmettez le portefeuille propriétaire, et non un compte de jetons.

Exemple:

"86xCnPeV69n6t3DnyGvkKobf9FdN2H9oiVDdaMpo2MMY"

Réponse

Une page de comptes de jetons historiques a été récupérée.

jsonrpc
enum<string>

Version du protocole JSON-RPC.

Options disponibles:
2.0
Exemple:

"2.0"

id
string

Identifiant correspondant à la requête.

Exemple:

"1"

result
object