Paiement de base

Solana permet des transferts de tokens instantanés et mondiaux avec des frais inférieurs à 0,001 $. Que vous développiez des transferts de fonds transfrontaliers, des versements de salaires ou des opérations de trésorerie, un paiement de stablecoin de base se règle en moins d'une seconde et coûte une fraction de centime.

Comment ça fonctionne

Un paiement déplace des stablecoins du token account de l'expéditeur vers le token account du destinataire. Si le destinataire reçoit ce token pour la première fois, son token account peut être créé dans le cadre de la même transaction.

Consultez Comment fonctionnent les paiements sur Solana pour les concepts de paiement fondamentaux.

L'assistant splToken de @solana/client gère automatiquement la dérivation ATA, la conversion des décimales et la construction de la transaction. C'est idéal pour les transferts de paiement uniques.

Les étapes ci-dessous montrent le flux principal. Consultez la Démo pour le code complet exécutable.

Créer l'assistant de token

Configurez l'assistant splToken() en appelant client.splToken() avec l'adresse du mint account. L'assistant fournit des méthodes pour les opérations de token courantes.

Définir tokenProgram: "auto" détecte automatiquement si le mint account appartient au programme Token ou Token-2022.

Envoyer le paiement

Utilisez sendTransfer() pour transférer des tokens entre portefeuilles. La méthode gère :

  • Résolution ATA : Dérive automatiquement les Associated Token Accounts (ATA) pour l'expéditeur et le destinataire. Si l'ATA du destinataire n'existe pas, l'instruction pour créer le compte est automatiquement ajoutée à la même transaction.
  • Conversion des décimales : Accepte les montants de tokens et les convertit automatiquement en unités de base selon les décimales du mint account (par exemple, 0,25 tokens -> 250000 unités de base, si le mint account a 6 décimales)
  • Construction de la transaction : Crée, signe et envoie la transaction avec l'instruction de transfert
Basic Payment
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
});

Vérifier les soldes

Une fois le transfert terminé, utilisez fetchBalance() pour vérifier les soldes de jetons. Cette méthode prend une adresse de portefeuille et dérive automatiquement l'ATA correspondant pour récupérer le solde.

Basic Payment
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);

Créer l'assistant de token

Configurez l'assistant splToken() en appelant client.splToken() avec l'adresse du mint account. L'assistant fournit des méthodes pour les opérations de token courantes.

Définir tokenProgram: "auto" détecte automatiquement si le mint account appartient au programme Token ou Token-2022.

Envoyer le paiement

Utilisez sendTransfer() pour transférer des tokens entre portefeuilles. La méthode gère :

  • Résolution ATA : Dérive automatiquement les Associated Token Accounts (ATA) pour l'expéditeur et le destinataire. Si l'ATA du destinataire n'existe pas, l'instruction pour créer le compte est automatiquement ajoutée à la même transaction.
  • Conversion des décimales : Accepte les montants de tokens et les convertit automatiquement en unités de base selon les décimales du mint account (par exemple, 0,25 tokens -> 250000 unités de base, si le mint account a 6 décimales)
  • Construction de la transaction : Crée, signe et envoie la transaction avec l'instruction de transfert

Vérifier les soldes

Une fois le transfert terminé, utilisez fetchBalance() pour vérifier les soldes de jetons. Cette méthode prend une adresse de portefeuille et dérive automatiquement l'ATA correspondant pour récupérer le solde.

Basic Payment
const client = createClient({
endpoint: "http://localhost:8899",
websocketEndpoint: "ws://localhost:8900",
commitment: "confirmed"
});
const splToken = client.splToken({
mint: mint.address,
tokenProgram: "auto"
});

Démo

Demo
// Generate keypairs for sender and recipient
const 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 tokens
const { client, mint } = await demoSetup(sender, recipient);
console.log("\nMint Address:", mint.address);
// =============================================================================
// Basic Token Payment Demo
// =============================================================================
// Create splToken helper for this mint using @solana/client
const 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 helper
const 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
// =============================================================================
Console
Click to execute the code.

Is this page helpful?

Table des matières

Modifier la page

Géré par

© 2026 Fondation Solana.
Tous droits réservés.
Restez connecté