> ## Documentation Index
> Fetch the complete documentation index at: https://www.zkcompression.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Addresses and URLs

> Overview to all of ZK Compression's RPC URLs, Program IDs & Accounts and Lookup Tables.

## RPC URLs

<Tabs>
  <Tab title="Mainnet">
    | Network | Service               | URL                                                     |
    | :------ | :-------------------- | :------------------------------------------------------ |
    | Mainnet | Network Address (RPC) | `https://mainnet.helius-rpc.com?api-key=&#x3C;api_key>` |
    | Mainnet | Photon RPC API        | `https://mainnet.helius-rpc.com?api-key=&#x3C;api_key>` |
  </Tab>

  <Tab title="Devnet">
    | Network | Service               | URL                                                    |
    | :------ | :-------------------- | :----------------------------------------------------- |
    | Devnet  | Network Address (RPC) | `https://devnet.helius-rpc.com?api-key=&#x3C;api_key>` |
    | Devnet  | Photon RPC API        | `https://devnet.helius-rpc.com?api-key=&#x3C;api_key>` |
  </Tab>
</Tabs>

<Info>
  Find all JSON RPC Methods for ZK Compression [here](/api-reference/json-rpc-methods/overview).
</Info>

## Program IDs

|                             |                                                 |
| :-------------------------- | :---------------------------------------------- |
| Light System Program        | **SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7** |
| Light Token Program         | **cTokenmWW8bLPjZEBAUgYy3zKxQZW6VKi7bqNFEVv3m** |
| Account Compression Program | **compr6CUsB5m2jS4Y3831ztGSTnDpnKJTKS95d64XVq** |

## State Trees & Queues & CPI Accounts

<Check>
  **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.
</Check>

<Tabs>
  <Tab title="V2 (Default)">
    |                 | Public Key                                      |
    | :-------------- | :---------------------------------------------- |
    | #1 State Tree   | **bmt1LryLZUMmF7ZtqESaw7wifBXLfXHQYoE4GAmrahU** |
    | #1 Output Queue | **oq1na8gojfdUhsfCpyjNt6h4JaDWtHf1yQj4koBWfto** |
    | #1 CPI Context  | **cpi15BoVPKgEPw5o8wc2T816GE7b378nMXnhH3Xbq4y** |

    |                 | Public Key                                      |
    | :-------------- | :---------------------------------------------- |
    | #2 State Tree   | **bmt2UxoBxB9xWev4BkLvkGdapsz6sZGkzViPNph7VFi** |
    | #2 Output Queue | **oq2UkeMsJLfXt2QHzim242SUi3nvjJs8Pn7Eac9H9vg** |
    | #2 CPI Context  | **cpi2yGapXUR3As5SjnHBAVvmApNiLsbeZpF3euWnW6B** |

    |                 | Public Key                                      |
    | :-------------- | :---------------------------------------------- |
    | #3 State Tree   | **bmt3ccLd4bqSVZVeCJnH1F6C8jNygAhaDfxDwePyyGb** |
    | #3 Output Queue | **oq3AxjekBWgo64gpauB6QtuZNesuv19xrhaC1ZM1THQ** |
    | #3 CPI Context  | **cpi3mbwMpSX8FAGMZVP85AwxqCaQMfEk9Em1v8QK9Rf** |

    |                 | Public Key                                      |
    | :-------------- | :---------------------------------------------- |
    | #4 State Tree   | **bmt4d3p1a4YQgk9PeZv5s4DBUmbF5NxqYpk9HGjQsd8** |
    | #4 Output Queue | **oq4ypwvVGzCUMoiKKHWh4S1SgZJ9vCvKpcz6RT6A8dq** |
    | #4 CPI Context  | **cpi4yyPDc4bCgHAnsenunGA8Y77j3XEDyjgfyCKgcoc** |

    |                 | Public Key                                      |
    | :-------------- | :---------------------------------------------- |
    | #5 State Tree   | **bmt5yU97jC88YXTuSukYHa8Z5Bi2ZDUtmzfkDTA2mG2** |
    | #5 Output Queue | **oq5oh5ZR3yGomuQgFduNDzjtGvVWfDRGLuDVjv9a96P** |
    | #5 CPI Context  | **cpi5ZTjdgYpZ1Xr7B1cMLLUE81oTtJbNNAyKary2nV6** |
  </Tab>

  <Tab title="V1 (For ZK)">
    |                 | Public Key                                      |
    | :-------------- | :---------------------------------------------- |
    | State Tree      | **smt2rJAFdyJJupwMKAqTNAJwvjhmiZ4JYGZmbVRw1Ho** |
    | Nullifier Queue | **nfq2hgS7NYemXsFaFUCe3EMXSDSfnZnAe27jC6aPP1X** |
    | CPI Context     | **cpi2cdhkH5roePvcudTgUL8ppEBfTay1desGh8G8QxK** |
  </Tab>
