使用 @solana/web3.js 将元数据添加到 Solana 令牌

Ood*_*Ood 11 javascript node.js cryptocurrency nft solana

我正在尝试使用 web3.js 和 spl-token.js 创建 NFT。

但是,我需要添加元数据(例如令牌的名称或其他属性),否则它只会在我的钱包中显示为“未知令牌”。

这是我铸造令牌的代码的相关部分:

let mint = await splToken.Token.createMint(
    connection,
    fromWallet,
    fromWallet.publicKey,
    null,
    0,
    splToken.TOKEN_PROGRAM_ID
);
Run Code Online (Sandbox Code Playgroud)

否则,代码类似于此问题的答案:我想在 solana 上铸造一个新令牌。如何使用 solana-web3.js 执行此操作?

除了元数据的结构(我在这里找到的:https: //docs.phantom.app/integrating/tokens/on-chain-metadata )之外,似乎没有任何文档。

如果有人可以通过示例或文档为我指明正确的方向,我将不胜感激。谢谢你!

oll*_*jik 5

为了将元数据添加到 NFT,您需要调用此程序spl_token_metadata::instruction::create_metadata_accounts。您可以在此处找到文档


PS:上面的例子是用 Rust 编写的。在 JavaScript 中这样做是这样的:

import { Metaplex, keypairIdentity } from "@metaplex-foundation/js";
const metaplex = new Metaplex(connection);
metaplex.use(keypairIdentity(keypair));
const mintNFTResponse = await metaplex.nfts().create({
  uri: "https://ffaaqinzhkt4ukhbohixfliubnvpjgyedi3f2iccrq4efh3s.arweave.net/KUAIIbk6p8oo4XHRcq0U__C2r0mwQaNl0gQow4Qp9yk",
  maxSupply: 1,
});
Run Code Online (Sandbox Code Playgroud)

这里描述的是另一个例子

  • 对 Solana 来说相当陌生。有没有 JS 中如何做到这一点的示例? (2认同)