Airdrop claim reference implementations
- Basic: simple-claim - Distributes compressed tokens that get decompressed to SPL on claim with cliff.
- Advanced: merkle-distributor - Distributes SPL tokens, uses compressed PDAs to track claims with linear vesting, partial claims and clawback. Based on Jito Merkle distributor and optimized with rent-free PDAs.
For simple client-side distribution visit this example.
Basic operations
- create - Initialize a new compressed account
- update - Modify data in an existing compressed account
- close - Clear account data and preserve its address
- reinit - Reinitialize a closed account with the same address
- burn - Permanently delete a compressed account
Nullifier program
nullifier-program - For some use cases, such as sending payments, you might want to prevent your onchain instruction from being executed more than once. Creates a rent-free PDA derived from an id. If the id has been used before, the PDA already exists, causing the instruction to fail. SDK:light-nullifier-program | Example client usage
Counter program
Full compressed account lifecycle (create, increment, decrement, reset, close):- counter/anchor - Anchor program with Rust and TypeScript tests
- counter/native - Native Solana program with
light-sdkand Rust tests - counter/pinocchio - Pinocchio program with
light-sdk-pinocchioand Rust tests
Create-and-update program
create-and-update - Create a new compressed account and update an existing compressed account with a single validity proof in one instruction.Create-and-read program
read-only - Create a new compressed account and read it onchain.Compare program with Solana vs compressed accounts
account-comparison - Compare compressed vs regular Solana accounts.ZK programs
- zk-id - Identity verification using Groth16 proofs. Issuers create credentials; users prove ownership without revealing the credential.
- nullifier - Simple program to create nullifiers for ZK programs.