Zum Hauptinhalt springen
Mit der RPC-Methode getMinimumBalanceForRentExemption kannst du das Mindestguthaben in Lamports berechnen, das ein Konto mit einer bestimmten Datengröße benötigt, um von der Speichergebühr befreit zu sein. Bei Solana müssen Konten ein Mindestguthaben aufweisen, um die langfristigen Speicherkosten zu decken. Dieses Konzept wird als Rent bezeichnet. Konten mit einem Guthaben, das den Rent-Zahlungen für zwei Jahre entspricht, gelten als „von der Rent befreit“. Ihr Guthaben wird nicht durch Rent aufgebraucht.

Häufige Anwendungsfälle

  • Kontoerstellung: Bevor du ein neues Konto erstellst, etwa ein neues Token-Konto, eine von einem Programm abgeleitete Adresse oder einen benutzerdefinierten Datenspeicher, kannst du mit dieser Methode die erforderliche Anzahl an Lamports ermitteln. So ist das Konto von Anfang an von der Rent befreit und wird nicht automatisch gelöscht, wenn sein Guthaben zu niedrig wird.
  • Dynamische Kontogröße: Wenn deine Anwendung Konten verwendet, deren Daten wachsen können, kannst du mit dieser Methode regelmäßig prüfen, ob zusätzliche Lamports erforderlich sind, um die Befreiung von der Rent aufrechtzuerhalten.
  • Kostenschätzung: Schätze die SOL-Kosten für die Bereitstellung von Programmen oder die Erstellung von Datenkonten unterschiedlicher Größe.
  • Integration in Wallets und SDKs: Wallets und SDKs verwenden diese Methode, um neue Konten mit ausreichend Guthaben auszustatten.

Request-Parameter

  1. dataLength (usize, erforderlich): Die Länge der Kontodaten in Byte. Sie ist der wichtigste Faktor für die Bestimmung des Mindestguthabens zur Befreiung von der Rent.
    • Beispiel: 165 (für ein standardmäßiges SPL-Token-Konto).
  2. commitment (object, optional): Gibt die Stufe des commitment für die Abfrage an. Wenn du den Parameter weglässt, wird das standardmäßige commitment des RPC node verwendet.
    • Felder:
      • commitment (Zeichenfolge): z. B. "finalized", "confirmed" oder "processed".

Response-Struktur

Das Feld result der JSON-RPC-response enthält eine u64 (vorzeichenlose 64-Bit-Ganzzahl). Sie gibt die Mindestanzahl an Lamports an, die ein Konto mit dem angegebenen dataLength benötigt, um von der Rent befreit zu sein.

Beispiele

1. Rent-Befreiung für ein standardmäßiges Token-Konto abrufen (165 Byte)

Dieses Beispiel fragt das Mindestguthaben ab, das ein typisches SPL-Token-Konto mit einer Datengröße von 165 Byte benötigt, um von der Rent befreit zu sein.

2. Rent-Befreiung für ein Konto mit null Byte abrufen

Dies zeigt die grundlegende Rent-Befreiung für ein Konto ohne Daten. Sie entspricht häufig dem absoluten Minimum für ein Konto.

Tipps für Entwickler

  • Rent hängt von der Datengröße ab: Je größer die Datenmenge des Kontos ist, desto höher ist das Mindestguthaben für die Rent-Befreiung.
  • Netzwerkparameter: Die zugrunde liegenden Rent-Kosten (Lamports pro Byte-Jahr) sind ein Netzwerkparameter, der theoretisch durch eine Abstimmung im cluster geändert werden kann. Das kommt jedoch selten vor. Die Methode getMinimumBalanceForRentExemption gibt immer den aktuellen Wert basierend auf dem Zustand des cluster zurück.
  • Lamports und SOL: Die response wird in Lamports angegeben. Beachte: 1 SOL = 1.000.000.000 Lamports.
  • Wichtig für die langfristige Speicherung: Damit Daten langfristig auf der Solana-Blockchain erhalten bleiben, müssen die zugehörigen Konten von der Rent befreit sein.
Dieser Leitfaden hilft dir, die RPC-Methode getMinimumBalanceForRentExemption zu verstehen und zu verwenden, damit du die Rent für Konten in deinen Solana-Anwendungen effektiv verwalten kannst.