关于 Solana 的 Metaplex,你需要知道的一切
作者 Alchemy
Metaplex 是一套面向 Solana 的 NFT 标准和工具集合。了解如何使用 Metaplex 进行 Solana NFT 铸造、NFT 空投、NFT 商店搭建等等!
什么是 metaplex?
Metaplex 是构建在 Solana 之上的一组合约,用于增强该区块链的 NFT 生态。这套生态包含四个合约:Token Metadata、Token Vault、Auction 和 Metaplex。虽然 Metaplex 这个词通常指整个合约生态,但在本概览中我们用它专指 Metaplex 合约(四个合约之一)。
为什么 metaplex 很重要?
Metaplex 生态为 Solana 上的 NFT 交互方式带来了全新的可能,因而事实上已成为 Solana 上的标准 NFT 工具。通过 Metaplex,用户可以铸造 NFT、进行一级/二级市场拍卖,并以标准化的方式展示 NFT。
Metaplex 智能合约
Metaplex 生态由四个独立的合约组成,它们通过 Metaplex 合约相互通信,为 Solana 开发者提供创建 NFT 所需的工具。
1. Token metadata
被称为“铸造装饰器(mint decorator)”,这个合约让 NFT 创作者可以为其铸造关联一个 Metadata PDA(Program Derived Address,程序派生地址)。这个关联的 PDA 包含了 NFT 集合的基础信息,例如名称、符号、版税比例和售出状态。
2. Token vault
顾名思义,Token Vault 合约可以持有从任意铸造存入的 NFT,并支持对该 vault 及其中 NFT 进行份额化持有。
Vault 有两种状态:Activated(已激活)和 Combined(已合并)。
处于 "Activated" 状态时,vault 中的任何 NFT 都会被锁定且无法访问。此时 vault 所有者可以发行并出售该 vault 的份额(treasury shares),从而实现 vault 中 NFT 的份额化持有。
只有当流通中不再有未偿还的份额时(即 vault 所有者持有全部份额),vault 才能转为 "Combined" 状态。要取回 vault 中的 NFT,所有者必须在市场上买回所有份额,随后才能对 vault 执行 "Combine"。
3. Auction
Auction 合约是 Metaplex 上的拍卖机制,支持 English Auction 和 Open Edition Auction 两种拍卖形式。
作为一个简单的出价-出售程序,Auction 并不了解 NFT 或 Metaplex 生态中的其他资源。这种隔离性大大降低了故障点,并提高了 Auction 程序的灵活性。
4. Metaplex
Metaplex 合约提供 AuctionManagers,用于管理上述三个主要合约。AuctionManager 记录所有 token metadata 及其对应的拍卖信息,并保证 Token Metadata、Token Vault 和 Auction 三个合约之间账户数据的顺畅流转。
Metaplex 工具与功能
以下是 Metaplex 最重要的功能:它们是做什么的、何时使用、为何重要,以及如何开始基于这些功能进行开发!
什么是 metaplex storefront?
Metaplex Storefront 是一个一体化的 NFT 市场,用于通过 Metaplex 合约创建和销售 NFT。与 Magic Eden 等中心化的 Solana NFT 市场不同,任何人都可以自行创建并托管 Storefront,将其作为白标解决方案,也可以使用已有品牌的 Storefront。
Metaplex Storefront 这一可自托管的特性,让用户能够充分享受 Solana 去中心化带来的好处,因为他们可以创建属于自己的 NFT 市场。
如何用 metaplex 创建 storefront
以下是创建 Storefront 的简要概述,详细内容可参考 Metaplex 的官方文档。
首先,你需要在 Github 上克隆并启动 Metaplex Storefront 的源代码。
接下来,访问 http://localhost:3000/ 并将 Solana 网络切换到 Devnet。
如果你不熟悉 Solana 测试网络,可阅读我们的《Solana devnet 使用完整指南》。
然后,点击 "Init Store" 初始化 Storefront,并批准该交易。

在 Store 配置部分,复制代码并粘贴到位于 js/package/web 中的 .env 文件里。
现在,用 yarn start 重启网站。

