Pago básico

Solana permite transferencias de tokens instantáneas y globales con tarifas inferiores a $0.001. Ya sea que estés construyendo remesas transfronterizas, desembolsos de nómina u operaciones de tesorería, un pago básico de stablecoin se liquida en menos de un segundo y cuesta una fracción de centavo.

Cómo funciona

Un pago mueve stablecoins desde la cuenta de token del remitente a la cuenta de token del destinatario. Si el destinatario está recibiendo este token por primera vez, su cuenta de token puede crearse como parte de la misma transacción.

Consulta Cómo funcionan los pagos en Solana para conocer los conceptos básicos de pagos.

El helper splToken de @solana/client maneja la derivación de ATA, conversión de decimales y construcción de transacciones automáticamente. Esto es ideal para transferencias de pago únicas.

Los pasos a continuación muestran el flujo principal. Consulta la Demo para ver el código completo ejecutable.

Crear el helper de token

Configura el helper splToken() llamando a client.splToken() con la dirección de mint. El helper proporciona métodos para operaciones comunes de tokens.

Establecer tokenProgram: "auto" detecta automáticamente si la cuenta de mint es propiedad del programa Token o Token-2022.

Enviar el pago

Usa sendTransfer() para transferir tokens entre billeteras. El método maneja:

  • Resolución de ATA: Deriva automáticamente las cuentas de token asociadas (ATA) para el remitente y el destinatario. Si la ATA del destinatario no existe, la instrucción para crear la cuenta se agrega automáticamente a la misma transacción.
  • Conversión de decimales: Acepta cantidades de tokens y las convierte automáticamente a unidades base según los decimales del mint (por ejemplo, 0.25 tokens -> 250000 unidades base, si el mint tiene 6 decimales)
  • Construcción de transacción: Crea, firma y envía la transacción con la instrucción de transferencia
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
});

Verificar saldos

Una vez completada la transferencia, utiliza fetchBalance() para verificar los saldos de tokens. Este método toma una dirección de billetera y deriva automáticamente la ATA correspondiente para obtener el 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);

Crear el helper de token

Configura el helper splToken() llamando a client.splToken() con la dirección de mint. El helper proporciona métodos para operaciones comunes de tokens.

Establecer tokenProgram: "auto" detecta automáticamente si la cuenta de mint es propiedad del programa Token o Token-2022.

Enviar el pago

Usa sendTransfer() para transferir tokens entre billeteras. El método maneja:

  • Resolución de ATA: Deriva automáticamente las cuentas de token asociadas (ATA) para el remitente y el destinatario. Si la ATA del destinatario no existe, la instrucción para crear la cuenta se agrega automáticamente a la misma transacción.
  • Conversión de decimales: Acepta cantidades de tokens y las convierte automáticamente a unidades base según los decimales del mint (por ejemplo, 0.25 tokens -> 250000 unidades base, si el mint tiene 6 decimales)
  • Construcción de transacción: Crea, firma y envía la transacción con la instrucción de transferencia

Verificar saldos

Una vez completada la transferencia, utiliza fetchBalance() para verificar los saldos de tokens. Este método toma una dirección de billetera y deriva automáticamente la ATA correspondiente para obtener el 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?

Tabla de Contenidos

Editar Página

Gestionado por

© 2026 Fundación Solana.
Todos los derechos reservados.
Conéctate