Solana ermöglicht sofortige, globale Token-Überweisungen mit Gebühren unter 0,001 $. Egal, ob Sie grenzüberschreitende Überweisungen, Gehaltsauszahlungen oder Treasury- Operationen aufbauen – eine grundlegende Stablecoin-Zahlung wird in unter einer Sekunde abgewickelt und kostet einen Bruchteil eines Cents.
So funktioniert es
Eine Zahlung verschiebt Stablecoins vom Token-Konto des Absenders zum Token-Konto des Empfängers. Wenn der Empfänger diesen Token zum ersten Mal erhält, kann sein Token-Konto als Teil derselben Transaktion erstellt werden.
Siehe Wie Zahlungen auf Solana funktionieren für grundlegende Zahlungskonzepte.
Der splToken-Helfer aus
@solana/client übernimmt
automatisch die ATA- Ableitung, Dezimalkonvertierung und Transaktionserstellung.
Dies ist ideal für einzelne Zahlungsüberweisungen.
Die folgenden Schritte zeigen den grundlegenden Ablauf. Siehe die Demo für vollständigen ausführbaren Code.
Token-Helfer erstellen
Konfigurieren Sie den splToken()-Helfer, indem Sie client.splToken() mit der
Mint- Adresse aufrufen. Der Helfer bietet Methoden für gängige
Token-Operationen.
Durch Setzen von tokenProgram: "auto" wird automatisch erkannt, ob das
Mint-Konto dem Token- oder Token-2022-Programm gehört.
Zahlung senden
Verwenden Sie sendTransfer(), um Token zwischen Wallets zu übertragen. Die
Methode übernimmt:
- ATA-Auflösung: Leitet automatisch Associated Token Accounts (ATAs) für den Absender und Empfänger ab. Wenn das ATA des Empfängers nicht existiert, wird die Anweisung zum Erstellen des Kontos automatisch zur selben Transaktion hinzugefügt.
- Dezimalkonvertierung: Akzeptiert Token-Beträge und konvertiert automatisch in Basiseinheiten basierend auf den Dezimalstellen des Mints (z. B. 0,25 Token -> 250000 Basis- einheiten, wenn der Mint 6 Dezimalstellen hat)
- Transaktionserstellung: Erstellt, signiert und sendet die Transaktion mit der Überweisungsanweisung
const client = createClient({endpoint: "http://localhost:8899",websocketEndpoint: "ws://localhost:8900",commitment: "confirmed"});const splToken = client.splToken({mint: mint.address,tokenProgram: "auto"});const signature = await splToken.sendTransfer({amount: 0.25,authority: sender,destinationOwner: recipient.address});
Guthaben überprüfen
Nachdem die Übertragung abgeschlossen ist, verwenden Sie fetchBalance(), um
die Token-Guthaben zu überprüfen. Diese Methode nimmt eine Wallet-Adresse
entgegen und leitet automatisch das entsprechende ATA ab, um das Guthaben
abzurufen.
const client = createClient({endpoint: "http://localhost:8899",websocketEndpoint: "ws://localhost:8900",commitment: "confirmed"});const splToken = client.splToken({mint: mint.address,tokenProgram: "auto"});const signature = await splToken.sendTransfer({amount: 0.25,authority: sender,destinationOwner: recipient.address});const senderBalance = await splToken.fetchBalance(sender.address);const recipientBalance = await splToken.fetchBalance(recipient.address);
Demo
// Generate keypairs for sender and recipientconst sender = (await generateKeypair()).signer;const recipient = (await generateKeypair()).signer;console.log("Sender Address:", sender.address);console.log("Recipient Address:", recipient.address);// Demo Setup: Create client, mint account, token accounts, and fund with initial tokensconst { client, mint } = await demoSetup(sender, recipient);console.log("\nMint Address:", mint.address);// =============================================================================// Basic Token Payment Demo// =============================================================================// Create splToken helper for this mint using @solana/clientconst splToken = client.splToken({mint: mint.address,tokenProgram: "auto"});// Transfer tokens from sender to recipient (ATA and decimals handled automatically)const signature = await splToken.sendTransfer({amount: 0.25,authority: sender,destinationOwner: recipient.address});console.log("\n=== Token Payment Complete ===");console.log("Transaction Signature:", signature.toString());// Fetch final token account balances using splToken helperconst senderBalance = await splToken.fetchBalance(sender.address);const recipientBalance = await splToken.fetchBalance(recipient.address);console.log("\nSender Token Account Balance:", senderBalance);console.log("Recipient Token Account Balance:", recipientBalance);// =============================================================================// Demo Setup Helper Function// =============================================================================
Is this page helpful?