Noções Básicas de State Compression
8 exemplos para você começar com state compression e cNFTs - 6 básicos e 2 intermediários.
Busque em todas as páginas da documentação
8 exemplos para você começar com state compression e cNFTs - 6 básicos e 2 intermediários.
npm install @solana/kit@7.0.0 @metaplex-foundation/mpl-bubblegum @metaplex-foundation/mpl-account-compressionRPC com DAS habilitado necessário para leituras de proof. Programa SPL Account Compression: cmtDvXnzBMY46rZyrBGX7p7r4Xc78DGpXEC5rVjrvAf.
Contas de mint NFT completas custam aluguel por item. Compressão amortiza custo entre milhões de folhas.
// Full NFT: ~several accounts per item
// cNFT: one tree account + leaf hash updates per mintRelacionado: Cost & Trade-offs
Concurrent Merkle Trees permitem múltiplas atualizações por slot sem reescrever a árvore inteira em série.
const TREE_PROGRAM = "cmtDvXnzBMY46rZyrBGX7p7r4Xc78DGpXEC5rVjrvAf";
// Tree account stores root, canopy, and change logRelacionado: How Compression Works
Bubblegum minta e transfere compressed NFTs nas árvores.
const BUBBLEGUM_PROGRAM = "BGUMAp9Gq7iN3nEkgqX1FbwwdBonfLCEEgxoj36SYPk";Relacionado: Compressed NFTs (Bubblegum)
Carteiras não decodificam folhas merkle manualmente.
const asset = await dasRpc("getAsset", { id: "CNFT_ASSET_ID" });
console.log(asset.compression?.leaf_id, asset.compression?.tree);compression na resposta DAS do assetinterface frequentemente CompressedNftgetAccountInfo no id do asset não é suficienteRelacionado: Reading Compressed Assets (DAS)
Transferências precisam do caminho merkle proof do DAS.
const proof = await dasRpc("getAssetProof", { id: "CNFT_ASSET_ID" });
console.log(proof.root, proof.proof.length);root usado no build time para depurar falhasRelacionado: Transferring cNFTs
Criador da árvore controla minting; delegates podem ser concedidos para serviços de mint custodial.
# Tree created with tree authority signer
# Bubblegum mint CPIs update leaf under authority rulesRelacionado: Compressed NFTs (Bubblegum)
// 1. createTree (depth/maxBufferSize/canopy per capacity plan)
// 2. mintV1 in loop or batch transactions
// 3. monitor leaf index via DAS getAssetsByGroupRelacionado: Compression Best Practices
| Use cNFT | Use Core / Token Metadata |
|---|---|
| 10k+ itens similares | Arte fine 1/1 |
| Prioridade de baixo custo por item | Máxima simplicidade de carteira |
| Stack de leitura com DAS | Composabilidade on-chain pesada por NFT |
Relacionado: NFT Basics on Solana
Versões da stack: Esta página foi escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0 e LiteSVM 0.6.x.
Revisado por Chris St. John·Última atualização: 19 de jul. de 2026