SuperAPI AI 工具集

compressed-nfts-basics

编程与开发

查看项目

更新于 10-16 04:23

技能介绍

用途

本技能用于指导开发者使用 Solana 压缩 NFT(cNFT)进行开发,核心目标是在大规模场景下以低成本创建、转移和管理 NFT。压缩 NFT 通过状态压缩技术,将原本每个 NFT 独立账户的租金成本,替换为一棵 Merkle 树的租金成本,从而在集合规模越大时节省越显著。

主要能力

  • 经济性评估:提供常规 NFT 与压缩 NFT 的成本对比参考。资料给出的近似数据为:1,000 枚约 2 SOL 对比约 0.5 SOL(节省 75%);10,000 枚约 20 SOL 对比约 1 SOL(节省 95%);100,000 枚约 200 SOL 对比约 2 SOL(节省 99%);1,000,000 枚约 2000 SOL 对比约 5 SOL(节省 99.75%)。树成本为一次性预付,之后铸造近乎免费。
  • Merkle 树配置:树的最大深度(maxDepth)、最大缓冲区大小(maxBufferSize)和 canopy 深度(canopyDepth)在创建时确定且不可更改。资料给出三档常见配置:小型(maxDepth 14,容量 16,384,约 0.5 SOL)、中型(maxDepth 20,容量 1,048,576,约 1.5 SOL)、大型(maxDepth 30,容量约 10 亿,约 5+ SOL)。
  • 树创建:使用 @metaplex-foundation/mpl-bubblegum 的 createTree 与 UMI 创建 Merkle 树,可设置 public: false 使仅树权限方可铸造。
  • 铸造:使用 mintV1 铸造单个 cNFT,并提供批量铸造函数(默认每批 5 笔交易)。
  • 转移:使用 transfer 与 getAssetWithProof,转移需要索引器提供 Merkle 证明。
  • 查询:通过 DAS(Digital Asset Standard)API 按所有者、集合或属性检索 cNFT,示例使用 Helius RPC 的 getAssetsByOwner、getAssetsByGroup、searchAssets 等方法。
  • 集合管理:先创建普通 NFT 作为集合,再使用 mintToCollectionV1 将 cNFT 铸造到集合中。
  • 辅助工具:提供树尺寸推荐函数、cNFT 发布检查清单、元数据 JSON 模板,以及常见故障模式与调试方法。

使用方式

资料以代码示例形式给出完整流程:先评估集合规模与铸造模式,计算并创建 Merkle 树,创建集合 NFT,上传元数据到 Arweave/IPFS,然后批量铸造,最后通过索引器验证与查询。转移和销毁操作前需从索引器获取最新 Merkle 证明。

适用场景

  • 创建大型 NFT 集合(数千至数百万枚)。
  • 需要显著降低单枚 NFT 铸造成本的场景。
  • 按需铸造平台、连续铸造等模式。

限制与注意事项

  • 树的最大深度与缓冲区大小在创建时固定,需谨慎选择。
  • 每次转移或销毁都需要索引器提供 Merkle 证明。
  • 索引器是必需的:没有 Helius、Triton 或自建索引器,无法查询或操作 cNFT。
  • 并非所有市场都支持 cNFT,选择压缩方案前需确认上架平台的支持情况。
  • 解压缩(将 cNFT 转为普通 NFT)可行但成本高昂,且违背压缩初衷。
  • 常见故障包括:树创建因租金不足失败、树满或缓冲区超限导致铸造失败、索引器未同步导致查不到已铸造的 cNFT、证明过期导致转移失败、钱包不支持 cNFT 导致不显示。

质量验证标准

资料给出的完成标准包括:树以合适配置创建、测试铸造成功、铸造的 cNFT 可通过 DAS API 查询、使用最新证明可完成转移、集合在市场正确显示、错误处理覆盖常见故障。