Saltar para o conteúdo principal

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.

Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
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.

Mainnet-beta

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.

Programas on-chain

ProgramaID do ProgramaFonte
AMM v4 (AMM Híbrido + OpenBook)675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8raydium-amm
CPMM (AMM Padrão)CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1Craydium-cp-swap
CLMM (Liquidez Concentrada)CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqKraydium-clmm
Stable AMM (Curva estilo StableSwap)5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3hfonte não disponível publicamente
Farm v3 (staking RAY legado)EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Qfonte não disponível publicamente
Farm v5 (farms do ecossistema legado)9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4zfonte não disponível publicamente
Farm v6 (farms atuais do ecossistema)FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhGfonte não disponível publicamente
LaunchLabLanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3ujfonte não disponível publicamente
AMM Routing (roteador on-chain do Raydium)routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xSfonte não disponível publicamente
Burn & Earn / LP LockLockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwEfonte 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.
  • 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. 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.

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):
ClusterAdministrador
mainnet-betaGThUX1Atko4tqhN2NaiTazWSeFWMuiUvfFnyJyUghFMJ
devnetDRayqG9RXYi8WHgWEmRQGrUWRWbhjYWYkCRJDd6JBBak
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:
CampoValorSignificado
trade_fee_rate25000.25% do volume de negociação
protocol_fee_rate12000012% da taxa de negociação (não volume) roteada para protocolo
fund_fee_rate400004% da taxa de negociação roteada para o multisig do fundo
creator_fee_rate5000.05% do volume de negociação para o criador do pool (opcional)
Veja products/cpmm/fees para como as divisões se compõem, e 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.
// 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.

Devnet

ProgramaID do Programa
AMM v4DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav
CPMMDRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb
CLMMDRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH
Stable AMMDRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m
LaunchLabDRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6
AMM RoutingDRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd
Burn & Earn / LP LockDLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC
Farm v3 / v5 / v6Nã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 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 — 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.
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 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: