Skip to main content

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):

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.

Next steps

Follow our guides to these program examples