Program Development

Overview to on-chain program development. Quick access to SDKs for Anchor, Pinocchio, or native Rust.

ZK Compression's Rust crates are published to crates.io and can be found on docs.rs with the light- prefix.

Rust Crates

  • light-sdk — For Anchor and native programs. Includes CPI utilities, compressed account abstractions similar to anchor Account, and metadata structs for CPIs to the Light System program.

  • light-sdk-pinocchio — For Pinocchio programs. Pinocchio-optimized SDK with compressed account abstractions and CPI utilities.

For testing:

  • light-program-test — Local test environment with indexer, prover, and LiteSVM. Use for fast test execution and unit/integration tests for your custom program.

Light Programs Overview

Your custom program invokes the Light system program via Cross-Program Invocation (CPI) to leverage ZK Compression.

Program
Description

Enforces compressed account layout, ownership checks, and validity proof verification. Used to create/write compressed accounts and PDAs

SPL-compatible compressed token implementation with arbitrary compression/decompression support

State and address tree implementation used by the Light System program

Version Requirements

These are the required version for program development.

  • Rust: 1.86.0 or later

  • Solana CLI: 2.2.15

  • Anchor CLI: 0.31.1

  • Zk compression CLI: 0.27.0 or later

  • Node.js: 23.5.0 or later

CLI Installation

Examples

Get Started

Get an overview of compressed PDAs and create your custom program.

Create a Program with Compressed PDAs

Last updated