Zum Hauptinhalt springen
Die RPC-Methode getTokenAccountBalance gibt den token-Bestand eines bestimmten SPL Token Account zurück. Dies ist unverzichtbar für Anwendungen, die die Menge eines bestimmten token in einem Token Account anzeigen oder überprüfen müssen.

Häufige Anwendungsfälle

  • token-Bestände von Benutzern anzeigen: Zeige Benutzern, wie viel eines bestimmten token sie in ihrer Wallet besitzen (zugehörige Token Accounts).
  • token-Verfügbarkeit prüfen: Prüfe vor einer Übertragung oder einem anderen Vorgang, ob ein Token Account über ausreichend Guthaben verfügt.
  • Portfolio-Tracking: Fasse die token-Bestände eines Benutzers aus verschiedenen Token Accounts zusammen.
  • Interaktionen mit Smart Contracts: Smart Contracts können token-Bestände als Teil ihrer Logik abfragen. On-Chain-Programme greifen jedoch normalerweise direkt über die Account-Informationen auf diese Daten zu.

Request-Parameter

  1. Öffentlicher Schlüssel des Token Account (string, erforderlich): Der Base58-codierte öffentliche Schlüssel des SPL Token Account, den du abfragen möchtest.
  2. Konfigurationsobjekt (object, optional): Ein optionales Objekt, das das folgende Feld enthalten kann:
    • commitment (string, optional): Gibt den commitment-Level für die Abfrage an. Wenn du ihn weglässt, wird das standardmäßige commitment des RPC node verwendet (normalerweise finalized).

Response-Struktur

Das Feld result in der JSON-RPC-response enthält ein Objekt mit den Feldern context und value. Das Objekt value enthält die Informationen zum Bestand:
  • amount (string): Der Rohbestand des Token Account als String. Dies ist eine Ganzzahl, die die kleinste Einheit des token darstellt. Hat ein token beispielsweise 6 Dezimalstellen, entspricht der Betrag „1000000“ einem token.
  • decimals (u8): Die Anzahl der für diesen token-Typ definierten Dezimalstellen, die durch seine Mint festgelegt wird.
  • uiAmount (number | null): Der unter Berücksichtigung von decimals als Gleitkommazahl formatierte Bestand. Dieses Feld kann in manchen Kontexten null oder zugunsten von uiAmountString veraltet sein.
  • uiAmountString (string): Der unter Berücksichtigung von decimals als String formatierte Bestand. Dieses Format wird für die Anzeige oft bevorzugt, um mögliche Ungenauigkeiten bei Gleitkommazahlen zu vermeiden.
Beispiel-response:

Codebeispiele

Tipps für Entwickler

  • Token Account vs. Mint Account vs. Owner Account: Stelle sicher, dass du den öffentlichen Schlüssel des SPL Token Account angibst, nicht die Mint-Adresse des token oder die Wallet-Adresse des Besitzers. Token Accounts eines Besitzers rufst du normalerweise mit getTokenAccountsByOwner ab.
  • Dezimalstellen: Verwende immer das Feld decimals, um amount korrekt zu interpretieren. Für die Anzeige ist uiAmountString im Allgemeinen sicherer als uiAmount, da es Probleme mit der Gleitkommagenauigkeit vermeidet.
  • Nicht vorhandene Accounts: Wenn der angegebene öffentliche Schlüssel keinem vorhandenen Token Account entspricht, kann das Verhalten je nach RPC-Anbieter oder Bibliothek leicht variieren. Häufig ist value in der response jedoch null oder es wird ein Fehler ausgelöst. Das JavaScript-Beispiel enthält eine einfache Prüfung auf balance.value.
  • Commitment-Level: Verschiedene commitment-Level können beeinflussen, wie schnell du Änderungen am Bestand siehst. Das gilt besonders für sehr aktuelle Transaktionen. finalized ist am sichersten, hat aber die höchste Latenz.
Dieser Leitfaden hilft dir, SPL-token-Bestände mit der Methode getTokenAccountBalance korrekt abzurufen und zu interpretieren.

Verwandte Methoden

getTokenAccountsByOwner

Rufe alle Token Accounts eines Besitzers ab

getTokenSupply

Rufe den Gesamtbestand einer token-Mint ab