> ## Documentation Index
> Fetch the complete documentation index at: https://continuum-ec12e897.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Address registry

> Every devnet address Continuum uses, in one place. Programs, mints, vaults, pools.

This is the canonical lookup table. Bookmark it.

<Note>
  Mainnet addresses will be added when mainnet launches. Until then, all addresses on this page are **devnet only**.
</Note>

## Programs

| Program                               | Devnet ID                                      |
| ------------------------------------- | ---------------------------------------------- |
| `mint-redeem`                         | `5MBjhNUUguLTPNR5WG6YBUUw7vUcxQ14ARw3NsS3rKu4` |
| `oracle`                              | `5vxiCrDpFnQ2W5QtgZBC66K2XTC19bjVBjinGYYBsadC` |
| `clp`                                 | `8xauDRjw9XRyk4FE3hW1JKjD8nC87gfr59Xig1dJqLES` |
| `registry`                            | `REGnHqnJMxLoRAKX5RqPd9VJGcZBNgmg4xs5bVGGTap`  |
| `faucet`                              | `9tUeQAPEtVSB68NSfvFAqfwaB74GuVxm6Zbp1hrMiNKY` |
| `governance` (scaffolded, not active) | `6es5KcjMWKGhVWrttUytYiZ3YELXe4HQyrmsMVdbVawT` |

## Tokens

| Token                         | Mint                                           | Decimals |
| ----------------------------- | ---------------------------------------------- | -------- |
| **cUSDC** (devnet collateral) | `B1c5xBYkp7AAemYhcu4VuH4CU4sPJDDuG2iuv6ts38uE` | 6        |

| Per-market token mints | Long mint                                      | Short mint                                     |
| ---------------------- | ---------------------------------------------- | ---------------------------------------------- |
| QQQ                    | `E4xJxBPyDXXJK2uqF17cq9kch1xHCTBZ6vjMxKWKANgZ` | `BisvPibkUJqix3ZzaeHCxJ2W7KqoroFpnyf55nzFoicG` |
| SPY                    | `8mVLeXHpchLvt3WZRhRrAZYJ4oU3e2crVF1QEomgdDQ8` | `3n5x1QaXSSw5ysAK5zkMo1XSm52TwzTBK48RAfkeKJiu` |
| XAU                    | `AoufiP54693dn9HKonVBn6W75tKe8eHq5ncTwjTz6i5c` | `9XjYivtQfhDitFJugsskP6LppL7JJzANWwc7kmybpd55` |
| VXX                    | `9GAPZW9pE8jkwzupFDnheDU1X35kh7vUMQvBkDLRuQn8` | `3Dnogj7nRYKEVBfPaBVkGw1Zbj5j3Nhm7RtGSKJfssch` |

## Market PDAs

| Market | PDA                                            |
| ------ | ---------------------------------------------- |
| QQQ    | `F12ostJBgYCzsdouwz5GG1qeBCwbmhNGucPBNCZCfPG5` |
| SPY    | `GT1XPJmWNxFukQXVxCmT6c9VdLdR6Da54aU9m9QGfd8b` |
| XAU    | `8HVoUTS3iNdKSCHhvhc2FNRnXjd7yHcEARD6mTFjem7b` |
| VXX    | `CkK5rTLKBHwo7NeRGrzjKUJAnKPrV2ko4UgbfBf788f6` |

Derivation: `findProgramAddressSync([Buffer.from("market"), Buffer.from(symbol)], mintRedeemProgram)`.

## Collateral vault (unified)

All markets share **one** physical cUSDC vault, owned by a global `CollateralAuthority` PDA. Per-market accounting is the `total_collateral` scalar on each `Market` (the ledger) minus `deployed_to_yield`; per-market isolation is enforced by a liquid-share gate, not by separate token accounts.

|                           | Address                                        |
| ------------------------- | ---------------------------------------------- |
| Unified collateral vault  | `5a51yurKcqxy6rVAV1ykif5fDzhHdjgZs3EL7yncLrp8` |
| `CollateralAuthority` PDA | `7m3ngNMqhSj6FtWLe87CW6L1fhuqSvu4eqjof6qnMcA3` |

Derivation: `findProgramAddressSync([Buffer.from("collateral_authority")], mintRedeemProgram)`; the vault is its cUSDC ATA. Every `Market.collateral_vault` field now points at this one account.

<Accordion title="Legacy per-market vaults (pre-unification, drained)">
  Before the unified-vault migration each market owned its own ATA. These are retained as `collateralVaultLegacy` in `market-addresses.json` but hold no balance:

  | Market | Legacy vault                                   |
  | ------ | ---------------------------------------------- |
  | QQQ    | `CGEMQpzitYvEnWE7sggqD4aBMpTmXhckQPYMhzhy9oJm` |
  | SPY    | `DgL6UTux2gjRubznEnEQ1WprjajW5KYaegBEKgSncgPc` |
  | XAU    | `2Z9W8e64czfRDu7DoJmZbhZGbm6W7ERuUnXS7iWzU2xx` |
  | VXX    | `s7nNAEzhhP1nkahspsb5cWG8vZhPV4w1oNHrKwgvn6G`  |
