开发者问题收集

如何使用 Phantom 钱包和 solana web3js 转移 NFT spl-token

2022-01-21
3244

我可以使用幻影钱包通过此代码将 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?

1个回答

要转移 NFT,首先需要找出 NFT 铸币厂的地址和所有者的地址。然后,不要调用 SystemProgram.transfer ,而是使用 Token.createTransferCheckedInstruction

Solana Cookbook 中有一个很好的 SPL 代币转移示例: https://solanacookbook.com/references/token.html#transfer-token

Jon C
2022-01-21