A Solana permite transferências instantâneas e globais de tokens com taxas inferiores a $0,001. Seja você construindo remessas internacionais, desembolsos de folha de pagamento ou operações de tesouraria, um pagamento básico de stablecoin é liquidado em menos de um segundo e custa uma fração de centavo.
Como funciona
Um pagamento move stablecoins da token account do remetente para a token account do destinatário. Se o destinatário estiver recebendo este token pela primeira vez, sua token account pode ser criada como parte da mesma transação.
Consulte Como funcionam os pagamentos na Solana para conceitos fundamentais de pagamento.
O auxiliar splToken do
@solana/client lida automaticamente
com a derivação de ATA, conversão de decimais e construção de transações. Isso é
ideal para transferências de pagamento único.
As etapas abaixo mostram o fluxo principal. Consulte a Demonstração para código executável completo.
Criar o auxiliar de token
Configure o auxiliar splToken() chamando client.splToken() com o endereço da
mint. O auxiliar fornece métodos para operações comuns de token.
Definir tokenProgram: "auto" detecta automaticamente se a mint account
pertence ao programa Token ou Token-2022.
Enviar o pagamento
Use sendTransfer() para transferir tokens entre carteiras. O método lida com:
- Resolução de ATA: Deriva automaticamente as Associated Token Accounts (ATAs) para o remetente e o destinatário. Se a ATA do destinatário não existir, a instrução para criar a conta é automaticamente adicionada à mesma transação.
- Conversão de decimais: Aceita quantidades de tokens e converte automaticamente para unidades base com base nos decimais da mint (por exemplo, 0,25 tokens -> 250000 unidades base, se a mint tiver 6 decimais)
- Construção de transação: Cria, assina e envia a transação com a instrução de transferência
Verificar saldos
Após a conclusão da transferência, use fetchBalance() para verificar os saldos
de tokens. Este método recebe um endereço de carteira e deriva automaticamente a
ATA correspondente para obter o saldo.
Demonstração
// 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?