至此,你已经拥有了一个与自己地址关联、由你自己托管的 Storefront!
通过 Storefront 的默认界面,你可以铸造 NFT 并将其上架出售,可以选择即时 "Buy Now" 的方式,也可以以拍卖形式上架。创建 NFT 时,你可以指定描述、版税比例和图片。
由于 Metaplex 的 Storefront NFT 工具是开源且可定制的,你可以修改 fork 后的 GitHub 代码来调整用户界面(UI),并添加新功能,例如创建 NFT vault 或销毁 NFT。
什么是 Candy Machine v2?
Candy Machine(CM)是一个链上生成式 NFT 分发程序,旨在为买家、卖家和创作者简化 NFT 交互流程。
Candy Machine V2 是第二个版本,增加并改进了多项功能。在 CM 出现之前,Solana 上没有统一的程序来管理 NFT 的铸造和销售,这给 NFT 创作者和收藏者带来了大量错误和糟糕的使用体验,也正因如此,Metaplex 开发团队开发了 Candy Machine。
Candy Machine 解决了 NFT 分发中影响用户体验的一些根本性问题:
- 定义精确的铸造时间段
- 只有在 NFT 可被铸造时才接受买家资金
- 通过强制规定 metadata 类型,帮助程序生成一致的 NFT
Candy Machine v2 增加了更多功能:
- 不可预测的铸造索引 —— 防止买家在集合内“狙击”特定 NFT,因为 v1 是按顺序铸造的
- 白名单 —— 只允许特定地址进行铸造
- 验证码(Captcha) —— 防止机器人铸造
此外,v2 现在支持更大规模的集合、隐藏-揭示式发售,并允许 web3 开发者随时更新配置以及暂停正在进行的铸造。
如何使用 Candy Machine v2
由于 Candy Machine 是一个完全链上的 NFT 铸造程序,所有交互都必须通过程序化方式进行;虽然存在一些自动化部分功能的 UI,但用户仍需要具备基础的编程经验才能充分使用 Candy Machine。要开始使用 CM v2,请参考 Metaplex 的官方文档。
什么是 gumdrop?
Gumdrop 是一款处于 beta 阶段的新工具,用于以较低的 gas 成本进行 Solana 空投。Gumdrop 由 Metaplex 社区开发,通过链下方式(例如社交媒体)向大量用户发送兑换链接,实现空投。它为项目方提供了一种低成本、与 Metaplex 集成的代币分发方案。
与传统空投框架中代币直接出现在用户 Solana 钱包中不同,Gumdrop 采用“拉取式(pull-based)”模式,用户必须主动认领代币,否则将失去领取资格。Gumdrop 使用 merkle tree 来验证用户是否在白名单中,从而实现链上快速计算。
Gumdrop 支持多种 Solana 上的代币分发类型:
- 代币空投
- Candy Machine 预售
- 版本印刷(Edition prints)
无论哪种情况,该分发方式都会基于白名单用户构建一棵 merkle tree,并以链下方式分发认领链接。
如何使用 gumdrop
你可以通过程序化方式使用 Gumdrop,也可以使用带引导的 Solana 空投 UI进行交互式操作。程序化操作步骤请参考官方文档。若要使用图形用户界面(UI),请按以下步骤操作:

可以执行三种操作:
- Create(创建)
- Claim(认领)
- Close(关闭)
在 Create 页面,指定认领方式(空投类型)。

接下来,选择链下分发方式。

根据所选方式,你需要填写包括铸造地址在内的其他信息以完成创建。
在 Claim 页面,用户可以发起空投认领,系统会通过 Solana 空投白名单的 merkle tree 进行验证。

在 Close 页面,创作者可以通过提供私钥和铸造地址来删除某个 Gumdrop 空投。
一旦关闭,用户将无法再认领该空投的代币。

