Zum Hauptinhalt springen
POST
getTokenAccountsByOwnerV2

Übersicht

getTokenAccountsByOwnerV2 ist eine erweiterte Version der Standardmethode getTokenAccountsByOwner. Sie wurde speziell dafür entwickelt, token-Portfolios effizient abzufragen und Wallets mit umfangreichen token-Beständen zu verarbeiten. Diese Methode führt cursorbasierte Paginierung und inkrementelle Aktualisierungen ein.
Neue Funktionen in V2:
  • Cursorbasierte Paginierung: Konfiguriere Limits von 1 bis 10.000 token accounts pro request
  • Inkrementelle Aktualisierungen: Verwende changedSinceSlot, um nur kürzlich geänderte token accounts abzurufen
  • Skalierbarkeit für Portfolios: Verarbeite Wallets mit Tausenden von token accounts effizient
  • Abwärtskompatibilität: Unterstützt alle vorhandenen Parameter und Filter von getTokenAccountsByOwner
  • Optionales withContext: true fügt slot und apiVersion unter result.context hinzu. Lässt du es weg oder verwendest false, werden sie nicht einbezogen
Filter erforderlich: Du musst in deiner Abfrage entweder mint (bestimmter token) oder programId (SPL-Token- oder Token-2022-Programm) angeben. Es wird nicht unterstützt, alle token-Typen eines Eigentümers ohne Filter abzufragen.

Wichtigste Vorteile

Large Portfolios

Verarbeite Wallets mit Tausenden von token accounts ohne Timeouts oder Speicherprobleme

Real-time Tracking

Überwache Portfolioänderungen in Echtzeit und verwende changedSinceSlot für inkrementelle Aktualisierungen

withContext (optional)

Boolescher Wert im Konfigurationsobjekt (params[2]). Nur die Struktur von result ändert sich, nicht die Filter, Limits oder Paginierung. Weggelassen oder false: result.value ist das Array der token accounts. true: result.context plus result.value als Objekt (accounts, paginationKey). Wenn du beide Varianten verarbeitest, verzweige anhand von Array.isArray(result.value).

Best Practices für die Paginierung

Wichtiges Paginierungsverhalten: Das Ende der Paginierung wird nur angezeigt, wenn keine token accounts zurückgegeben werden. Aufgrund der Filterung kann die API weniger Konten als durch dein Limit festgelegt zurückgeben. Setze die Paginierung daher immer fort, bis paginationKey den Wert null hat.

Einfache Portfolioabfrage

Inkrementelle Portfolioaktualisierungen

Unterstützung für token-Programme

Unterstützung für Token-2022: Verwende TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb als programId, um Token-2022-Konten mit Erweiterungen wie Übertragungsgebühren, verzinslichen token und weiteren Funktionen abzufragen.

Migration von getTokenAccountsByOwner

Die Migration ist einfach. Füge deinen vorhandenen Abfragen lediglich Paginierungsparameter hinzu:

Verwandte Methoden

getTokenAccountsByOwner

Ursprüngliche Methode ohne Paginierung

getProgramAccountsV2

V2-Methode für Abfragen von Programmkonten

Request-Parameter

string
erforderlich
Solana-Wallet-Adresse (pubkey) des Kontoeigentümers, dessen token-Bestände abgefragt werden sollen, als Base-58-codierte Zeichenfolge.
string
Bestimmte Mint-Adresse eines Solana-token, um nur Konten für einen bestimmten token oder NFT abzurufen.
string
ID des jeweiligen Solana-token-Programms (normalerweise das SPL-Token-Programm), das die token accounts erstellt hat.
string
Die commitment-Stufe für den request.
  • confirmed
  • finalized
  • processed
number
Der minimale slot, bei dem der request ausgewertet werden kann.
boolean
Bei true wird result.context zurückgegeben (Snapshot-Metadaten: slot, apiVersion). Außerdem werden accounts und paginationKey unter result.value in einem Objekt verschachtelt. Bei false oder wenn der Wert weggelassen wird, ist result.value das Array der token accounts für diese Seite. paginationKey befindet sich dabei unter result. Es gelten dieselben Filter und Limits.
object
Fordere einen Ausschnitt der Kontodaten an.
number
Anzahl der zurückzugebenden Bytes.
number
Byte-Offset, ab dem gelesen werden soll.
string
Codierungsformat für Kontodaten.
  • base58
  • base64
  • base64+zstd
  • jsonParsed
number
Maximale Anzahl der pro request zurückzugebenden token accounts (1–10.000).
string
Base-58-codierter Paginierungs-Cursor zum Abrufen nachfolgender Seiten. Verwende den paginationKey aus der vorherigen response.
number
Gib nur token accounts zurück, die bei oder nach dieser slot-Nummer geändert wurden. Dies ist für inkrementelle Portfolioaktualisierungen nützlich.

Autorisierungen

api-key
string
query
erforderlich

Dein Helius API key. Du kannst ihn kostenlos im Dashboard erhalten.

Body

application/json
jsonrpc
enum<string>
Standard:2.0

Die Version des JSON-RPC-Protokolls.

Verfügbare Optionen:
2.0
Beispiel:

"2.0"

id
string
Standard:1

Ein eindeutiger Bezeichner für den request.

Beispiel:

"1"

method
enum<string>
Standard:getTokenAccountsByOwnerV2

Der Name der aufzurufenden RPC-Methode.

Verfügbare Optionen:
getTokenAccountsByOwnerV2
Beispiel:

"getTokenAccountsByOwnerV2"

params
string · object · object[]

Parameter zum Abfragen paginierter Token-Konten, die einem bestimmten öffentlichen Schlüssel gehören.

Solana-Wallet-Adresse (Pubkey) des Kontoinhabers, dessen Token-Bestände abgefragt werden sollen, als Base-58-codierter String.

Beispiel:

"A1TMhSGzQxMr1TboBKtgixKz1sS6REASMxPo1qsyTSJd"

Antwort

Paginierte Token-Konten wurden erfolgreich nach Inhaber abgerufen.

jsonrpc
enum<string>

Die Version des JSON-RPC-Protokolls.

Verfügbare Optionen:
2.0
Beispiel:

"2.0"

id
string

Bezeichner, der dem request entspricht.

Beispiel:

"1"

result
ohne withContext · object

Paginierte Token-Konten, wenn withContext false ist oder fehlt. Entspricht der bekannten Struktur, bei der die Kontoliste als Array unter result.value steht und nicht unter accounts verschachtelt ist.