Cointime

Download App
iOS & Android

State Compression Brings Down Cost of Minting 1 Million NFTs on Solana to ~$110

Cointime Official

Solana, the industry leader in building web3 experiences at scale, has introduced state compression, a new way to store data directly on-chain that cuts down on cost by magnitudes of scale. State compression is already being used by teams across the Solana ecosystem, including Dialect and Crossmint, to power large, user-friendly experiences.

Although state compression can be used to store any sort of data on-chain, the first use of this innovative technology is compressed NFTs, which drastically reduces the cost of minting NFTs. State compression is a novel technology primitive that takes advantage of Merkle trees, allowing developers to store a small bit of data on-chain and updates directly in the Solana ledger, cutting the data storage cost down dramatically while still using the security and decentralization of Solana's base layer.

Jon Wong is technical lead on the ecosystem engineering team at the Solana Foundation.

After numerous phases of development, adoption, and rollout, compressed NFTs are live on Solana’s mainnet-beta and powering the next wave of novel on-chain product experiences. Compressed NFTs are 2,400-24,000x cheaper than their uncompressed counterparts, while still retaining identical structures. Now minting 100 million NFTs on Solana costs only ◎50!

For the developers who want to get started with compressed NFTs, there are five key things to know:

  1. Understand Merkle trees
  2. Initialize the tree
  3. Mint an NFT
  4. Use an RPC to get the latest data
  5. Use proofs to transfer NFTs

Understand Merkle trees

State compression takes advantage of Merkle trees, a data structure known for its capability to “compress” the verifiability of a tree of data into a “hash,” or “fingerprint,” of the current state of the tree. The Merkle roots are stored on-chain and updates are stored directly in the Solana ledger, meaning anyone can verifiably (and permissionlessly) reconstruct the tree, combining a vast amount of verifiable off-chain storage with a low overall cost of on-chain storage.

Engineers at Solana Labs added the capability to concurrently update Merkle trees multiple times in the same block by allowing the fast-forwarding of stale proofs. This capability is unique to Solana. See more in the whitepaper.

Initialize the tree

The first thing you need to do is initialize the Merkle tree. There are three parameters to any Merkle tree: 1) Depth (capacity), 2) buffer size (concurrency / latency), and 3) canopy height (composability).

Depth is easy — the capacity of a perfectly balanced concurrent Merkle tree is 2^{DEPTH}, and trees can be configured to hold anywhere from eight leaves all the way up to a billion (2^30). In this case, leaves can be NFTs.

Buffer size is an approximation of the number of concurrent updates that can happen in the same block. Merkle trees typically have an issue whereby any modification of the tree causes any previously computed proofs to go out-of-date, but with this novel concurrent Merkle tree implementation, stale proofs can be fast-forwarded and still be accepted by the smart contract. A buffer size of 64 means that any given proof will still remain valid for up to 64 updates of the tree, after which it must be recomputed. Buffer size can be anywhere from eight to 2048.

Canopy height specifies the portion of the tree that remains on-chain, reducing the amount of proofs that have to be submitted by clients for verification. Given the current transaction size limits on Solana, this is the only feasible way to pass enough proofs to be able to validate the existence of trees with a depth > 20. Canopy height maxes out at 17.

Rather than initialize one giant tree to hold everything, I recommend issuing numerous, smaller trees of varying sizes. This reduces write-lock contention on the tree account, as well as provides more opportunities for composability by reducing the number of proofs needed to be submitted for any given modification.

Choose a canopy height that maximizes composability — while it costs more in rent, a canopy height that is DEPTH-3 provides a similar interface to existing NFT-related smart contracts that already pass 3 accounts. For example, a tree of depth 20 could have a canopy of 17 so that clients only need to submit three proofs to make any modification to a tree.

Mint an NFT

Tooling for minting compressed NFTs is already live. Bubblegum, the smart contract written by Metaplex that powers compressed NFTs, uses state compression under the hood. Mint, transfer, and replace instructions should be issued against the Bubblegum smart contract. Mints do not require proofs, so anyone can mint compressed NFTs as easily as before.

Use an RPC to get the latest data

Compressed NFTs eschew the typical on-chain account approach, and because data related to trees is being issued into the Solana ledger, RPCs are required to make the “read” experience nice and snappy. HeliusSimpleHash, and Triton all have support for compressed NFTs, and 2/3 implement the Metaplex Read API—a uniform interface for retrieving all the information necessary about both compressed and uncompressed NFTs.

Use proofs to transfer NFTs

Because of how compressed NFTs are stored, any modifications to those NFTs (such as an ownership change, or an update to the metadata like the collection information) requires a modification of the storage tree itself. In order to do so, one must compute the proofs needed to signify that you know the latest state of the tree, along with the signature of the leaf owner (or delegate).

Merkle tree proofs are the set of hashes that can be used to prove that the leaf was in the tree to begin with. RPC nodes can provide this with the `getAssetProof` Read API RPC method. Depending on the canopy height of the tree, one can submit a subset of the proof path and let the on-chain program handle reconciling the rest of it.

Submit the proofs along with the modification you want to make (a new owner!) and send the transaction. Voila!

Once you’ve understood these concepts, you should be ready to take advantage of compressed NFTs and build brand new experiences.

