RPC URLs
Network Service URL Mainnet Network Address (RPC) https://mainnet.helius-rpc.com?api-key=<api_key>Mainnet Photon RPC API https://mainnet.helius-rpc.com?api-key=<api_key>
Find all JSON RPC Methods for ZK Compression here .
Program IDs
Light System Program SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7 Compressed Token Program cTokenmWW8bLPjZEBAUgYy3zKxQZW6VKi7bqNFEVv3m Account Compression Program compr6CUsB5m2jS4Y3831ztGSTnDpnKJTKS95d64XVq
State Trees & Queues & CPI Accounts
In your local test validator environment use in Rust TestAccounts::get_local_test_validator_accounts() to get all pre-configured protocol, state tree, and address tree accounts.
Devnet Mainnet Public Key State Tree ✓ ✓ smt2rJAFdyJJupwMKAqTNAJwvjhmiZ4JYGZmbVRw1Ho Nullifier Queue ✓ ✓ nfq2hgS7NYemXsFaFUCe3EMXSDSfnZnAe27jC6aPP1X CPI Context ✓ ✓ cpi2cdhkH5roePvcudTgUL8ppEBfTay1desGh8G8QxK
Address Trees & Queues
Address Tree #1 Address Tree #1 amt1Ayt45jfbdw5YSo7iz6WZxUmnZsQTYXy82hVwyC2 Address Queue #1 aq1S9z4reTSQAdgWHGD2zDaS39sjGrAxbR31vxJ2F4F
Token Escrow PDA
Token Escrow Owner PDA GXtd2izAiMJPwMEjfgTRH3d7k9mjn4Jq3JrWFv9gySYy
Lookup Tables
Lookup tables reduce your transaction size. We provide pre-initialized lookup tables that cover the Light’s program IDs and accounts:
Lookup Table #1 (Mainnet) 9NYFyEqPkyXUhkerbGHXUXkvb4qpzeEdHuGpgbgpH1NJ Lookup Table #1 (Devnet) qAJZMgnQJ8G6vA3WRcjD9Jan1wtKkaCFWLWskxJrR5V
We provide a helper function below if you need to extend a custom lookup table.
import { Rpc , confirmTx , createRpc } from "@lightprotocol/stateless.js" ;
import { createTokenProgramLookupTable } from "@lightprotocol/compressed-token" ;
import { Keypair , PublicKey } from "@solana/web3.js" ;
import { RPC_ENDPOINT } from "./constants" ;
const payer = Keypair . generate ();
const authority = payer ;
const additionalTokenMints : PublicKey [] = [];
const additionalAccounts : PublicKey [] = [];
// Localnet
const connection : Rpc = createRpc ();
const main = async () => {
/// airdrop lamports to pay gas and rent
await confirmTx (
connection ,
await connection . requestAirdrop ( payer . publicKey , 1e7 )
);
/// Create LUT
const { address } = await createTokenProgramLookupTable (
connection ,
payer ,
authority ,
additionalTokenMints ,
additionalAccounts
);
console . log ( "Created lookup table:" , address . toBase58 ());
};
main ();
System Accounts List
1 Light System Program Verifies validity proofs, compressed account ownership checks, and CPIs the Account Compression Program to update tree accounts. 2 CPI Signer
PDA to sign CPI calls from your program to the Light System Program.
Verified by the Light System Program during CPI.
Derived from your program ID.
3 Registered Program PDA Provides access control to the Account Compression Program. 4 Account Compression Authority Signs CPI calls from the Light System Program to the Account Compression Program. 5 Account Compression Program
Writes to state and address tree accounts.
Clients and the Account Compression Program do not interact directly — handled internally.
6 System Program Solana System Program used to transfer lamports.
Next Steps
Start building with Compressed Tokens or PDAs