Как передать NFT spl-токен с помощью фантомного кошелька и solana web3js

Я могу перевести Solana с одной учетной записи на другую, используя фантомный кошелек, используя этот код.

      const transferTransaction = new Transaction()
  .add(SystemProgram.transfer({
    fromPubkey: alice.publicKey,
    toPubkey: feePayer.publicKey,
    lamports: lamportsToSend
  }))
  
  const network = "https://api.devnet.solana.com";
const connection = new Connection(network);
transferTransaction.recentBlockhash = (await connection.getRecentBlockhash()).blockhash;
transferTransaction.feePayer = alice.publicKey;
const { signature } = await window.solana.signAndSendTransaction(transferTransaction);
await connection.confirmTransaction(signature);

  console.log(signature);

но мне интересно, как я могу передать NFT, если у меня есть адрес nft minted?

1 ответ

Чтобы передать NFT, вам сначала нужно узнать адрес монетного двора NFT и адрес владельца. Тогда вместо вызова SystemProgram.transfer, вы будете использовать Token.createTransferCheckedInstruction.

В Solana Cookbook есть отличный пример передачи токенов SPL: https://solanacookbook.com/references/token.html#transfer-token

Другие вопросы по тегам