Here are some additional resources for you to explore:

NFT
Comments

All Comments

Recommended for you

  • US Spot Bitcoin ETF Sees Net Outflow of $131.1 Million Yesterday

    On August 14, according to monitoring data from Farside Investors, the US spot Bitcoin ETF experienced a net outflow of $131.1 million yesterday.

  • US Spot Ethereum ETF Sees $5.9 Million Net Inflow

    On August 14, according to monitoring data from Farside Investors, the US spot Ethereum ETF experienced a net inflow of $5.9 million yesterday.

  • Former SEC Employee: Even if the CLARITY Act Passes, SEC and CFTC Will Need Months to Develop Implementation Rules

    On August 14, former SEC employee Anne Kelley posted on the X platform that the U.S. Constitution grants Congress exclusive legislative authority. Congress subsequently delegates some of its powers to federal agencies like the SEC, which are responsible for formulating rules to implement relevant laws. Even if the public meeting on tokenization innovation exemptions by the SEC is held tomorrow, it will only be the first formal step in the proposed rulemaking process and does not mean that the final rules are established. There will still be a public comment period, during which members of Congress often express their opinions, and the entire process typically takes months. The committee can advance rulemaking through various procedures: public meetings, item-by-item reviews, issuing temporary final rules under limited circumstances, or issuing regulatory guidance. However, formal rules with binding authority must still comply with the Administrative Procedure Act (APA). If the CLARITY Act passes during this time, regulators do not need to start from scratch; they can continue to advance the proposal by issuing a Supplemental Notice of Proposed Rulemaking (SNPRM) based on existing work. Even if the CLARITY Act passes smoothly tomorrow, the SEC and the Commodity Futures Trading Commission (CFTC) will still need to draft supporting implementation details, a process that will take at least several months. The GENIUS Act was passed a year ago, and to this day it has not been fully implemented, which is the reason for this delay. There is no one-size-fits-all solution. For rules to be sustainable and withstand judicial review, they must adhere to the Administrative Procedure Act. We should support the compliance process. This matter should not evolve into a confrontation between the SEC and Congress; both should work in collaboration.

  • BTC Surpasses $64,000

    Market data shows that BTC has surpassed $64,000, currently priced at $64,000.4, with a 24-hour increase of 0.29%. Due to significant market fluctuations, please ensure proper risk management.

  • US Spot Bitcoin ETF Sees Net Outflow of $61.1 Million Yesterday

    On August 13, according to monitoring data from Farside Investors, the US spot Bitcoin ETF experienced a net outflow of $61.1 million yesterday.

  • US Spot Ethereum ETF Sees $7.4 Million Net Inflow Yesterday

    On August 13, according to data monitored by Farside Investors, the US spot Ethereum ETF recorded a net inflow of $7.4 million yesterday.

  • CFTC Warns Prediction Markets: Trader Incentive Programs May Encourage False Trading and Market Manipulation

    On August 13, the U.S. Commodity Futures Trading Commission (CFTC) Market Oversight Division issued a regulatory advisory reminding designated contract markets (DCM) of their regulatory obligations when self-certifying market maker, liquidity, trading, or incentive programs under CFTC Rules 40.5 and 40.6. The advisory addresses the increasing number of incentive program rule filings submitted under CFTC Rule 40.6(a), particularly those related to event contract products. The CFTC noted that some of these filings contain procedural or substantive deficiencies. These deficiencies may hinder staff's ability to assess whether the DCM has adequately notified the terms of the programs and whether it has sufficiently evaluated the compliance of the relevant programs with core principles and other regulatory requirements of the Commission. The guidance clarifies staff expectations regarding the procedural and substantive requirements when submitting materials under CFTC Rules 40.5 and 40.6, including initial submissions of incentive programs, amendments or changes to relevant programs, and submission procedures.

  • Metaplanet CEO: Transfer of 5,014 BTC Between Custodial Addresses is Routine, No Sale Made

    On August 13, Cointelegraph reported that Metaplanet CEO Simon Gerovich stated that the company's transfer of 5,014 BTC between custodial addresses is a routine operation. He emphasized, 'No Bitcoin has been sold, and the company's holdings remain at 43,000 BTC.'

  • Bullish Sentiment in Bond Market Rises as 10-Year Treasury Yield Falls Below 1.7%

    On August 13, the domestic bond market has seen a continued rise in bullish sentiment, with long-term rates experiencing a significant breakthrough. Market data shows that after fluctuating around 1.7% for several days, the yield on the 10-year Treasury bond fell below the 1.7% mark again on August 12, closing at 1.694%. Meanwhile, the yield on the 30-year Treasury bond also declined, closing at 2.160%, marking a low for the year. Industry insiders believe that the current bond market trend is driven by multiple factors including expectations of loose monetary policy, a balanced and relaxed funding environment, and institutional investors increasing their positions. However, after the key level was breached, the market's bullish and bearish dynamics intensified, and the effective conditions for a sustained downward trend in interest rates still need further validation.

  • NVIDIA Shares Rise Over 3%

    On August 12, NVIDIA's stock price increased by 3.35%, reaching $224.80 per share, the highest level in two months, with a total market capitalization of $5.44 trillion.