发布于 2026-01-06 3 阅读
0

使用 Metaplex Candy Machine 在 Solana 上创建 NFT。

使用 Metaplex Candy Machine 在 Solana 上创建 NFT。

指南概述

在尝试使用现有的指南在 Solana 上创建自己的NFT时,我感觉就像走过雷区一样,于是我决定自己编写一个对初学者非常友好的指南。

我不会深入探讨所有细节是如何运作的,而是帮助对 Rust 一无所知的人了解如何借助 Metaplex 糖果机和 Web 入门套件在 Solana 上创建他们自己的NFT 。

注:我使用的是Ubuntu 21.10 - Wayland版本。具体步骤可能因您使用的操作系统而异。

Metaplex糖果机是什么?

Metaplex是一个与 candy-machine 程序交互的命令行工具。在本指南中,我们将使用它来:

  1. 将您的图像及其元数据上传到arweave,然后在 Solana 区块链上注册它们。
  2. 请确认您的糖果机状态是否有效且完整。
  3. 铸造单个代币。

Candy Machine这是一个公平铸造 NFT 的系统。
• 所有用户的铸造过程同时开始和结束。
• 如果没有NFT可供出售,系统将不会接受您的资金。

先决条件

  1. NodeJS (版本 14.17.6)
  2. SolanaCLI
  3. Metaplex CLI
  4. 幻影钱包

如果你的系统上安装了不同版本的 Node,你可以使用nvm,它允许你通过命令行快速安装和使用不同版本的 Node。

入门

安装 SolanaCLI

Solana 已经提供了非常完善的命令行安装和使用指南。
安装 Solana 命令行工具

使用 Devnet

Devnet 对于开发者来说非常有用,可以用来测试他们的程序和应用程序。

您可以使用以下命令将 Solana 的默认 URL 设置为 devnet:
$ solana config set --url https://api.devnet.solana.com

现在,让我们创建一个 devnet 钱包:
$ solana-keygen new --outfile ~/.config/solana/devnet.json
请记住将您的助记词保存在安全的地方。

我强烈建议将 devnet 设置为默认密钥对。
$ solana config set --keypair ~/.config/solana/devnet.json

为 Devnet 钱包充值

首先,让我们通过检查配置来确保我们位于 devnet 上。

$ solana config get
//Output:
Config File: /Users/dev/.config/solana/cli/config.yml
RPC URL: https://api.devnet.solana.com
WebSocket URL: wss://api.devnet.solana.com/ (computed)
Keypair Path: /Users/dev/.config/solana/devnet.json
Commitment: confirmed
Enter fullscreen mode Exit fullscreen mode

现在,让我们给这个钱包充值:
首先,我们检查一下我们当前钱包的余额。

$ solana balance 
//Output:
0 SOL
Enter fullscreen mode Exit fullscreen mode

然后我们会将相应数量的 SOL 空投到我们的钱包。请记住,空投数量上限为 5 个 SOL。

$ solana airdrop 4
//Output
Requesting airdrop of 4

Signature: Transaction Signature

4 SOL
Enter fullscreen mode Exit fullscreen mode

现在,让我们查看一下余额,确认空投是否成功。

$ solana balance
//Output:
4 SOL //This can vary depending on the balance you initially had.
Enter fullscreen mode Exit fullscreen mode

如果您对以上任何步骤感到困惑,可以运行以下命令查看手册以获得更深入的理解:

$ solana help config
$ solana help balance
$ solana help airdrop
Enter fullscreen mode Exit fullscreen mode

配置幻影钱包

设置好 Phantom 钱包后,我们可以将上面新建的 DevNet 钱包链接到 Phantom。
为此,首先需要打开 Phantom 钱包的设置,点击Change Network并选择“链接到 DevNet”。Devnet

现在,我们需要获取 devnet 钱包的私钥。为此,请打开终端并查看文件cat内容。keypair.json

$ cat .config/solana/devnet.json
//Output:
[12,22,.....]
Enter fullscreen mode Exit fullscreen mode

现在复制你收到的输出结果,打开 Phantom Wallet。点击左上角的导航菜单,Add/Connect Wallet然后点击“创建Import Private Key钱包”,给它起一个合适的名字,并将之前复制的内容粘贴到“私钥”字段中。

你的钱包里应该能看到 4 SOL。

运行糖果机 CLI

请确保您已拥有nodeyarn安装相关软件后再继续操作。

也可以ts-node通过运行以下命令进行安装:
$ npm install -g ts-node