</Tabs>

## Address Trees & Queues

<Tabs>
  <Tab title="V2">
    | Address Tree |                                                 |
    | :----------- | :---------------------------------------------- |
    | Address Tree | **amt2kaJA14v3urZbZvnc5v2np8jqvc4Z8zDep5wbtzx** |
  </Tab>

  <Tab title="V1 (Deprecated)">
    | Address Tree #1  |                                                 |
    | :--------------- | :---------------------------------------------- |
    | Address Tree #1  | **amt1Ayt45jfbdw5YSo7iz6WZxUmnZsQTYXy82hVwyC2** |
    | Address Queue #1 | **aq1S9z4reTSQAdgWHGD2zDaS39sjGrAxbR31vxJ2F4F** |
  </Tab>
</Tabs>

## Interface PDA

The account to convert format between:

* compressed token ↔ SPL token
* light-token ↔ SPL token

|               |                                                  |
| :------------ | :----------------------------------------------- |
| Interface PDA | **GXtd2izAiMJPwMEjfgTRH3d7k9mjn4Jq3JrWFv9gySYy** |

## Lookup Tables

<Info>
  [Lookup tables](https://solana.com/docs/advanced/lookup-tables) reduce your transaction size. We provide pre-initialized lookup tables that cover the Light's program IDs and accounts:
</Info>

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

<Accordion title="ExtendLookUpTables.ts">
  ```typescript theme={null}
  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();
  ```
</Accordion>

## System Accounts List

<table>
  <colgroup>
    <col style={{width: '5%'}} />

    <col style={{width: '30%', textAlign: 'left'}} />

    <col style={{width: '65%'}} />
  </colgroup>

  <thead>
    <tr>
      <th style={{textAlign: 'left'}} />

      <th style={{textAlign: 'left'}} />

      <th style={{textAlign: 'left'}} />
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>1</td>
      <td style={{textAlign: 'left'}}><strong><Tooltip tip="SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7" cta="Program ID" href="https://solscan.io/account/SySTEM1eSU2p4BGQfQpimFEWWSC1XDFeun3Nqzz3rT7">Light System Program</Tooltip></strong></td>
      <td>Verifies validity proofs, compressed account ownership checks, and CPIs the Account Compression Program to update tree accounts.</td>
    </tr>

    <tr>
      <td>2</td>
      <td style={{textAlign: 'left'}}><strong>CPI Signer</strong></td>

      <td>
        * PDA to sign CPI calls from your program to the Light System Program.<br />
        * Verified by the Light System Program during CPI.<br />
        * Derived from your program ID.
      </td>
    </tr>

    <tr>
      <td>3</td>
      <td style={{textAlign: 'left'}}><strong>Registered Program PDA</strong></td>
      <td>Provides access control to the Account Compression Program.</td>
    </tr>

    <tr>
      <td>4</td>
      <td style={{textAlign: 'left'}}><strong><Tooltip tip="PDA derived from Light System Program ID with seed b 'cpi_authority'.HZH7qSLcpAeDqCopVU4e5XkhT9j3JFsQiq8CmruY3aru" cta="Program ID" href="https://solscan.io/account/HZH7qSLcpAeDqCopVU4e5XkhT9j3JFsQiq8CmruY3aru">Account Compression Authority</Tooltip></strong></td>
      <td>Signs CPI calls from the Light System Program to the Account Compression Program.</td>
    </tr>

    <tr>
      <td>5</td>
      <td style={{textAlign: 'left'}}><strong><Tooltip tip="compr6CUsB5m2jS4Y3831ztGSTnDpnKJTKS95d64XVq" cta="Program ID" href="https://solscan.io/account/compr6CUsB5m2jS4Y3831ztGSTnDpnKJTKS95d64XVq">Account Compression Program</Tooltip></strong></td>

      <td>
        * Writes to state and address tree accounts.<br />
        * Clients and the Account Compression Program do not interact directly — handled internally.
      </td>
    </tr>

    <tr>
      <td>6</td>
      <td style={{textAlign: 'left'}}><strong><Tooltip tip="11111111111111111111111111111111" cta="Program ID" href="https://solscan.io/account/11111111111111111111111111111111">System Program</Tooltip></strong></td>
      <td>Solana System Program used to transfer lamports.</td>
    </tr>
  </tbody>
</table>

***

## Didn't find what you were looking for?

<Callout type="info">
  Reach out! [Telegram](https://t.me/swen_light) | [email](mailto:support@lightprotocol.com) | [Discord](https://discord.com/invite/7cJ8BhAXhu)
</Callout>
