GTokenTool全网最好的代币发行工具平台
当前位置:首页 >> solana教程 >> Solana Dev 101 - 如何在 Solana 上铸造 NFT

Solana Dev 101 - 如何在 Solana 上铸造 NFT

admin solana教程 76

安装先决条件:

在开始之前,请确保您的机器上安装了 Node.js 和 npm。您可以在此处下载它们。

Solana Dev 101 - 如何在 Solana 上铸造 NFT


步骤 1:安装依赖项

首先,我们需要安装必要的依赖项。


在终端中运行以下命令来安装 Solana JavaScript API 和 Metaplex JavaScript 库:


代码

npm install @solana/web3.js @metaplex-foundation/js


第 2 步:导入依赖项

接下来,我们可以创建一个名为 mintNFTs.js 的新文件,并首先导入所需的依赖项:


代码

const { Keypair, Connection } = require('@solana/web3.js');

const { Metaplex,keypairIdentity, bundlrStorage,toMetaplexFile } = require('@metaplex-foundation/js');

const {fs} = require('fs');


步骤 3:创建钱包、初始化连接并创建 Metaplex 实例

我们需要创建一个 Solana 钱包,用于铸造和持有 NFT。为此,我们将使用 Solana CLI 工具,您可以在终端中运行以下命令来获取新钱包。此钱包将保存为包含种子短语的 JSON 文件。‍


代码

solana-keygen new


您可以将其导入浏览器钱包扩展程序,例如 Phantom 或 Backpack。


警告

确保不要与任何人分享您的私钥。


现在,我们初始化与 Solana 集群的连接。我们将使用 Helius 连接到主网集群,因为这比公共 RPC 更快,后者的速率受到严格限制,并且没有存档功能。(https://api.mainnet-beta.solana.com)。如果您还想使用更快、更优质的 RPC 服务来代替标准 RPC,您可以在此处创建一个免费的 Helius 帐户。


然后,我们将根据刚刚创建的钱包的种子短语创建一个钱包密钥对。


代码

async function createMetadata(imageName) {


  // Create an image buffer

  const metadataURI = await metaplex.nfts().uploadMetadata({

    name: "Helius NFT",

    description: "Helius NFT created in the SolanaDev 101 course",


    // Image: await uploadIMG(imageName),

    image: await toMetaplexFile(fs.readFileSync(imageName), "heliusLogo"),

    attributes: [

      { trait_type: "Test", value: "Yes" },

      { trait_type: "Logo", value: "Helius" },

    ],

  });

  return metadataURI;

}


在上面的代码中,我们创建了 Metaplex SDK 的一个实例,这是一个用于与 Metaplex 协议交互的工具包。然后,我们为该实例配置与 Solana 集群、用户钱包和存储提供商的连接。.use(bundlrStorage())将实例配置为使用 Bundlr 作为存储提供商,NFT 的元数据和资产将存储在该存储提供商中。


步骤 4:创建并上传 NFT 元数据

在此步骤中,我们将深入研究如何通过该函数创建和上传 NFT 元数据和图像createMetadata()。


NFT 的核心部分之一是图像,在此示例中,我们将使用 Helius Logo 的图像!确保将要使用的图像添加到创建 mintNFT.js 文件的目录中。


此函数首先读取imageName使用指定的图像文件,然后使用 将其转换为适合 Metaplex 的格式。然后我们使用 函数上传元数据。 fstoMetaplexFile()metaplex.nfts().uploadMetadata()


元数据包含有关我们的 NFT 的重要详细信息,包括其名称、描述、我们准备的图像以及提供有关 NFT 的其他详细信息的一组属性。您可以在 NFT 中包含更多数据,您可以在此处阅读有关 Metaplex NFT 标准的更多信息。


元数据成功上传后,该函数将返回指向数据在线位置的元数据的 URI。


代码

async function createMetadata(imageName) {


  // Create an image buffer

  const metadataURI = await metaplex.nfts().uploadMetadata({

    name: "Helius NFT",

    description: "Helius NFT created in the SolanaDev 101 course",


    // Image: await uploadIMG(imageName),

    image: await toMetaplexFile(fs.readFileSync(imageName), "heliusLogo"),

    attributes: [

      { trait_type: "Test", value: "Yes" },

      { trait_type: "Logo", value: "Helius" },

    ],

  });

  return metadataURI;

}


步骤 5:铸造 NFT

现在,我们通过创建一个名为的函数来继续铸造 NFT createNFT()。首先,我们createMetadata() 使用“./heliusLogo.png”作为参数(图像文件的路径)来调用该函数。


接下来,我们通过调用来铸造 NFT metaplex.nfts().create()。此函数接受一个具有多个属性的对象,例如元数据 URI、NFT 的名称、卖家费用(此处设置为 5%)和创建者数组,其中每个创建者对象都包含地址和钱包应获得的版税金额的份额百分比。


成功创建 NFT 后,该函数将记录 NFT 的铸币地址。此铸币地址是区块链上 NFT 的唯一标识符。您可以复制此地址并在区块浏览器(例如XRAY )上查找 NFT 。


代码

async function createNFT() {

  // Create and upload the metadata

  const metadata = await createMetadata("./heliusLogo.png");

  // Create the NFT

  const nft = await metaplex.nfts().create({

    uri: metadata.uri,

    name: "Helius NFT",

    seller_fee_basis_points: 500, // 5%

    creators: [{ address: wallet.publicKey, verified: true, share: 100 }],

  });


  // Log the NFT mint address

  console.log("NFT:", nft.mintAddress.toBase58());

}

createNFT();


运行此代码并创建可在此处node mintNFT.js看到的 NFT 。


结论

恭喜!您刚刚创建了一个 NFT。我希望本教程能帮助您开始使用 Solana 上的 NFT。NFT 是 Solana 生态系统的一个基本方面,因此了解它们的结构以及如何创建它们是一项很棒的技能。

作者:GTokenTool一键发币平台

交流群:https://t.me/+Kz4u3xoDpFo3ZWY1

同类推荐