现在,让我们将 Metaplex 项目克隆到您选择的位置。

$ git clone https://github.com/metaplex-foundation/metaplex.git
$ cd metaplex/js
$ yarn install && yarn bootstrap && yarn build
Enter fullscreen mode Exit fullscreen mode

要运行命令行实用程序,

$  ts-node metaplex/js/packages/cli/src/candy-machine-cli.ts help
Usage: candy-machine-cli [options] [command]

Options:
  -V, --version                          output the version number
  -h, --help                             display help for command

Commands:
  upload [options] <directory>
  verify [options]
  verify_price [options]
  create_candy_machine [options]
  update_candy_machine [options]
  mint_one_token [options]
  sign [options]
  sign_candy_machine_metadata [options]
  help [command]                         display help for command
Enter fullscreen mode Exit fullscreen mode

整理和上传您的资产

本指南将使用预先制作好的素材,您可以点击此处下载。素材由solana-candy-factory
提供。请 将此文件夹放置assets在合适的位置。
以下是您应该如何组织要上传的NFT文件:

ls assets | sort -n
0.json
0.png
1.json
1.png
2.json
2.png
3.json
3.png
....
Enter fullscreen mode Exit fullscreen mode

您可以注意到这些文件以数字对的形式出现,它们1.png构成了 NFT1.json的两部分文件 1png是艺术作品,json文件 2 包含元数据。

目录名称assets无关紧要,您可以随意命名。

验证您的资产

这可能感觉很繁琐,但同样重要。请查看
https://docs.metaplex.com/nft-standard上的操作手册。

上传项目资源

现在我们已经有了资金,资产也都整理好并核实过了,我们可以开始做有趣的事情了!

我们将继续使用命令行界面 (CLI) 上传资产。请记住,我们的资产位于:metaplex\js\packages\cli\example-assets

$ ts-node metaplex/js/packages/cli/src/candy-machine-cli.ts upload assets --env devnet --keypair ~/.config/solana/devnet.json

//Output
Processing file: 0
Processing file: 1
Processing file: 2
Processing file: 3
Done
Enter fullscreen mode Exit fullscreen mode

通过上传,它会将文件发送到 Arweave,同时也会将这些文件注册到您的糖果机中。Arweave 和 Solana 都会在运行成功后进行初始化。

验证您的糖果机

您可以使用以下方式确认链上资产的健康状况和状态:

$ ts-node metaplex/js/packages/cli/src/candy-machine-cli.ts verify --env devnet --keypair ~/.config/solana/devnet.json
//Output:
Looking at key  0
Name {redacted-name} 0 with https://arweave.net/{redacted-tx-id} checked out
Looking at key  1
Name {redacted-name} 1 with https://arweave.net/{redacted-tx-id} checked out
Looking at key  2
Name {redacted-name} 2 with https://arweave.net/{redacted-tx-id} checked out
Looking at key  3
Name {redacted-name} 3 with https://arweave.net/{redacted-tx-id} checked out
Enter fullscreen mode Exit fullscreen mode

启动你的糖果机

确认所有资产准备就绪后,我们终于可以启动糖果机了。
$ ts-node metaplex/js/packages/cli/src/candy-machine-cli.ts create_candy_machine --env devnet --keypair ~/.config/solana/devnet.json

更新您的糖果机

我们可以修改糖果机的详细信息,包括开始日期和/或价格等。

$ ts-node metaplex/js/packages/cli/src/candy-machine-cli.ts update_candy_machine --env devnet --keypair ~/.config/solana/devnet.json --price 1 --date "29 Oct 2021 00:12:00 GMT"
Enter fullscreen mode Exit fullscreen mode

铸造我们的NFT

要铸造我们的NFT,我们可以mint_one_token这样操作:

$ ts-node metaplex/js/packages/cli/src/candy-machine-cli.ts mint_one_token --env devnet --keypair ~/.config/solana/devnet.json
Enter fullscreen mode Exit fullscreen mode

如果一切顺利,你现在可以打开你的虚拟钱包,打开收藏品页面(它位于底部的 $ 符号旁边),瞧!你新铸造的NFT就在那里!

设置 Web 入门套件

既然我们已经成功将NFT铸造到钱包中,接下来让我们创建一个 Web 应用程序来执行铸造操作!
注意:本项目尚处于早期阶段,可能会出现一些问题,如果遇到问题,请在 GitHub 上提交报告。

该项目的目标是让您能够根据自己的喜好进行配置和定制。

