---
title: "O que são NFTs comprimidos?"
description: "Saiba o que são NFTs comprimidos e como funcionam"
---

# O que são NFTs comprimidos?

Compressed NFTs na Solana reduzem os custos de criar e gerenciar grandes quantidades de NFTs ao armazenar dados no próprio ledger. Fazer o mint de compressed NFTs é significativamente mais econômico do que o mint de NFTs convencionais, o que cria uma série de novos casos de uso e formas de trazer mais usuários ativos para Solana.

Este artigo vai explicar o que são compressed NFTs, como funcionam, e como comprimir seus NFTs existentes ou novos.

## **O que são compressed NFTs?**

**Compressed NFTs são NFTs na Solana que armazenam seus dados em uma estrutura de Merkle tree, na qual a Merkle root fica on-chain em uma conta e as Merkle leaves ficam armazenadas no ledger da Solana \(que é off-chain, mas está sujeito a consenso\), em vez de ficarem totalmente on-chain como os NFTs convencionais.**

**‍**Assim como os NFTs comuns, os compressed NFTs são emitidos e confirmados on-chain, porém [provedores de Solana RPC](https://www.alchemy.com/overviews/solana-rpc) são usados para armazenar e lidar com dados off-chain, minimizando os custos de armazenamento.

Compressed NFTs usam indexers para gerenciar dados de transações e facilitar consultas de dados entre RPCs e smart contracts on-chain. Smart contracts existentes precisam ser modificados para interagir com compressed NFTs. Como alternativa, compressed NFTs podem ser descomprimidos para funcionar com programas Solana não modificados.

### **Quem criou os compressed NFTs?**

Compressed NFTs são a criação conjunta do programa de Merkle tree da [Solana Labs](https://www.alchemy.com/dapps/solana) (conhecido como [**account-compression**](https://github.com/solana-labs/solana-program-library/tree/master/account-compression)) e do programa de compressed NFTs da fundação [Metaplex](https://www.alchemy.com/dapps/metaplex) (conhecido como Bubblegum).

[Metaplex](https://www.alchemy.com/overviews/metaplex) criou os padrões de NFT para Solana, e a equipe fundadora se originou da Solana Labs. Desde seu lançamento em 2021, a Metaplex já viabilizou o mint de mais de 22 milhões de NFTs e gerou $3,36 bilhões em vendas de NFTs. O programa de Merkle tree na Solana permite que [compressed NFTs criados via Metaplex](https://www.metaplex.com/posts/expanding-digital-assets-with-compression-for-nfts) sejam codificados no ledger da blockchain Solana.

### **Quais são os casos de uso comuns para compressed NFTs?**

**Compressed NFTs permitem que empresas e indivíduos façam o mint de NFTs em grande escala sem incorrer nos custos proibitivos associados aos NFTs convencionais.** Setores que podem usar compressed NFTs incluem: games, música, eventos, metaversos e empresas.

#### **1. Games**

Compressed NFTs podem servir como ativos in-game para milhões de jogadores. Devido à escala potencial dos jogos web3, compressed NFTs podem economizar custos para empresas de desenvolvimento de jogos web3 ao emitir milhões de NFTs in-game.

#### **2. Música e eventos**

Com milhões de ingressos de shows e eventos vendidos todos os anos, compressed NFTs podem economizar dinheiro para empresas de venda de ingressos e funcionar como colecionáveis digitais para os participantes dos eventos, tudo isso mantendo a segurança e a autenticidade dos produtos web3.

#### **3. Metaverso**

Com a crescente popularidade de metaversos e jogos no estilo metaverso, compressed NFTs permitem que empresas de desenvolvimento de metaversos digitalizem grandes quantidades de colecionáveis in-game para milhões de pessoas ao redor do mundo.

#### **4. Sistemas de nível empresarial**

Do rastreamento de mercadorias em cadeias de suprimentos à digitalização de registros públicos, compressed NFTs podem permitir que grandes organizações façam o mint, armazenem e recuperem NFTs em volumes massivos, a uma fração do custo das implementações de NFT atuais.

### **Quando devem ser usados os compressed NFTs?**

Compressed NFTs devem ser usados ao fazer mint de NFTs em escala, já que armazenar dados off-chain reduz significativamente o [**custo de aluguel de espaço de conta**](https://www.alchemy.com/overviews/how-to-calculate-rent-for-solana-programs) que toda conta Solana precisa pagar para gerenciar dados.

## **Compressed NFTs vs NFTs não comprimidos**

Tanto os compressed NFTs quanto os NFTs não comprimidos são emitidos e verificados on-chain, mas a principal diferença está em onde o metadata do NFT é armazenado. Compressed NFTs armazenam metadata off-chain, e os NFTs Solana tradicionais armazenam dados on-chain.

### **Em que os compressed NFTs são diferentes dos NFTs?**

Compressed NFTs se diferenciam dos NFTs convencionais em quatro pontos principais:

#### **1. Armazenamento de metadata do NFT**

Compressed NFTs armazenam seus dados off-chain em uma Merkle tree e são acessados via provedores de [Solana RPC](https://www.alchemy.com/dapps/list-of/rpc-node-providers-on-solana).

#### **2. Custo**

Por armazenarem dados off-chain, compressed NFTs são significativamente mais econômicos.

#### **3. Propriedade de dados**

Quando você quer modificar um compressed NFT, precisa provar criptograficamente sua autoridade para alterar os dados off-chain, o que garante que o armazenamento de dados off-chain seja confiável.

#### **4. Interações com programas**

[Programas](https://www.alchemy.com/overviews/solana-data-vs-program-accounts) existentes \(ou seja, smart contracts da Solana\) precisam ser modificados para interagir com compressed NFTs, a menos que os próprios NFTs sejam descomprimidos.

### **Quanto dinheiro os compressed NFTs economizam?**

Para fazer o mint de 1 milhão de NFTs convencionais, seriam necessários cerca de 12.000 SOL, e fazer o mint da mesma quantidade de compressed NFTs custaria apenas 5 SOL, ou seja, uma economia de 99,9%.

Na verdade, quanto maior a coleção de NFTs, maior a redução nos custos de mint com a compressão, como demonstrado na imagem abaixo:

<EmbeddedTable
  table={{
    columns: [
      { key: "1", width: 200, title: "Collection Size", dataType: "object" },
      { key: "2", width: 200, title: "Cost w/o compression", dataType: "object" },
      { key: "3", width: 200, title: "Cost w/ compression", dataType: "object" },
      { key: "4", width: 200, title: "How much cheaper?", dataType: "object" },
    ],
    data: [
      {
        "1": { title: "<p>1M NFTs</p>", tooltip: "", icon: "" },
        "2": { title: "<p>12K SOL</p>", tooltip: "", icon: "" },
        "3": { title: "<p>5 SOL</p>", tooltip: "", icon: "" },
        "4": { title: "<p>2,400x</p>", tooltip: "", icon: "" },
        id: 0,
      },
      {
        "1": { title: "<p>1B NFTs</p>", tooltip: "", icon: "" },
        "2": { title: "<p>12M SOL</p>", tooltip: "", icon: "" },
        "3": { title: "<p>500 SOL</p>", tooltip: "", icon: "" },
        "4": { title: "<p>24,000x</p>", tooltip: "", icon: "" },
        id: 1,
      },
    ],
  }}
/>

Como o maior custo ao fazer o mint de NFTs convencionais é pagar pelo espaço de armazenamento na Solana, o que os compressed NFTs eliminam, a maior parte dos custos restantes se resume a simples taxas de transação.

#### **Qual é o custo para fazer o mint de uma coleção de 10 mil NFTs Solana?**

Fazer o mint de 10.000 compressed NFTs, que é o tamanho padrão de coleção de NFT para novos projetos, custa cerca de 3,5 SOL. A tabela abaixo mostra em detalhe o custo de mint de coleções de compressed NFTs em quantidades que variam de 10 mil a 1 bilhão de NFTs:

<EmbeddedTable
  table={{
    columns: [
      { key: "1", width: 200, title: "Quantity", dataType: "object" },
      { key: "2", width: 200, title: "Tree rent (SOL)", dataType: "object" },
      { key: "3", width: 200, title: "Tree TX cost (SOL)", dataType: "object" },
      { key: "4", width: 200, title: "Total cost (SOL)", dataType: "object" },
      { key: "5", width: 200, title: "Cost per NFT (SOL)", dataType: "object" },
    ],
    data: [
      {
        "1": { title: "<p>10k</p>", tooltip: "", icon: "" },
        "2": { title: "<p>3.48</p>", tooltip: "", icon: "" },
        "3": { title: "<p>0.01</p>", tooltip: "", icon: "" },
        "4": { title: "<p>3.49</p>", tooltip: "", icon: "" },
        "5": { title: "<p>0.000349</p>", tooltip: "", icon: "" },
        id: 0,
      },
      {
        "1": { title: "<p>100k</p>", tooltip: "", icon: "" },
        "2": { title: "<p>4.17</p>", tooltip: "", icon: "" },
        "3": { title: "<p>0.05</p>", tooltip: "", icon: "" },
        "4": { title: "<p>4.22</p>", tooltip: "", icon: "" },
        "5": { title: "<p>0.0000422</p>", tooltip: "", icon: "" },
        id: 1,
      },
      {
        "1": { title: "<p>1m</p>", tooltip: "", icon: "" },
        "2": { title: "<p>4.85</p>", tooltip: "", icon: "" },
        "3": { title: "<p>0.5</p>", tooltip: "", icon: "" },
        "4": { title: "<p>5.35</p>", tooltip: "", icon: "" },
        "5": { title: "<p>0.00000053</p>", tooltip: "", icon: "" },
        id: 2,
      },
      {
        "1": { title: "<p>100m</p>", tooltip: "", icon: "" },
        "2": { title: "<p>6.45</p>", tooltip: "", icon: "" },
        "3": { title: "<p>50</p>", tooltip: "", icon: "" },
        "4": { title: "<p>56.45</p>", tooltip: "", icon: "" },
        "5": { title: "<p>6e-7</p>", tooltip: "", icon: "" },
        id: 3,
      },
      {
        "1": { title: "<p>1b</p>", tooltip: "", icon: "" },
        "2": { title: "<p>7.13</p>", tooltip: "", icon: "" },
        "3": { title: "<p>500</p>", tooltip: "", icon: "" },
        "4": { title: "<p>507.13</p>", tooltip: "", icon: "" },
        "5": { title: "<p>5e-7</p>", tooltip: "", icon: "" },
        id: 4,
      },
    ],
  }}
/>

## **Como funcionam os compressed NFTs?**

Veja como um NFT é comprimido:

1. O programa Bubblegum da Metaplex é usado para verificar o metadata associado a um NFT
1. Bubblegum chama account-compression para adicionar uma nova leaf à Merkle tree
1. Account-compression atualiza a Merkle tree on-chain para refletir o novo estado
1. Qualquer mudança na Merkle tree, como a adição de novos NFTs, é escrita na blockchain Solana

Indexers off-chain acompanham as modificações na Merkle tree e gerenciam as informações e autorizações necessárias para suportar [apps](https://www.alchemy.com/dapps/top/defi-dapps) e programas.

### O que são authorities de compressed NFT?

**Authorities são atributos associados a uma conta de NFT que especificam o que a conta pode fazer.** Toda conta de NFT tem outras três contas subordinadas a ela:

1. Uma mint account
1. Uma [associated token account](https://www.alchemy.com/overviews/associated-token-account)
1. Uma wallet account

Cada uma dessas contas subordinadas tem atributos diferentes associados a ela.

#### **1. Tree authority**

Essa authority normalmente é um programa autorizado a adicionar novas leaves à tree via o programa account-compression, e esse programa também é responsável por codificar os hashes criptográficos.

#### **2. Leaf authority**

Esse é um atributo dado a uma wallet account que possui uma leaf. A wallet account pode ser usada para substituir, remover e descomprimir uma leaf.

### **Onde os compressed NFTs são armazenados?**

O metadata de compressed NFTs é armazenado em uma Merkle tree off-chain com provedores de serviço de Solana RPC, e esses dados são monitorados por um indexer. Isso é mais econômico do que armazenar os mesmos dados on-chain. Na prática, os dados ficam off-chain, enquanto a prova, muito menor, desses dados fica on-chain na forma da Merkle tree root.

## **Como comprimir NFTs**

Comprimir NFTs é uma tarefa bastante simples, mas o processo varia um pouco dependendo se você está comprimindo NFTs novos ou existentes.

### **Comprimindo novos NFTs**

Aqui estão os quatro passos para comprimir novos NFTs \(NFTs que ainda não foram mintados\):

1. O software Bubblegum da Metaplex é usado para criar uma Gummyroll Merkle tree
1. A instrução mintNFT do Bubblegum é chamada
1. A instrução **mintNFT** é recuperada do ledger pelo indexer off-chain, e o metadata da leaf é salvo.
1. A instrução **get_assets_for_owner** é chamada pelo dapp através de um nó RPC para retornar o NFT

### **Comprimindo NFTs existentes**

Aqui estão os três passos para comprimir NFTs existentes \(NFTs que já foram mintados\):

1. A instrução **transfer** é chamada no programa Bubblegum, junto com as informações do NFT
1. O programa Bubblegum faz uma [cross-program invocation](https://www.alchemy.com/overviews/cross-program-invocation) para o Gummyroll, adicionando uma nova Merkle tree root
1. Um indexer off-chain recupera a instrução de transferência da blockchain e atualiza a propriedade de owner da leaf.

O passo três garante que a propriedade do NFT representado pela leaf seja transferida para o novo owner.

Para comprimir NFTs existentes não é necessário criar a Gummyroll tree do zero; em vez disso, leia a documentação de compressed NFT da Metaplex para mais informações.

### **Como funciona a descompressão de NFT?**

O processo de descompressão remove um NFT do conjunto de dados da Merkle tree off-chain. Veja um resumo simples:

Assim que o Token Metadata Program verifica a integridade da leaf na Merkle tree que corresponde ao NFT, o programa cria as seguintes contas:

1. Mint Account
1. Associated Token Account \(ATA\)
1. Token Metadata Account
1. Master Edition Account

O Token Metadata Program então atualiza a Merkle tree para remover a leaf.
