Skip to main content
POST
getProgramAccountsV2

Übersicht

getProgramAccountsV2 ist eine erweiterte Version der standardmäßigen getProgramAccounts-Methode, die für Anwendungen entwickelt wurde, die effizient große Sätze von Konten abfragen müssen, die bestimmten Solana-Programmen gehören. Diese Methode führt eine cursorbasierte Paginierung und inkrementelle Aktualisierungsfunktionen ein.
Neue Funktionen in V2:
  • Cursorbasierte Paginierung: Konfigurieren Sie Limits von 1 bis 10.000 Konten pro Anfrage
  • Inkrementelle Updates: Verwenden Sie changedSinceSlot, um nur kürzlich geänderte Konten abzurufen
  • Bessere Leistung: Verhindert Zeitüberschreitungen und reduziert den Speicherbedarf bei großen Datensätzen
  • Rückwärtskompatibilität: Unterstützt alle vorhandenen getProgramAccounts-Parameter
  • Optionale withContext: true fügt slot und apiVersion unter result.context hinzu; weglassen oder false und sie sind nicht enthalten

Hauptvorteile

Skalierbare Abfragen

Verarbeiten Sie Programme mit Millionen von Konten, indem Sie effizient durch die Ergebnisse paginieren

Echtzeit-Synchronisierung

Verwenden Sie changedSinceSlot für inkrementelle Updates und Echtzeit-Datensynchronisierung

Vermeidung von Zeitüberschreitungen

Große Abfragen, die zuvor Zeitüberschreitungen verursacht haben, funktionieren jetzt zuverlässig mit Paginierung

Speichereffizient

Verarbeiten Sie Daten in Teilen statt alles auf einmal in den Speicher zu laden

Paginierungs-Best Practices

Wichtiges Paginierungsverhalten: Das Ende der Paginierung wird nur angezeigt, wenn keine Konten zurückgegeben werden. Die API kann weniger Konten als Ihr Limit zurückgeben aufgrund von Filterung - setzen Sie die Paginierung immer fort, bis paginationKey null ist.

Grundlegendes Paginationsmuster

Inkrementelle Updates

Leistungstipps

Optimale Limitgröße: Für die meisten Anwendungsfälle bietet ein Limit von 1.000-5.000 Konten pro Anfrage die beste Balance zwischen Leistung und Zuverlässigkeit.
  • Mit kleineren Limits beginnen (1000) und basierend auf der Netzwerkleistung erhöhen
  • Geeignete Codierung verwenden: jsonParsed für Bequemlichkeit, base64 für Leistung
  • Filter anwenden, um die Datensatzgröße vor der Paginierung zu reduzieren
  • paginationKey speichern, um Abfragen bei Unterbrechung fortzusetzen
  • Antwortzeiten überwachen und Limits entsprechend anpassen

withContext (optional)

Boolean im Programmkonfigurationsobjekt (params[1]). Nur die Form von result ändert sich, nicht die Filter, Limits oder Paginierungen.

Migration von getProgramAccounts

Die Migration von der ursprünglichen Methode ist einfach - ersetzen Sie einfach den Methodennamen und fügen Sie Paginierungsparameter hinzu:

Verwandte Methoden

getProgramAccounts

Ursprüngliche Methode ohne Paginierung

getTokenAccountsByOwnerV2

V2-Methode für Token-Kontoanfragen

Anforderungsparameter

string
erforderlich
Der öffentliche Schlüssel (Adresse) des Solana-Programms zur Abfrage von Konten, als base-58 codierter String.
string
Das Commitment-Level für die Anfrage.
  • confirmed
  • finalized
  • processed
number
Der minimale Slot, bei dem die Anfrage ausgewertet werden kann.
boolean
Wenn true, wird result.context (Snapshot-Metadaten: slot, apiVersion) zurückgegeben und accounts und paginationKey werden unter result.value verschachtelt. Wenn false oder weggelassen, erscheinen diese Felder direkt auf result (zum Beispiel result.accounts). Dieselben Filter und Limits gelten.
string
Das Codierungsformat für die zurückgegebenen Kontodaten.
  • jsonParsed
  • base58
  • base64
  • base64+zstd
object
Fordern Sie einen Ausschnitt der Kontodaten an.
number
Anzahl der zurückzugebenden Byte.
number
Byte-Offset, von dem aus das Lesen beginnen soll.
number
Maximale Anzahl von Konten, die pro Anfrage zurückgegeben werden (1-10.000).
string
Base-58 codierter Paginierungs-Cursor zum Abrufen nachfolgender Seiten. Verwenden Sie den paginationKey aus der vorherigen Antwort.
number
Nur Konten zurückgeben, die bei oder nach dieser Slot-Nummer geändert wurden. Nützlich für inkrementelle Updates.
array
Leistungsfähiges Filtersystem zur effizienten Abfrage spezifischer Solana-Kontodatensätze.

Autorisierungen

api-key
string
query
erforderlich

Ihr Helius-API-Schlüssel. Sie können einen kostenlos im Dashboard erhalten.

Body

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

Die JSON-RPC-Protokollversion.

Verfügbare Optionen:
2.0
Beispiel:

"2.0"

id
string
Standard:1
erforderlich

Ein eindeutiger Bezeichner für die Anfrage.

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 Solana-Programm-Public-Key (Adresse), für den Konten abgefragt werden sollen, als base-58 kodierte Zeichenkette.

Beispiel:

"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"

Antwort

Erfolgreich paginierte Programmkonten abgerufen.

jsonrpc
enum<string>

Die JSON-RPC-Protokollversion.

Verfügbare Optionen:
2.0
Beispiel:

"2.0"

id
string

Kennung, die der Anfrage entspricht.

Beispiel:

"1"

result
ohne withContext · object

Paginierte Programmkonten. Dieselben Felder erscheinen im Ergebnis, wenn withContext falsch oder weggelassen wird, oder unter result.value, wenn withContext wahr ist.