先 fork 这个项目,然后将其克隆到你想要的位置。
链接:https ://github.com/exiled-apes/candy-machine-mint

现在我们需要着手建设这个项目。

cd candy-machine-mint
yarn install
yarn build
Enter fullscreen mode Exit fullscreen mode

事情到这里就有点复杂了。当我们上传NFT时,会在与资源目录相同的目录下创建一个缓存文件。但是,这个.cache文件夹是隐藏的!如果您使用的是 Ubuntu 系统,请使用 `--display- files` 命令ctrl+h显示隐藏文件。

找到该文件夹​​后,打开它,你会找到devnet-temp一个文件。在你的 IDE 中打开它,你会看到以下内容。

{
    "program": {
        "uuid": "Ch3xxx",
        "config": "Ch3xxx"
    },
    "items": {
        "0": {
            "link": "https://arweave.net/xxxx",
            "name": "TEST",
            "onChain": true
        },
        "1": {
            "link": "https://arweave.net/xxxx",
            "name": "TEST",
            "onChain": true
        },
        "2": {
            "link": "https://arweave.net/xxxx",
            "name": "TEST",
            "onChain": true
        },
        "3": {
            "link": "https://arweave.net/xxxx",
            "name": "TEST",
            "onChain": true
        },
        "4": {
            "link": "https://arweave.net/xxxx",
            "name": "TEST",
            "onChain": true
        },
        "5": {
            "link": "https://arweave.net/xxxx",
            "name": "TEST",
            "onChain": true
        }
    },
    "env": "devnet",
    "cacheName": "temp",
    "authority": "9xJxxxx",
    "candyMachineAddress": "3Wmxxxx",
    "startDate": 1632615120
}
Enter fullscreen mode Exit fullscreen mode

当我们运行用于铸币的 Web 应用程序时,我们需要所有这些数据。

配置糖果机-薄荷糖

打开 candy-machine-mint 文件夹,你会找到一个名为.env.example
(该文件通常是隐藏的,使用ctrl+h显示隐藏文件)的文件。
将其重命名为.env,然后打开它来编辑以下详细信息:

REACT_APP_CANDY_MACHINE_CONFIG=__PLACEHOLDER__
Enter fullscreen mode Exit fullscreen mode

这是program.config我们.cache/devnet-temp文件中的关键信息。

REACT_APP_CANDY_MACHINE_ID=__PLACEHOLDER__
Enter fullscreen mode Exit fullscreen mode

这是candyMachineAddress我们.cache/devnet-temp文件中的内容。

REACT_APP_TREASURY_ADDRESS=__PLACEHOLDER__
Enter fullscreen mode Exit fullscreen mode

这是 Solana 接收铸币过程中筹集资金的地址。这是authority我们.cache/devnet-temp文件中的信息。

REACT_APP_CANDY_START_DATE=__PLACEHOLDER__
Enter fullscreen mode Exit fullscreen mode

这是startDate我们.cache/devnet-temp文件中的关键信息。
注意:如果您找不到它,请update_candy_machine按上述方法使用,因为您可能漏掉了填写日期。

REACT_APP_SOLANA_NETWORK=devnet
Enter fullscreen mode Exit fullscreen mode

这用于指定要连接的 Solana 网络。选项包括 devnet、testnet 和 mainnet。

REACT_APP_SOLANA_RPC_HOST=https://explorer-api.devnet.solana.com
Enter fullscreen mode Exit fullscreen mode

这将指定您的 Web 应用程序将通过其访问 Solana 网络的 RPC 服务器。

启动 Web 应用程序

打开终端并导航到该candy-machine-mint目录,然后使用以下命令启动 React 应用:yarn start

当您在终端中看到“编译成功”时,打开http://localhost:3000在浏览器中查看。

现在您可以继续连接您的钱包,然后点击铸币按钮。

点击铸造按钮后,您可以在幻影钱包的收藏品页面查看您新铸造的NFT!

本指南的内容就到这里。如果您遇到任何问题,请在下方留言,我会尽力帮助您!

其他资源

  1. https://hackmd.io/@levicook/HJcDneEWF
  2. https://docs.metaplex.com/
  3. Solana Discord
  4. 关注AnatolyRaj Gokal,感受正能量。

PS:如果你看到了这里,请点个赞并留言告诉我你的想法!哦,如果能关注一下就更好了:')

文章来源:https://dev.to/devindxdev/creating-an-nft-on-solana-with-metaplex-candy-machine-4agp