Skip to main content
Light Protocol

What is Light Protocol?

Light Protocol brings ZK Compression to Solana, enabling developers to create rent-free tokens and Program Derived Accounts (PDAs) without sacrificing performance, security, or composability. By storing account state in Merkle trees and keeping only small fingerprints on-chain, Light Protocol reduces storage costs by orders of magnitude while maintaining the full security and performance of Solana L1.

Key Features

Rent-Free State

Compress account state to reduce costs by 1000x while maintaining Solana’s security

Compressed Tokens

SPL Token compatible compressed tokens with full Token-2022 extension support

Compressed PDAs

Build custom programs with program-derived compressed accounts

Zero-Knowledge Proofs

Groth16 SNARKs provide succinct validity proofs for state transitions

How It Works

When a Solana account gets compressed with Light Protocol:
  1. Hash & Store: Account data is hashed and stored as a leaf in a sparse Merkle tree
  2. On-Chain Root: Only the tree’s state root (a small fingerprint) is stored on-chain
  3. Off-Chain Data: The actual compressed data is stored off-chain in the cheaper Solana ledger space
  4. ZK Proofs: Transactions provide zero-knowledge proofs to verify data integrity
This approach combines the best of both worlds: Solana’s performance with orders of magnitude lower costs.
Light Protocol is a set of smart contracts on Solana - it’s not an L2 or separate chain. Your compressed accounts maintain full Solana L1 security guarantees.

Cost Comparison

Regular Solana Account

~0.0035 SOL per account (~0.70at0.70 at 200/SOL)

Compressed Account

~0.000005 SOL calldata cost (~$0.001)

Savings

~99.8% reduction in storage costs

Get Started

1

Install Dependencies

Set up your development environment with the Light Protocol CLI and SDKs
npm install -g @lightprotocol/zk-compression-cli
2

Run Test Validator

Start a local Solana test validator with Light Protocol programs
light test-validator
3

Build Your First App

Create compressed tokens or PDAs using our TypeScript or Rust SDKs
import { Rpc, compress } from '@lightprotocol/stateless.js';

const rpc = await Rpc.createTestnetRpc();
// Start building with compressed accounts

Quick Start Guide

Follow our quickstart to build your first compressed token application in 5 minutes →

Architecture

Light Protocol consists of several key components:
  • Account Compression Program: Manages Merkle tree accounts and proof verification
  • Light System Program: Validates compressed account state transitions
  • Compressed Token Program: SPL Token compatible compressed tokens
  • Registry Program: Protocol configuration and forester coordination
  • Photon Indexer: Indexes and stores compressed account state
  • ZK Prover: Generates Groth16 proofs for state transitions
  • Forester Nodes: Asynchronously process queues and update trees
  • TypeScript SDK: @lightprotocol/stateless.js and @lightprotocol/compressed-token
  • Rust SDK: light-sdk, light-client, and light-token
  • CLI Tool: Local development and testing with light command

Use Cases

Light Protocol is ideal for applications that need to scale to millions of users:
  • Social Networks: Store user profiles and posts without rent burden
  • Gaming: Manage in-game assets and inventory at scale
  • DeFi: Create liquidity pools and trading accounts efficiently
  • NFT Platforms: Mint and manage large NFT collections
  • Payments: Build payment systems with minimal transaction costs

Community & Support

Discord

Join our community

GitHub

Contribute to the protocol

Twitter

Follow for updates

Next Steps

Quickstart

Build your first compressed token app

Core Concepts

Learn how ZK Compression works

JavaScript SDK

Explore the TypeScript/JavaScript SDK

Rust SDK

Integrate Light into Solana programs

Build docs developers (and LLMs) love