ZahlungenErweiterte Zahlungen

Ausgabeberechtigungen

Solanas Token-Programme unterstützen Delegation – die Gewährung einer Berechtigung an ein anderes Konto, Token von Ihrem Token-Konto bis zu einem festgelegten Limit zu übertragen. Dies ermöglicht Anwendungsfälle wie automatisierte Zahlungen, Treuhanddienste und Zahlungsabwicklung durch Dritte, ohne die Verwahrung Ihrer Mittel aufzugeben.

Wie Delegation funktioniert

Wenn Sie einen Delegierten genehmigen, autorisieren Sie ein bestimmtes Konto, Token in Ihrem Namen zu übertragen:

  • Eigentümer behält Verwahrung: Sie besitzen weiterhin die Token und können diese jederzeit übertragen oder widerrufen
  • Begrenzte Ausgaben: Der Delegierte kann nur bis zum genehmigten Betrag übertragen
  • Ein Delegierter pro Konto: Jedes Token-Konto kann nur einen aktiven Delegierten haben
  • Neue Genehmigung ersetzt alte: Die Genehmigung eines neuen Delegierten widerruft automatisch den vorherigen

Delegation ist nicht-verwahrend. Der Delegierte kann Token bis zum Limit ausgeben, kann aber nicht auf das Konto zugreifen oder es über den genehmigten Betrag hinaus leeren. Der Eigentümer kann jederzeit widerrufen.

Geschäftliche Anwendungsfälle

AnwendungsfallWie Delegation hilft
ZahlungsabwicklerHändler gewährt Abwickler Berechtigung zur Abwicklung von Transaktionen
Automatisierte GehaltsabrechnungTreasury genehmigt Gehaltsabrechnungsdienst zur Auszahlung von Gehältern
TreuhanddiensteKäufer delegiert an Treuhänder für bedingte Freigabe
HandelsplattformenBenutzer genehmigt Börse zur Ausführung von Trades in seinem Namen
KartenausgabeBenutzer genehmigt Kartenaussteller zur Belastung von Einkäufen auf seinem Token-Konto

Genehmigung eines Delegierten

Einem anderen Konten die Berechtigung erteilen, Token von Ihrem Konten auszugeben:

import { getApproveCheckedInstruction } from "@solana-program/token";
// Approve delegate to spend up to 1,000 USDC (6 decimals)
const approveInstruction = getApproveCheckedInstruction({
source: tokenAccountAddress, // Your token account
mint: usdcMintAddress, // USDC mint
delegate: delegateAddress, // Account receiving permission
owner: ownerKeypair, // You (must sign)
amount: 1_000_000_000n, // 1,000 USDC in base units
decimals: 6
});

Parameter:

  • source: Das Token-Konten, das die Berechtigung erteilt
  • delegate: Das Konten, das die Ausgabeberechtigung erhält
  • owner: Aktueller Eigentümer des Token-Kontens (muss die Transaktion signieren)
  • amount: Maximale Anzahl an Token, die der Delegierte übertragen kann
  • decimals: Token-Dezimalstellen zur Validierung (verhindert Dezimalfehler)

Widerruf eines Delegierten

Alle Ausgabeberechtigungen vom aktuellen Delegierten entfernen:

import { getRevokeInstruction } from "@solana-program/token";
const revokeInstruction = getRevokeInstruction({
source: tokenAccountAddress, // Your token account
owner: ownerKeypair // You (must sign)
});

Der Widerruf entfernt alle Delegiertenberechtigungen – es gibt keinen teilweisen Widerruf. Wenn Sie das Limit reduzieren möchten, genehmigen Sie denselben Delegierten mit einem niedrigeren Betrag.

Überprüfung des Delegierungsstatus

Ein Token-Konten abfragen, um den aktuellen Delegierten und die verbleibende Zulage zu sehen:

import { fetchToken } from "@solana-program/token";
const tokenAccount = await fetchToken(rpc, tokenAccountAddress);
if (tokenAccount.data.delegate) {
console.log("Delegate:", tokenAccount.data.delegate);
console.log("Remaining allowance:", tokenAccount.data.delegatedAmount);
} else {
console.log("No delegate set");
}

Übertragung als Delegierter

Wenn Sie als Delegierter handeln, verwenden Sie eine Standardübertragung, signieren jedoch mit dem Keypair des Delegierten anstelle des Eigentümers:

Transfer as Delegate
import { getTransferCheckedInstruction } from "@solana-program/token";
const transferInstruction = getTransferCheckedInstruction({
source: ownerTokenAccount, // The account you have permission to spend from
mint: usdcMintAddress,
destination: recipientTokenAccount,
authority: delegateKeypair, // You (the delegate) sign, not the owner
amount: 100_000_000n, // 100 USDC
decimals: 6
});

Die Übertragung ist erfolgreich, wenn:

  • Das Quellkonten über ausreichendes Guthaben verfügt
  • Der Delegierte die Transaktion signiert

Jede Übertragung reduziert die verbleibende Genehmigung. Wenn die Genehmigung null erreicht, kann der Delegierte keine Token mehr übertragen.

Sicherheitsaspekte

Für Kontoinhaber:

  • Genehmigen Sie nur vertrauenswürdige Delegierte
  • Legen Sie das minimal notwendige Ausgabenlimit fest
  • Widerrufen Sie Delegierungen, wenn sie nicht mehr benötigt werden
  • Überwachen Sie Ihre Konten auf unerwartete Überweisungen

Für Dienstanbieter (Delegierte):

  • Kommunizieren Sie das angeforderte Ausgabenlimit klar an die Nutzer
  • Implementieren Sie eine ordnungsgemäße Schlüsselverwaltung für Ihr Delegiertenkonto
  • Verfolgen Sie den Verbrauch der Genehmigung, um eine erneute Genehmigung anzufordern, bevor die Limits erschöpft sind

Delegierung vs. Verwahrung

AspektDelegierungVollständige Verwahrung
Token-EigentumNutzer behältNutzer überträgt an Verwahrer
AusgabenkontrolleBegrenzt auf genehmigten BetragVollständiger Zugriff auf übertragene Mittel
WiderrufSofort, durch EigentümerErfordert Kooperation des Verwahrers
RisikoexpositionBegrenzt auf genehmigten BetragGesamtes Guthaben
Erforderliches VertrauenBegrenztHoch

Delegierung bietet einen Mittelweg – sie ermöglicht automatisierte Zahlungen und begrenzt gleichzeitig die Risikoexposition auf den genehmigten Betrag.

Verwandte Ressourcen

Is this page helpful?

Inhaltsverzeichnis

Seite bearbeiten

Verwaltet von

© 2026 Solana Foundation.
Alle Rechte vorbehalten.
Verbinden Sie sich