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>
Network Service URL Devnet Network Address (RPC) https://devnet.helius-rpc.com?api-key=<api_key>Devnet Photon RPC API https://devnet.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
Devnet Mainnet Public Key #1 State Tree ✓ - bmt1LryLZUMmF7ZtqESaw7wifBXLfXHQYoE4GAmrahU #1 Output Queue ✓ - oq1na8gojfdUhsfCpyjNt6h4JaDWtHf1yQj4koBWfto #1 CPI Context ✓ - cpi15BoVPKgEPw5o8wc2T816GE7b378nMXnhH3Xbq4y
Devnet Mainnet Public Key #2 State Tree ✓ - bmt2UxoBxB9xWev4BkLvkGdapsz6sZGkzViPNph7VFi #2 Output Queue ✓ - oq2UkeMsJLfXt2QHzim242SUi3nvjJs8Pn7Eac9H9vg #2 CPI Context ✓ - cpi2yGapXUR3As5SjnHBAVvmApNiLsbeZpF3euWnW6B
Devnet Mainnet Public Key #3 State Tree ✓ - bmt3ccLd4bqSVZVeCJnH1F6C8jNygAhaDfxDwePyyGb #3 Output Queue ✓ - oq3AxjekBWgo64gpauB6QtuZNesuv19xrhaC1ZM1THQ #3 CPI Context ✓ - cpi3mbwMpSX8FAGMZVP85AwxqCaQMfEk9Em1v8QK9Rf
Devnet Mainnet Public Key #4 State Tree ✓ - bmt4d3p1a4YQgk9PeZv5s4DBUmbF5NxqYpk9HGjQsd8 #4 Output Queue ✓ - oq4ypwvVGzCUMoiKKHWh4S1SgZJ9vCvKpcz6RT6A8dq #4 CPI Context ✓ - cpi4yyPDc4bCgHAnsenunGA8Y77j3XEDyjgfyCKgcoc
Devnet Mainnet Public Key #5 State Tree ✓ - bmt5yU97jC88YXTuSukYHa8Z5Bi2ZDUtmzfkDTA2mG2 #5 Output Queue ✓ - oq5oh5ZR3yGomuQgFduNDzjtGvVWfDRGLuDVjv9a96P #5 CPI Context ✓ - cpi5ZTjdgYpZ1Xr7B1cMLLUE81oTtJbNNAyKary2nV6
Address Trees & Queues
Address Tree #1 Address Tree #1 amt1Ayt45jfbdw5YSo7iz6WZxUmnZsQTYXy82hVwyC2 Address Queue #1 aq1S9z4reTSQAdgWHGD2zDaS39sjGrAxbR31vxJ2F4F
Address Tree Address Tree amt2kaJA14v3urZbZvnc5v2np8jqvc4Z8zDep5wbtzx
Interface PDA
The account to convert format between:
compressed token ↔ SPL token
light-token ↔ SPL token
Interface 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