简介

概述

Last updated February 24, 2026

Summary

Bubblegum V2 (MPL-Bubblegum) is the Metaplex program for creating and managing compressed NFTs on Solana. It stores NFT data as hashed leaves in on-chain merkle trees, reducing minting costs by orders of magnitude compared to traditional NFTs.

  • Mint millions of cNFTs for a fraction of the cost of standard Solana NFTs (~0.00001 SOL per cNFT in large trees)
  • New in V2: freeze/thaw, soulbound NFTs, MPL-Core collections, royalty enforcement, permanent delegates
  • Requires an RPC provider supporting the Metaplex DAS API for indexing and fetching cNFT data
  • Uses LeafSchemaV2 with V2 Merkle Trees — not backward-compatible with V1 trees

Bubblegum V2是Metaplex协议程序的最新迭代,用于在Solana上创建和交互压缩NFT(cNFT)。专为大规模操作而构建,Bubblegum V2保留了原始Bubblegum的所有优势,同时引入了强大的新功能。压缩NFT通过重新思考链上数据存储方式,使NFT的创建可以扩展到新的数量级。

请注意,某些Bubblegum V2指令将需要协议费用。请查看协议费用页面以获取最新信息。

快速开始

找到您选择的语言或库,开始使用压缩NFT。

API参考

寻找特定内容?查看我们的API参考并找到您的答案。

Bubblegum V2的新功能

Bubblegum V2在原始Bubblegum程序的基础上构建,同时引入了几个强大的新功能:

  • 冻结和解冻功能:提供两种类型的冻结/解冻:1)cNFT所有者可以将冻结权限委托给叶子委托人,用于资产级别的控制,为各种用例提供灵活性,如在特定事件期间阻止转账或实现锁定机制。2)如果在集合创建时启用了PermanentFreezeDelegate插件,项目创建者可以通过永久冻结委托人对cNFT进行集合级别的冻结和解冻控制
  • MPL-Core集合集成:Bubblegum V2 NFT现在可以添加到MPL-Core集合,而不仅限于代币元数据集合,允许更大的灵活性和与更广泛的Metaplex生态系统的集成。
  • 版税强制执行:由于Bubblegum V2使用MPL-Core集合,可以使用ProgramDenyList等方式对cNFT强制执行版税。
  • 灵魂绑定NFT:cNFT现在可以设为灵魂绑定(不可转让),将其永久绑定到所有者的钱包。这非常适合凭证、出席证明、身份验证等。它需要在创建集合时启用PermanentFreezeDelegate插件。
  • 允许永久转账:如果在集合上启用了PermanentTransferDelegate插件,永久转账委托人现在可以在没有叶子所有者交互的情况下将cNFT转移给新所有者。
  • 授权销毁:如果集合启用了PermanentBurnDelegate插件,委托人可以在没有叶子所有者签名的情况下销毁NFT。
  • 属性:可以使用MPL-Core的attributes插件在集合级别添加属性数据。

为了使上述功能正常工作,Bubblegum V2引入了新的叶子模式(LeafSchemaV2)。要了解更多关于Bubblegum V2中使用的叶子,请查看以下部分。

LeafSchemaV2

Bubblegum V2引入了新的叶子模式(LeafSchemaV2),它支持额外的功能同时保持向后兼容。这个新模式允许:

  • 与MPL-Core集合集成,而不是传统的代币元数据
  • 支持冻结/解冻功能
  • 启用灵魂绑定功能 项目可以根据需求选择使用旧版Bubblegum的原始叶子Schema或使用Bubblegum V2的新v2模式。

要使用新的LeafSchemaV2,必须使用需要通过createTreeV2指令创建的V2默克尔树。V1默克尔树不支持新的叶子模式,V2默克尔树与V1叶子不兼容。

默克尔树、叶子和证明

压缩NFT仅存在于默克尔树的上下文中。我们在专门的高级指南中解释了什么是默克尔树,但就本概述而言,您可以将默克尔树视为我们称为叶子的哈希集合。每个叶子是通过哈希压缩NFT的数据获得的。

对于默克尔树中的每个叶子,可以提供一个哈希列表——称为证明——使任何人都能验证给定的叶子是该树的一部分。每当压缩NFT被更新或转移时,其关联的叶子将改变,其证明也会改变。

因此,默克尔树充当链上结构,允许任何人验证给定的压缩NFT是否存在。它们在不存储任何NFT数据的情况下完成这一点,这使它们具有极高的可扩展性。

这带来了一个重要的问题:NFT数据存储在哪里?

Metaplex DAS API

当我们铸造新的压缩NFT时,其数据被哈希并作为新叶子添加到默克尔树中。但还有更多。此外,整个NFT数据存储在创建压缩NFT的交易中。类似地,当压缩NFT被更新时,其更新的数据再次作为更改日志保存在交易中。因此,虽然没有任何账户跟踪该数据,但可以查看分类账中的所有先前交易并找到该信息。

每次仅为获取一个NFT的数据就要爬取数百万个交易,这显然不是最佳用户体验。因此,压缩NFT依赖某些RPC实时索引该信息,以将此抽象化,不让最终用户感知。我们将这个能够获取压缩NFT的RPC API称为Metaplex DAS API

请注意,并非所有RPC都支持DAS API。因此,在应用程序中使用压缩NFT时,您可能对"Metaplex DAS API RPC"页面感兴趣,以选择适当的RPC。

我们在高级"存储和索引NFT数据"指南中更详细地讨论了这一点。

功能

尽管NFT数据不存储在账户中,但仍然可以对压缩NFT执行各种操作。这是通过请求当前NFT数据并确保其哈希叶子在默克尔树上有效来实现的。因此,可以对压缩NFT执行以下操作:

下一步

现在我们从高层次了解了压缩NFT的工作原理以及Bubblegum V2的新功能,我们建议查看我们的快速开始页面,其中列举了可用于与压缩NFT交互的各种语言/框架。之后,可以使用各种功能页面了解更多关于可在cNFT上执行的特定操作。最后,还提供高级指南以加深您对cNFT和默克尔树的了解。

FAQ

Glossary

TermDefinition
cNFTCompressed NFT — an NFT stored as a hashed leaf in a merkle tree rather than in a dedicated on-chain account
Merkle TreeA binary tree data structure where each leaf is a hash of data and each parent node is a hash of its children, enabling efficient cryptographic verification
LeafA leaf node in the merkle tree representing one compressed NFT's hashed data (LeafSchemaV2)
ProofA list of sibling hashes along the path from a leaf to the root, used to verify a cNFT exists in the tree
CanopyCached upper nodes of the merkle tree stored on-chain to reduce proof sizes in transactions
DAS APIDigital Asset Standard API — an RPC extension for indexing and fetching compressed NFT data from transaction history
LeafSchemaV2The V2 data structure containing id, owner, delegate, nonce, data hash, creator hash, collection hash, asset data hash, and flags
TreeConfigA PDA account derived from the merkle tree address that stores Bubblegum-specific configuration (creator, delegate, capacity, version)
Bubblegum TreeThe combination of a Merkle Tree account and its associated TreeConfigV2 PDA account
SoulboundA non-transferable cNFT permanently bound to its owner's wallet, created via the permanent freeze delegate