What is ZK Compression?

ZK Compression is a new primitive built on Solana that enables you to build applications at scale.

Developers and users can opt to compress their on-chain state, reducing state costs by orders of magnitude while preserving the security, performance, and composability of the Solana L1.

State cost reduction

Creation CostRegular AccountCompressed Account

100-byte PDA Account

~ 0.0016 SOL

~ 0.00001 SOL (160x cheaper)

100 Token Accounts

~ 0.2 SOL

~ 0.00004 SOL (5000x cheaper)

Core Features

Minimal state cost

Securely stores state on cheaper ledger space instead of the more expensive account space, allowing apps to scale to millions of users

L1 security & performance

Execution and data availability on Solana, preserving the performance and security guarantees of the L1


Solana programs can mix and match between compressed and regular on-chain state, allowing atomic interaction with multiple programs, accounts, and compressed accounts

ZK and Compression in a Nutshell:

Compression: Only the state roots (small fingerprints of all compressed accounts) are stored in on-chain accounts. The underlying data is stored on the cheaper Solana ledger.

ZK: The protocol uses small zero-knowledge proofs (validity proofs) to ensure the integrity of the compressed state. This is all done under the hood. You can fetch validity proofs from RPC providers that support ZK Compression.

How to use this Documentation

This documentation provides a high-level introduction to the ZK Compression primitive and is a directory guiding you to relevant codebases, examples, and advanced guides.

The ZK Compression primitive is being built in the open, and our first public Testnet is now live! Stay up to date with the core teams contributing to ZK Compression and its RPC implementation: Light and Helius Labs.

Last updated