使用 Metaplex Umi 框架和 Bubblegum V2 在 Solana 开发网上批量铸造压缩 NFT 的工具。
- ✅ 自动创建和管理集合 NFT
- ✅ 自动创建和管理 Merkle 树
- ✅ 配置持久化和复用
- ✅ 从 metadata 文件夹读取 NFT 元数据
- ✅ 单个 NFT 铸造功能
- ✅ 批量 NFT 铸造功能
- ✅ 详细的日志输出和错误处理
- ✅ 环境验证
mint_demos/
├── src/
│ └── mint.ts # 主要铸造逻辑
├── metadata/ # NFT 元数据文件夹 (37个示例文件)
├── assets/ # NFT 图片资产文件夹
├── config.json # 配置文件(自动生成)
├── package.json # 项目依赖
├── tsconfig.json # TypeScript 配置
└── README.md # 项目文档
- Node.js (版本 16 或更高)
- pnpm 包管理器
- Solana CLI 工具
- Solana 钱包 密钥对
# 安装 Solana CLI
sh -c "$(curl -sSfL https://release.solana.com/v1.17.0/install)"
# 生成新的密钥对(如果还没有)
solana-keygen new
# 设置为开发网
solana config set --url https://api.devnet.solana.com
# 获取一些测试 SOL
solana airdrop 2pnpm install项目已包含 37 个示例元数据文件在 metadata/ 文件夹中。每个文件的格式如下:
{
"name": "Solana Legends #38 - Luna",
"symbol": "SLEG",
"description": "A legendary creature from the Solana Legends series, featuring Luna.",
"image": "https://dcmripai5rlqc.cloudfront.net/numbers-test/0U9aC0U~P9pRmQo.png",
"properties": {
"files": [
{
"uri": "https://dcmripai5rlqc.cloudfront.net/numbers-test/0U9aC0U~P9pRmQo.png",
"type": "image/png"
}
],
"category": "image"
},
"attributes": [
{
"trait_type": "Character",
"value": "Luna"
},
{
"trait_type": "Series",
"value": "Solana Legends"
}
]
}# 开发模式
npm run dev
# 生产模式
npm run mint# 开发模式(推荐)
npm run bulk
# 生产模式
npm run bulk-build# 构建项目
npm run build
# 运行单个铸造
npm run start
# 清理构建文件
npm run clean- 环境验证 - 检查 Solana 钱包和元数据文件夹
- 连接开发网 - 连接到 Solana 开发网 RPC
- 集合 NFT 管理 - 创建或复用现有的集合 NFT
- Merkle 树管理 - 创建或复用现有的 Merkle 树
- NFT 铸造 - 从元数据文件读取信息并铸造压缩 NFT
- 配置保存 - 保存地址信息以供后续使用
程序会自动生成 config.json 文件来保存重要地址:
{
"collectionMintAddress": "集合NFT地址",
"collectionMetadataAddress": "集合元数据地址",
"merkleTreeAddress": "Merkle树地址",
"treeAuthority": "树权限地址"
}- Merkle 树深度: 14 (最多 16,384 个 NFT)
- 缓冲区大小: 64
- 网络: Solana 开发网
- 压缩标准: Bubblegum V2
- 集合: 自动创建和管理
| 命令 | 描述 |
|---|---|
npm run build |
编译 TypeScript 代码 |
npm run start |
运行编译后的单个铸造代码 |
npm run dev |
开发模式运行单个铸造(使用 ts-node) |
npm run mint |
构建并运行单个铸造 |
npm run bulk |
开发模式运行批量铸造 |
npm run bulk-build |
构建并运行批量铸造 |
npm run clean |
清理构建文件 |
-
找不到钱包文件
❌ 错误: 找不到 Solana 钱包文件解决方案: 运行
solana-keygen new生成密钥对 -
余额不足
❌ 交易失败: 余额不足解决方案: 运行
solana airdrop 2获取测试 SOL -
网络连接问题
❌ 连接到 RPC 失败解决方案: 检查网络连接,或尝试其他 RPC 端点
- 🚀 程序开始
- 🔗 网络连接
- 💳 钱包信息
- 🎨 集合 NFT 操作
- 🌳 Merkle 树操作
- 🔨 NFT 铸造过程
- ✅ 成功操作
- ❌ 错误信息
⚠️ 警告信息- ♻️ 复用现有资源
铸造成功后,您可以通过以下方式查看您的压缩 NFT:
- Solana 浏览器:
https://explorer.solana.com/address/YOUR_WALLET_ADDRESS?cluster=devnet - 交易详情: 程序会输出每个交易的链接
- 框架: Metaplex Umi
- 压缩 NFT: Bubblegum V2
- 语言: TypeScript
- 包管理器: pnpm
- 网络: Solana 开发网
ISC License
欢迎提交 Issue 和 Pull Request!
- 实现批量铸造功能 ✅
- 添加进度条显示
- 支持自定义 RPC 端点
- 添加 NFT 更新功能
- 支持主网部署
- 添加测试用例
- 优化错误重试机制
- 添加交易费用估算