Compressed PDAs are derived using a specific program address and seed, like regular PDAs. Custom programs invoke the to create and update accounts, instead of the System program.
Compressed PDAs at a Glance
Rent free PDAs
Create accounts at program-derived addresses without upfront rent exempt balance.
Full PDA Functionality
Persistent unique identification and program ownership.
Composable
CPI support between compressed and regular PDAs.
Start Building
Developing with compressed PDAs works similar to regular PDAs and involves minimal setup:1
Prerequisites
Required versions:
- 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
- npm
- yarn
- pnpm
2
Initialize your Program
Instantiate a template Solana program with compressed accounts with all required dependencies.The
light init command creates only Anchor-based projects . For Pinocchio programs, manually configure dependencies using light-sdk-pinocchio.Dependencies
Dependencies
Rust Crates
light-sdk- Core SDK for compressed accounts in native and anchor programslight-sdk-pinocchioCore SDK for compressed accounts in pinocchio programslight-client- RPC client and indexer for interacting with compressed accountslight-program-test- Testing utilities for compressed programs.
@lightprotocol/stateless.js- Client library for interacting with compressed accounts@lightprotocol/zk-compression-cli- Command-line tools for ZK compression development
3
Common Errors
assert.h file not found - during compilation.
assert.h file not found - during compilation.