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

# Endereços de programa

> IDs de programa canônicos do Raydium e PDAs compartilhadas na rede Solana mainnet-beta e devnet. Todas as outras páginas fazem referência a este documento em vez de codificar endereços.

<Info>
  **Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.**

  [Ver versão em inglês →](/reference/program-addresses)
</Info>

<Info>
  **Fonte de verdade.** Esta página é o único lugar na documentação que lista endereços de programa verbatim. Outras páginas fazem referência aqui. Se um ID mudar, atualize **apenas aqui** e toda referência no site permanece consistente.

  Sempre valide os valores contra a API ao vivo (`https://api-v3.raydium.io/main/info`) antes de assinar transações reais.
</Info>

## Mainnet-beta

<Tip>
  Regra prática: se um ID de programa encontrado não corresponder à tabela abaixo, **não assine a transação.** Um ID de programa incompatível é a forma mais fácil de perder fundos na Solana.
</Tip>

### Programas on-chain

| Programa                                       | ID do Programa                                 | Fonte                                                            |
| ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------------------------- |
| **AMM v4** (AMM Híbrido + OpenBook)            | `675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8` | [raydium-amm](https://github.com/raydium-io/raydium-amm)         |
| **CPMM** (AMM Padrão)                          | `CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C` | [raydium-cp-swap](https://github.com/raydium-io/raydium-cp-swap) |
| **CLMM** (Liquidez Concentrada)                | `CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK` | [raydium-clmm](https://github.com/raydium-io/raydium-clmm)       |
| **Stable AMM** (Curva estilo StableSwap)       | `5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h` | fonte não disponível publicamente                                |
| **Farm v3** (staking RAY legado)               | `EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Q` | fonte não disponível publicamente                                |
| **Farm v5** (farms do ecossistema legado)      | `9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4z` | fonte não disponível publicamente                                |
| **Farm v6** (farms atuais do ecossistema)      | `FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhG` | fonte não disponível publicamente                                |
| **LaunchLab**                                  | `LanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3uj`  | fonte não disponível publicamente                                |
| **AMM Routing** (roteador on-chain do Raydium) | `routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS`  | fonte não disponível publicamente                                |
| **Burn & Earn / LP Lock**                      | `LockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwE`  | fonte não disponível publicamente                                |

Notas:

* AMM v4 e Farm v3/v5 são **mantidos para pools e posições existentes**. A interface do Raydium e o SDK roteiam a criação de novos pools e novas farms do ecossistema para CPMM, CLMM e Farm v6 respectivamente — veja [`protocol-overview/versions-and-migration`](/pt/protocol-overview/versions-and-migration).
* O ID do Farm v3 acima funciona também como o programa de staking de ativo único \$RAY. O comportamento é idêntico ao Farm v3 para staking de LP.
* **Stable AMM** é um programa separado que o programa AMM Routing pode direcionar junto com AMM v4, CPMM e CLMM. A liquidez é menor em comparação com os outros três programas e o SDK não expõe uma API de primeira classe para ele; integradores que roteiam através dele geralmente o fazem via o roteador.
* **Disponibilidade do código-fonte.** Dos programas on-chain acima, apenas `raydium-amm` (AMM v4), `raydium-cp-swap` (CPMM) e `raydium-clmm` (CLMM) são fornecidos com repositórios de fonte pública em [`github.com/raydium-io`](https://github.com/raydium-io). Stable AMM, LaunchLab, AMM Routing, Burn & Earn / LP Lock e os programas Farm não estão disponíveis publicamente — valide-os contra a API ao vivo, o bytecode on-chain e os IDLs publicados em [`raydium-io/raydium-idl`](https://github.com/raydium-io/raydium-idl).

### Autoridade de administrador compartilhada

Todos os programas baseados em Anchor (CLMM, CPMM, LaunchLab, Lock) compartilham uma única `Pubkey` de administrador codificada para controle de acesso em nível de instrução para caminhos de administrador (como `CreateAmmConfig` ou `UpdatePoolStatus`):

| Cluster      | Administrador                                  |
| ------------ | ---------------------------------------------- |
| mainnet-beta | `GThUX1Atko4tqhN2NaiTazWSeFWMuiUvfFnyJyUghFMJ` |
| devnet       | `DRayqG9RXYi8WHgWEmRQGrUWRWbhjYWYkCRJDd6JBBak` |

Autoridades operacionais em nível de conta (ex: `protocol_owner`, `fund_owner` em `AmmConfig` do CPMM/CLMM, ou as carteiras de migração em `GlobalConfig` do LaunchLab) são armazenadas on-chain e podem diferir do administrador do programa. Leia-as diretamente da conta de configuração relevante antes de enviar transações de alto risco.

### Convenções de configuração compartilhada / PDA

Vários programas do Raydium expõem **contas de configuração** cujas chaves públicas são estáveis e listadas na API pública. Prefira a pesquisa de API em vez de codificar:

```
# Configurações de taxa CPMM (retorna um array de {id, index, tradeFeeRate, ...})
GET https://api-v3.raydium.io/main/cpmm-config

# Configurações de taxa CLMM
GET https://api-v3.raydium.io/main/clmm-config
```

Parâmetros de taxa do índice padrão `AmmConfig` CPMM `0` (pool padrão 0.25%), para referência:

| Campo               | Valor    | Significado                                                       |
| ------------------- | -------- | ----------------------------------------------------------------- |
| `trade_fee_rate`    | `2500`   | 0.25% do volume de negociação                                     |
| `protocol_fee_rate` | `120000` | 12% **da taxa de negociação** (não volume) roteada para protocolo |
| `fund_fee_rate`     | `40000`  | 4% **da taxa de negociação** roteada para o multisig do fundo     |
| `creator_fee_rate`  | `500`    | 0.05% do volume de negociação para o criador do pool (opcional)   |

Veja [`products/cpmm/fees`](/pt/products/cpmm/fees) para como as divisões se compõem, e [`reference/fee-comparison`](/pt/reference/fee-comparison) para a matriz de produtos cruzados.

### Sementes de PDA

As sementes abaixo são **canônicas** e usadas tanto pelo SDK quanto por CPIs on-chain. Sempre calcule PDAs; não codifique endereços derivados.

```ts theme={null}
// CPMM — todas as sementes são strings ASCII estáticas, a menos que indicado.
const [ammConfig]   = PublicKey.findProgramAddressSync(
  [Buffer.from("amm_config"), u16ToBytes(index)],
  CPMM_PROGRAM_ID,
);
const [authority]   = PublicKey.findProgramAddressSync(
  [Buffer.from("vault_and_lp_mint_auth_seed")],
  CPMM_PROGRAM_ID,
);
const [poolState]   = PublicKey.findProgramAddressSync(
  [Buffer.from("pool"), ammConfig.toBuffer(), token0Mint.toBuffer(), token1Mint.toBuffer()],
  CPMM_PROGRAM_ID,
);
const [lpMint]      = PublicKey.findProgramAddressSync(
  [Buffer.from("pool_lp_mint"), poolState.toBuffer()],
  CPMM_PROGRAM_ID,
);
const [vault0]      = PublicKey.findProgramAddressSync(
  [Buffer.from("pool_vault"), poolState.toBuffer(), token0Mint.toBuffer()],
  CPMM_PROGRAM_ID,
);
const [vault1]      = PublicKey.findProgramAddressSync(
  [Buffer.from("pool_vault"), poolState.toBuffer(), token1Mint.toBuffer()],
  CPMM_PROGRAM_ID,
);
const [observation] = PublicKey.findProgramAddressSync(
  [Buffer.from("observation"), poolState.toBuffer()],
  CPMM_PROGRAM_ID,
);
```

`token0Mint` / `token1Mint` são **classificados por ordem de byte de chave pública** (token0 \< token1) antes do hash. Errar nisto produz uma PDA válida para um pool que não existe.

As sementes CLMM equivalentes seguem o mesmo estilo; veja [`products/clmm/accounts`](/pt/products/clmm/accounts).

## Devnet

| Programa                  | ID do Programa                                                                                                                |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| **AMM v4**                | `DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav`                                                                                |
| **CPMM**                  | `DRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb`                                                                                |
| **CLMM**                  | `DRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH`                                                                                |
| **Stable AMM**            | `DRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m`                                                                                |
| **LaunchLab**             | `DRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6`                                                                                |
| **AMM Routing**           | `DRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd`                                                                                |
| **Burn & Earn / LP Lock** | `DLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC`                                                                                |
| **Farm v3 / v5 / v6**     | Não confiável publicado para devnet — confirme via a API ao vivo (`https://api-v3-devnet.raydium.io/main/info`) antes do uso. |

Base da API REST do devnet: `https://api-v3-devnet.raydium.io/` (mesmo formato de rota que mainnet).

## Como verificar um endereço on-chain

1. **Solana Explorer.** Cole o endereço em [explorer.solana.com](https://explorer.solana.com) e confirme que está marcado como `Program` com uma autoridade de atualização atual. Mainnet-beta deve mostrar deploys assinados pela autoridade de atualização do Raydium.
2. **CLI.** Use `solana program show <PROGRAM_ID> -u mainnet-beta` para inspecionar slot de deploy, carregador BPF, autoridade de atualização e comprimento de dados. Registre-os no seu runbook.
3. **Anexo de IDL.** Consulte o IDL on-chain com `anchor idl fetch <PROGRAM_ID> --provider.cluster mainnet`. O campo `address` do IDL deve corresponder. Os mesmos IDLs são espelhados em [github.com/raydium-io/raydium-idl](https://github.com/raydium-io/raydium-idl) — compare o IDL on-chain contra o repositório antes de confiar nele.
4. **Autoridades de configuração/administrador.** Para contas de configuração CPMM/CLMM, leia o campo `owner`/`protocol_owner` e confirme que corresponde ao multisig atual do Raydium publicado em [`security/admin-and-multisig`](/pt/security/admin-and-multisig).

Se qualquer uma das quatro verificações acima discordar desta página, trate esta página como incorreta e abra uma issue antes de escrever novo código contra os endereços.

## Atualizando esta página

* Alterações em IDs de programa são críticas para a segurança. **Não** envie uma alteração de ID de programa sem (a) vincular ao anúncio do Raydium, (b) adicionar uma entrada em [`reference/changelog`](/pt/reference/changelog) e (c) executar uma verificação de links na documentação para confirmar que nenhuma página ainda faz referência ao valor antigo.
* Descontinuações permanecem na tabela com uma nota de status em vez de serem deletadas — pools existentes ainda são resolvidos via o programa antigo.

Fontes:

* API ao vivo: `https://api-v3.raydium.io/main/info`
* [github.com/raydium-io/raydium-idl](https://github.com/raydium-io/raydium-idl)
* [github.com/raydium-io/raydium-cp-swap](https://github.com/raydium-io/raydium-cp-swap)
