Pagamento base

Solana consente trasferimenti di token istantanei e globali con commissioni inferiori a $0,001. Che tu stia costruendo rimesse transfrontaliere, erogazioni di stipendi o operazioni di tesoreria, un pagamento base in stablecoin si completa in meno di un secondo e costa una frazione di centesimo.

Come funziona

Un pagamento sposta stablecoin dal token account del mittente al token account del destinatario. Se il destinatario riceve questo token per la prima volta, il suo token account può essere creato come parte della stessa transazione.

Consulta Come funzionano i pagamenti su Solana per i concetti fondamentali sui pagamenti.

L'helper splToken di @solana/client gestisce automaticamente la derivazione ATA, la conversione dei decimali e la costruzione della transazione. Questo è ideale per trasferimenti di pagamento singoli.

I passaggi seguenti mostrano il flusso principale. Consulta la Demo per il codice completo eseguibile.

Crea l'helper token

Configura l'helper splToken() chiamando client.splToken() con l'indirizzo del mint. L'helper fornisce metodi per le operazioni token comuni.

Impostando tokenProgram: "auto" rileva automaticamente se il mint account è di proprietà del programma Token o Token-2022.

Invia il pagamento

Usa sendTransfer() per trasferire token tra wallet. Il metodo gestisce:

  • Risoluzione ATA: Deriva automaticamente gli Associated Token Account (ATA) per il mittente e il destinatario. Se l'ATA del destinatario non esiste, l'istruzione per creare l'account viene aggiunta automaticamente alla stessa transazione.
  • Conversione decimali: Accetta importi di token e li converte automaticamente in unità base in base ai decimali del mint (es. 0,25 token -> 250000 unità base, se il mint ha 6 decimali)
  • Costruzione transazione: Crea, firma e invia la transazione con l'istruzione di trasferimento
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
});

Verifica i saldi

Dopo il completamento del trasferimento, utilizza fetchBalance() per verificare i saldi dei token. Questo metodo accetta un indirizzo wallet e deriva automaticamente il corrispondente ATA per recuperare il saldo.

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

Crea l'helper token

Configura l'helper splToken() chiamando client.splToken() con l'indirizzo del mint. L'helper fornisce metodi per le operazioni token comuni.

Impostando tokenProgram: "auto" rileva automaticamente se il mint account è di proprietà del programma Token o Token-2022.

Invia il pagamento

Usa sendTransfer() per trasferire token tra wallet. Il metodo gestisce:

  • Risoluzione ATA: Deriva automaticamente gli Associated Token Account (ATA) per il mittente e il destinatario. Se l'ATA del destinatario non esiste, l'istruzione per creare l'account viene aggiunta automaticamente alla stessa transazione.
  • Conversione decimali: Accetta importi di token e li converte automaticamente in unità base in base ai decimali del mint (es. 0,25 token -> 250000 unità base, se il mint ha 6 decimali)
  • Costruzione transazione: Crea, firma e invia la transazione con l'istruzione di trasferimento

Verifica i saldi

Dopo il completamento del trasferimento, utilizza fetchBalance() per verificare i saldi dei token. Questo metodo accetta un indirizzo wallet e deriva automaticamente il corrispondente ATA per recuperare il saldo.

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

Demo

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?

Indice

Modifica Pagina

Gestito da

© 2026 Solana Foundation.
Tutti i diritti riservati.
Rimani Connesso