什么是 AuctionHouse?
AuctionHouse 是一个无需托管(escrow-less)的链上 NFT 销售程序,让创作者和铸造者能够便捷地拍卖和出售 NFT。AuctionHouse 与自托管的前端 Storefront 网站是不同的概念——它是一个部署在链上的程序,接受 SOL 和任意 SPL token。通过使用 AuctionHouse,开发者可以省去自行编写 NFT 销售程序所带来的复杂性和错误。
任何 Solana NFT 市场都可以实现 AuctionHouse 协议,从而获得诸如 NFT 挂单自动买卖双方匹配等功能。
与其他常见拍卖流程中买家需要“认领”NFT 不同,AuctionHouse 的销售交易会自动执行所有必要的交互。换句话说,AuctionHouse 将不必要的步骤简化为对终端用户直观的操作,同时为开发者提供了一套标准化的程序。
AuctionHouse 具有多种可配置的参数。例如,卖家可以为某个 Solana NFT 集合创建一个部分出售订单,自定义手续费和 treasury 目的地址,并强制要求拍卖行对所有交易进行签名。AuctionHouse 也可以选择接受特定或全部 SPL token。
AuctionHouse 还会保留所有 NFT 交易记录的历史(例如挂单、出价和成交)。
如何使用 AuctionHouse
目前,AuctionHouse 仅提供一个用 TypeScript 编写的 CLI 库,图形用户界面(GUI)实现即将推出。
首先,克隆包含 AuctionHouse 库的一体化 Metaplex 仓库。
然后,在 metaplex 文件夹下的 CLI(JS)子文件夹中安装所需的依赖包。
最后,使用已有的密钥对(keypair),你就可以创建一个 AuctionHouse。
交易成功后,命令行会显示如下信息。
注意:你的拍卖行密钥会有所不同
关于更多 CLI 操作,请参考官方文档。
什么是 sugar?
Sugar 是 Candy Machine v2 命令行的替代方案,性能更好,为开发者提供了更简化的步骤。它为 Solana NFT 开发者提供了交互式流程,用来部署 Candy Machine v2,而不必面对原始命令行界面(CLI)中的诸多复杂和繁琐操作。
根据其文档所述,相比 CM v2 CLI,Sugar 提供了以下诸多优势:
- 媒体/metadata 文件上传性能更好
- 利用 cargo 简化构建和安装流程
- 更健壮的错误处理和输入校验
- 更具信息量的错误提示
如何使用 sugar 进行 Solana NFT 发售
首先,用 cargo 安装 Sugar 库。
接下来,用你想要的 Solana RPC 节点提供方和密钥对修改 Solana CLI 配置。
最后,启动交互式会话来部署 Candy Machine。
什么是 hydra?
Hydra 是一种“钱包中的钱包”,可以将资金分发给数量极其庞大的地址集合。它也被称为 "Fanout Wallet"(分发钱包),因为它类似于从主钱包分出许多子钱包。Hydra 支持一些颇具吸引力的功能,例如版税代币化(即把收到的版税分发给成员)和 token 化会员(例如便捷的质押奖励)。

