Typescript
SPL Token di Web3.js

SPL Token di Web3.js

Instruksi Transfer

Memindahkan token dari satu akun ke akun lainnya. Ini adalah operasi dasar untuk mengirim token antar pengguna.

Sebelum kita dapat mentransfer token, kita perlu memiliki:

  • Akun Mint yang sudah diinisialisasi.

  • Akun sumber Token atau akun Associated Token yang sudah memiliki setidaknya jumlah yang ingin kita transfer.

  • Akun tujuan Token atau akun Associated Token yang akan menerima token dari akun sumber Token.

Jumlah token yang kita transfer "dinormalisasi" untuk desimal. Ini berarti jika kita ingin mentransfer 1 token yang memiliki 6 desimal, kita perlu memasukkan 1e6 sebagai jumlahnya

Instruksi Mentah

Dengan menggunakan instruksi "mentah" tanpa abstraksi, beginilah tampilan transfer token:

ts
const destination = Keypair.generate();

const destinationTokenAccount = await getAssociatedTokenAddress(
  mint.publicKey,
  destination.publicKey,
);

// Create ATA creation instruction
const createAtaInstruction = createAssociatedTokenAccountIdempotentInstruction(
  keypair.publicKey, // payer
  destinationTokenAccount, // associated token account address
  destination.publicKey, // owner
  mint.publicKey, // mint
);

// Transfer tokens to ATA
const transferInstruction = createTransferInstruction(
  sourceTokenAccount, // source token account pubkey
  destinationTokenAccount, // destination token account pubkey
  keypair.publicKey, // owner of the source token account
  1e6, // amount
);

const transaction = new Transaction().add(createAtaInstruction, transferInstruction);

const signature = await sendAndConfirmTransaction(connection, transaction, [keypair]);

console.log(
  `Token accounts created and tokens transferred! Check out your TX here: https://explorer.solana.com/tx/${signature}?cluster=devnet`,
);
Expand
[15 more lines]

Instruksi Terabstraksi

Beginilah tampilan instruksi yang sama jika diabstraksikan dengan instruksi transfer():

ts
const destination = Keypair.generate();

const destinationAta = await getOrCreateAssociatedTokenAccount(
  connection,
  keypair,
  mint,
  destination.publicKey,
);

console.log(`This is your ATA: ${destinationAta.address}!`);

let tx = await transfer(
  connection, // connection
  keypair, // payer
  sourceAta, // source token account
  destinationAta, // destination token account
  keypair.publicKey, // owner of the source token account
  1e6, // amount to transfer
);

console.log(
  `Succesfully Transferred!. Transaction Here: https://explorer.solana.com/tx/${tx}?cluster=devnet`,
);
Expand
[8 more lines]

Instruksi Terverifikasi

Daftar Isi
Lihat Sumber
Blueshift © 2026Commit: 3c44267