</Accordion>

## CLP accounts

|                | PDA                                            | Vault                                          |
| -------------- | ---------------------------------------------- | ---------------------------------------------- |
| **Global CLP** | `BcGR8kuGCiMhwonyztXZHEZtjJXxXVRgjwbn58bUfXtw` | `5GSTKN4u5LfropcnQQoqFht48JMaF1SzZzBcgDNL5VKy` |
| QQQ Clp        | `EEDKqU3C4wgWQBcgFagHTqEAjKNMCV4eVYyaUt9swKHc` | `8Doh7uAU95RkqZDx66C1643Q8xJeg4T8eYKMak6ac1En` |
| SPY Clp        | `F4eAvoAd2tUnpDz7dSqj2d4eCBzHLHYTvPmiwHNe1nnX` | `J5cj2Ba1bMsgK4qk2uis6asL6hUSwAd53kYepteBG94B` |
| XAU Clp        | `DdUuCiNzv5A3XZJk5jj4vY8zGS1avcrcMu1MuR4J65BA` | `C6X4VEBggnwdC6Ju5tBMm8wxRiFekRZQrWSeX5Ja2kVn` |
| VXX Clp        | `BW82gQyxpNYCX8UNoqyKN29ZKXiPXhqvie75rnCyDhfm` | `Bx6hMqHuTN2XYJrzqNu5hgkzPbt3BUhosn4AUdepQ9fP` |

## Oracle configs

| Market | OracleConfig PDA                               | Pyth feed                                      |
| ------ | ---------------------------------------------- | ---------------------------------------------- |
| QQQ    | `7uMgq2tpFW9FatCwAPtAjndvADCr3p8NiNFo7EZLSaV1` | `8u6Bv99YnmTEr4R5fZ3UGdNjX2HeUbuZD82a52n2Dmuk` |
| SPY    | `CZnrCy19NmVT8JJHBE4Q7MFjkk25NaXdDguKsvqWg8uE` | (multi-feed)                                   |
| XAU    | `H3kvpKAQbriHGr6CZWWpXreUFa9ox4pdHPAoeqYSuLt4` | (multi-feed)                                   |
| VXX    | `GYiFbGPQnrB2WpecjaU9CvFHP5JneiZgqfh6JHLkXACA` | (multi-feed)                                   |

## Native CLMM book pools

One `Pool` PDA per (market, side), seeds `[b"pool", market, side]` on the CLP program:

| Market | Long pool (L/cUSDC)                            | Short pool (S/cUSDC)                           |
| ------ | ---------------------------------------------- | ---------------------------------------------- |
| QQQ    | `DbPryNwJ2ThJPTzb7UMBoEQhR2QEqcHxenGA8JCqG9Qr` | `HUudWC8ykMCZg3CNs3TPhRmLczdrPVwmXXSYvvKAxKbB` |
| SPY    | `4UZmmZYrRfffQmjq2iEaNgkit72s8VS5cnhK5GeuKSt8` | `4JoXbxzAAeAWsQgTYXgWAvRqdR1RU2Tb3ywm2FNLKjAB` |
| VXX    | `2CXQobRBCxfhuh6Lq3PjQUPr1vgpLFcBBVVfjC42dVTU` | `8vyYBMWAS98ZiLC5wC9F8nYgGBAmM2EbQgxgvMU9QxSD` |
| XAU    | `5rEH7sYUS7kuqNiLZmCiQGwQLmQ1qqogRPavT9csKmHL` | `CW8nvKYPi7xgRtimCk1Gj4Db6bbXdqXngdDMxDA6rLHT` |

There is no swap fee on the books - the half-spread (empty inner bins) is the price of immediacy. Geometry is 2-zone: core 15-40bps near NAV, wings 250-600bps.

## External program IDs

| Program                 | ID                                             |
| ----------------------- | ---------------------------------------------- |
| SPL Token               | `TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA`  |
| Associated Token        | `ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL` |
| Metaplex Token Metadata | `metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s`  |

## RPC endpoints

| Cluster                 | Public endpoint                       |
| ----------------------- | ------------------------------------- |
| **Devnet**              | `https://api.devnet.solana.com`       |
| Mainnet (when launched) | `https://api.mainnet-beta.solana.com` |

For production, use a private RPC (Helius, Triton, QuickNode, Alchemy).

## Programmatic access

Always prefer reading from a registry or the protocol's bundled `frontend/lib/market-addresses.json` over hard-coding addresses. Addresses can change (e.g., on mainnet launch); your code shouldn't.

```typescript theme={null}
import addresses from "./market-addresses.json";

const qqq = addresses.markets.QQQ;
const longPool = qqq.liquidity.longPool;
```

## See also

<CardGroup cols={2}>
  <Card title="Live markets" icon="chart-line" href="/markets/live">
    Per-market detail pages.
  </Card>

  <Card title="Programs overview" icon="square-terminal" href="/programs/overview">
    Program functionality and IDL sources.
  </Card>
</CardGroup>