Hydra 钱包在其生命周期中有三个阶段:
- Creation(创建)
- Member Addition(添加成员)
- Distribution(分发)
1. 创建阶段
在创建阶段,作为创作者(称为 Authority)的你可以创建一个 Hydra 钱包。有多种可自定义的维度,例如会员模型、名称、接受的 token(SOL 或任意 SPL token),以及会员的总份额数。
由于其操作和要求较为复杂,创建一个 Hydra 钱包的成本会达到数百 SOL。
2. 添加成员阶段
在添加成员阶段,你可以将一个账户添加为 Hydra 钱包的成员。你可以添加普通钱包(用户)、NFT 或 token,其中涉及更复杂的资金份额计算方式。
3. 分发阶段
在分发阶段,Hydra 钱包会被多次调用,按各成员的份额向他们分发资金。
每次分发调用都必须指定接收资金的成员,且 Hydra 钱包在其整个生命周期中预计会被多次调用。这种“每次调用对应一个成员”的设计,使钱包在处理大规模成员集合时依然能保持较低的处理和内存开销。
如何使用 hydra
Hydra 是另一个可被调用进行交互的链上程序。
Hydra 的 program ID 为:
- Mainnet:hyDQ4Nz1eYyegS6JfenyKwKzYxRsCWCriYSAjtzP4Vg
- Devnet:hyDQ4Nz1eYyegS6JfenyKwKzYxRsCWCriYSAjtzP4Vg
官方文档中包含了用于创建和交互 Hydra 钱包的最简代码示例。你可以像这样创建一个钱包:
添加新成员(他们的地址)也只需几行代码即可完成。以下是将一个钱包地址添加为成员的示例。
什么是 amman?
Amman 是一个通过运行本地验证节点来测试 Solana SDK 库和应用的工具包。该工具包由 Metaplex Foundation 开发,旨在为涉及高频更新和测试的项目提升开发体验。
尽管 gas 费用很低,但在主网上部署复杂的 Solana 程序仍可能成本过高。因此,为了快速部署和测试应用及 SDK 库,开发者可以选择使用 Solana devnet、testnet,或本地验证节点。
由于 testnet/devnet 需要不断进行空投,并反复经历部署-等待的流程,本地验证节点在需要快速、无需联网即可完成部署和测试的场景中更受青睐。
此外,运行本地验证节点可以在测试期间保证 100% 的可用性,而 testnet/devnet 在此过程中可能会离线。
Amman CLI 包含 relay、validator interface 和 mock storage server,三者共同构成一个验证节点。
Amman Client 包含 asserts、address labeling、transaction interface,以及一个连接 relay 的客户端,这些都应在测试和浏览器环境中用于连接本地验证节点。
如何使用 amman
Amman GitHub 仓库提供了一份详尽的 Amman 使用指南。你需要先克隆该仓库才能开始使用 Amman。
要运行 Amman CLI,你需要创建一个配置文件,Amman GitHub 仓库中提供了示例。
有了配置文件之后,你可以通过以下命令启动,之后再停止本地验证节点:
Amman Client 仓库提供了许多可在测试脚本或浏览器中使用的 TypeScript 文件。
什么是 metaboss?
被称为 Metaplex “瑞士军刀工具”的 Metaboss,为开发者提供了众多围绕 Metaplex 封装的功能,方便他们在该生态中快速构建应用。
由于 Metaplex 是一个快速演进的新系统,开发者往往需要自行实现与 Metaplex 交互的功能。Metaboss 为整个生态提供了一致、标准化的函数,简化了这一过程。
Metaboss 提供的部分功能包括:
- 解码某个 token mint 账户的 metadata
- 从 JSON 文件铸造新的 NFT
- 获取指定 Candy Machine ID 或 update authority 下当前 NFT 持有者的快照
- 获取指定 update authority 下所有 candy machine state 和 config 账户的列表
- 更新某个 NFT 全部 metadata Data 结构字段
如何使用 metaboss
首先,通过以下命令将 Metaboss 作为依赖包安装到你的 Solana 程序中:
现在你就可以开始使用 Metaboss 了!
官方文档中提供了大量示例。例如,你只需一行命令就能从 JSON 文件铸造一个新的 NFT。
首先为该 NFT 准备好 JSON 文件 new_nft.json。
然后,你可以使用以下命令创建任意数量的该 NFT:
如何在 Alchemy 上开始使用 metaplex
Alchemy 提供 Solana API,配有最完善的免费套餐,方便开发者立即开始构建。
想在 Alchemy 上部署你的 Metaplex NFT 项目吗?注册一个免费的 Alchemy 账户,即可开始构建!
相关概览
Solana2026年7月27日
Solana 节点:验证者节点、RPC 节点与自建节点
Solana 节点是什么,验证者节点、RPC 节点与辅助数据系统有何区别,以及何时应自建节点、何时应使用第三方服务。
Solana2026年7月22日
Solana 归档数据:如何查询完整的区块与交易历史
Solana 归档数据详解:节点为何修剪历史数据、哪些 RPC 方法需要归档访问权限,以及如何大规模查询完整的区块与交易历史。
Solana2026年5月28日
Solana Agent Kit 与 GOAT 与 ElizaOS:该选哪个框架?
对比 Solana Agent Kit、GOAT 与 ElizaOS:Solana 原生深度、多链广度还是完整的 agent 运行时。包含代码示例与决策框架。

构建区块链应用
Alchemy 将最强大的 Web3 开发者产品和工具与资源、社区及专业支持结合在一起。