Zum Hauptinhalt springen
POST
getProgramAccountsV2

Übersicht

getProgramAccountsV2 ist eine erweiterte Version der Standardmethode getProgramAccounts. Sie eignet sich für Anwendungen, die große Gruppen von Konten bestimmter Solana-Programme effizient abfragen müssen. Diese Methode unterstützt Cursor-basierte Paginierung und inkrementelle Updates.
Neue Funktionen in V2:
  • Cursor-basierte Paginierung: Konfiguriere Limits von 1 bis 10.000 Konten pro request
  • Inkrementelle Updates: Verwende changedSinceSlot, um nur kürzlich geänderte Konten abzurufen
  • Bessere Performance: Verhindert timeouts und reduziert die Speichernutzung bei großen Datensätzen
  • Abwärtskompatibilität: Unterstützt alle vorhandenen Parameter von getProgramAccounts
  • Optionales withContext: true fügt slot und apiVersion unter result.context hinzu. Lässt du es weg oder verwendest false, werden sie nicht eingefügt

Wichtigste Vorteile

Scalable Queries

Verarbeite Programme mit Millionen von Konten, indem du die Ergebnisse effizient seitenweise abrufst

Real-time Sync

Verwende changedSinceSlot für inkrementelle Updates und die Datensynchronisierung in Echtzeit

Prevent Timeouts

Große Abfragen, bei denen zuvor timeouts auftraten, funktionieren dank Paginierung jetzt zuverlässig

Memory Efficient

Verarbeite Daten in Blöcken, statt alles auf einmal in den Speicher zu laden

Best Practices für die Paginierung

Wichtiges Verhalten der Paginierung: Das Ende der Paginierung wird nur signalisiert, wenn keine Konten zurückgegeben werden. Aufgrund von Filtern kann die API weniger Konten als dein Limit zurückgeben. Setze die Paginierung daher immer fort, bis paginationKey den Wert null hat.

Grundlegendes Paginierungsmuster

Inkrementelle Updates

Performance-Tipps

Optimale Größe des Limits: Für die meisten Anwendungsfälle bietet ein Limit von 1.000 bis 5.000 Konten pro request das beste Verhältnis aus Performance und Zuverlässigkeit.
  • Beginne mit kleineren Limits (1000) und erhöhe sie abhängig von der Performance deines Netzwerks
  • Verwende eine geeignete Kodierung: jsonParsed für eine einfache Nutzung, base64 für mehr Performance
  • Wende Filter an, um den Datensatz vor der Paginierung zu verkleinern
  • Speichere paginationKey, um unterbrochene Abfragen fortzusetzen
  • Überwache die response-Zeiten und passe die Limits entsprechend an

withContext (optional)

Boolescher Wert im Konfigurationsobjekt des Programms (params[1]). Nur die Struktur von result ändert sich, nicht die Filter, Limits oder Paginierung.

Migration von getProgramAccounts

Die Migration von der ursprünglichen Methode ist unkompliziert. Ersetze einfach den Methodennamen und füge die Paginierungsparameter hinzu:

Verwandte Methoden

getProgramAccounts

Ursprüngliche Methode ohne Paginierung

getTokenAccountsByOwnerV2

V2-Methode für Abfragen von Token-Konten

Request-Parameter

string
erforderlich
Der öffentliche Schlüssel (die Adresse) des Solana-Programms, dessen Konten abgefragt werden sollen, als base-58-kodierte Zeichenfolge.
string
Das commitment 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 verschachtelt. Bei false oder wenn der Wert weggelassen wird, erscheinen diese Felder direkt in result (zum Beispiel result.accounts). Es gelten dieselben Filter und Limits.
string
Kodierungsformat für die zurückgegebenen Kontodaten.
  • jsonParsed
  • base58
  • base64
  • base64+zstd
object
Fordere einen Ausschnitt der Kontodaten an.
number
Anzahl der zurückzugebenden Bytes.
number
Byte-Offset, ab dem gelesen werden soll.
number
Maximale Anzahl der Konten, die pro request zurückgegeben werden (1–10.000).
string
Base-58-kodierter Paginierungs-Cursor zum Abrufen weiterer Seiten. Verwende den paginationKey aus der vorherigen response.
number
Gibt nur Konten zurück, die bei oder nach dieser slot-Nummer geändert wurden. Nützlich für inkrementelle Updates.
array
Leistungsfähiges Filtersystem, mit dem du bestimmte Muster in Solana-Kontodaten effizient abfragen kannst.

Autorisierungen

api-key
string
query
erforderlich

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

Body

application/json
jsonrpc
enum<string>
Standard:2.0
erforderlich

Die Version des JSON-RPC-Protokolls.

Verfügbare Optionen:
2.0
Beispiel:

"2.0"

id
string
Standard:1
erforderlich

Ein eindeutiger Bezeichner für den request.

Beispiel:

"1"

method
enum<string>
Standard:getProgramAccountsV2
erforderlich

Der Name der aufzurufenden RPC-Methode.

Verfügbare Optionen:
getProgramAccountsV2
Beispiel:

"getProgramAccountsV2"

params
(string | object)[]
erforderlich

Parameter für die erweiterte paginierte Methode.

Der öffentliche Schlüssel des Solana-Programms (Adresse), dessen Konten abgefragt werden sollen, als Base-58-codierter String.

Beispiel:

"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"

Antwort

Paginierte Programmkonten wurden erfolgreich 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 Programmkonten. Wenn withContext false ist oder fehlt, erscheinen dieselben Felder unter result. Wenn withContext true ist, stehen sie unter result.value.