Pembayaran dasar

Solana memungkinkan transfer token global secara instan dengan biaya di bawah $0,001. Baik Anda membangun remitansi lintas negara, pencairan gaji, atau operasi perbendaharaan, pembayaran stablecoin dasar diselesaikan dalam waktu kurang dari satu detik dan biayanya hanya sebagian kecil dari satu sen.

Cara kerjanya

Pembayaran memindahkan stablecoin dari token account pengirim ke token account penerima. Jika penerima menerima token ini untuk pertama kalinya, token account mereka dapat dibuat sebagai bagian dari transaksi yang sama.

Lihat How Payments Work on Solana untuk konsep pembayaran inti.

Helper splToken dari @solana/client menangani derivasi ATA, konversi desimal, dan pembangunan transaksi secara otomatis. Ini ideal untuk transfer pembayaran tunggal.

Langkah-langkah di bawah ini menunjukkan alur inti. Lihat Demo untuk kode lengkap yang dapat dijalankan.

Buat token helper

Konfigurasikan helper splToken() dengan memanggil client.splToken() dengan alamat mint. Helper menyediakan metode untuk operasi token umum.

Mengatur tokenProgram: "auto" secara otomatis mendeteksi apakah mint account dimiliki oleh program Token atau Token-2022.

Kirim pembayaran

Gunakan sendTransfer() untuk mentransfer token antar dompet. Metode ini menangani:

  • Resolusi ATA: Secara otomatis menurunkan Associated Token Accounts (ATA) untuk pengirim dan penerima. Jika ATA penerima tidak ada, instruksi untuk membuat akun secara otomatis ditambahkan ke transaksi yang sama.
  • Konversi desimal: Menerima jumlah token dan secara otomatis mengonversi ke unit dasar berdasarkan desimal mint (misalnya 0,25 token -> 250000 unit dasar, jika mint memiliki 6 desimal)
  • Pembangunan transaksi: Membuat, menandatangani, dan mengirim transaksi dengan instruksi transfer
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
});

Verifikasi saldo

Setelah transfer selesai, gunakan fetchBalance() untuk memverifikasi saldo token. Metode ini menerima alamat dompet dan secara otomatis menurunkan ATA yang sesuai untuk mengambil 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);

Buat token helper

Konfigurasikan helper splToken() dengan memanggil client.splToken() dengan alamat mint. Helper menyediakan metode untuk operasi token umum.

Mengatur tokenProgram: "auto" secara otomatis mendeteksi apakah mint account dimiliki oleh program Token atau Token-2022.

Kirim pembayaran

Gunakan sendTransfer() untuk mentransfer token antar dompet. Metode ini menangani:

  • Resolusi ATA: Secara otomatis menurunkan Associated Token Accounts (ATA) untuk pengirim dan penerima. Jika ATA penerima tidak ada, instruksi untuk membuat akun secara otomatis ditambahkan ke transaksi yang sama.
  • Konversi desimal: Menerima jumlah token dan secara otomatis mengonversi ke unit dasar berdasarkan desimal mint (misalnya 0,25 token -> 250000 unit dasar, jika mint memiliki 6 desimal)
  • Pembangunan transaksi: Membuat, menandatangani, dan mengirim transaksi dengan instruksi transfer

Verifikasi saldo

Setelah transfer selesai, gunakan fetchBalance() untuk memverifikasi saldo token. Metode ini menerima alamat dompet dan secara otomatis menurunkan ATA yang sesuai untuk mengambil 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?

Daftar Isi

Edit Halaman

Dikelola oleh

© 2026 Yayasan Solana.
Semua hak dilindungi.
Terhubung