Passer au contenu 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.

Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
Source de vérité. Cette page est le seul endroit de la documentation qui énumère les adresses des programmes verbatim. Les autres pages renvoient ici. Si un ID change, mettez-le à jour uniquement ici et chaque référence dans le site reste cohérente.Vérifiez toujours les valeurs par rapport à l’API en direct (https://api-v3.raydium.io/main/info) avant de signer des transactions réelles.

Mainnet-beta

Règle empirique : si un ID de programme que vous rencontrez ne correspond pas au tableau ci-dessous, ne signez pas la transaction. Un ID de programme non concordant est le moyen le plus simple de perdre des fonds sur Solana.

Programmes on-chain

ProgrammeID du programmeSource
AMM v4 (AMM hybride + OpenBook)675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8raydium-amm
CPMM (AMM standard)CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1Craydium-cp-swap
CLMM (Liquidité concentrée)CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqKraydium-clmm
Stable AMM (courbe de type StableSwap)5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3hsource non disponible publiquement
Farm v3 (staking RAY hérité)EhhTKczWMGQt46ynNeRX1WfeagwwJd7ufHvCDjRxjo5Qsource non disponible publiquement
Farm v5 (fermes écosystème hérité)9KEPoZmtHUrBbhWN1v1KWLMkkvwY6WLtAVUCPRtRjP4zsource non disponible publiquement
Farm v6 (fermes écosystème actuelles)FarmqiPv5eAj3j1GMdMCMUGXqPUvmquZtMy86QH6rzhGsource non disponible publiquement
LaunchLabLanMV9sAd7wArD4vJFi2qDdfnVhFxYSUg6eADduJ3ujsource non disponible publiquement
AMM Routing (routeur on-chain de Raydium)routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xSsource non disponible publiquement
Burn & Earn / LP LockLockrWmn6K5twhz3y9w1dQERbmgSaRkfnTeTKbpofwEsource non disponible publiquement
Notes :
  • AMM v4 et Farm v3/v5 sont conservés pour les pools et positions existants. L’interface utilisateur Raydium et le SDK acheminent la création de nouveaux pools et les nouvelles fermes écosystème vers CPMM, CLMM et Farm v6 respectivement — voir protocol-overview/versions-and-migration.
  • L’ID Farm v3 ci-dessus double le programme de staking en monoactif $RAY. Le comportement est identique à Farm v3 pour le staking LP.
  • Stable AMM est un programme séparé que le programme AMM Routing peut cibler aux côtés d’AMM v4, CPMM et CLMM. La liquidité est limitée par rapport à ces trois autres programmes et le SDK n’expose pas une API de première classe pour celui-ci ; les intégrateurs qui l’empruntent le font généralement via le routeur.
  • Disponibilité du code source. Parmi les programmes on-chain ci-dessus, seuls raydium-amm (AMM v4), raydium-cp-swap (CPMM) et raydium-clmm (CLMM) sont fournis avec des dépôts sources publics sous github.com/raydium-io. Stable AMM, LaunchLab, AMM Routing, Burn & Earn / LP Lock et les programmes Farm ne sont pas disponibles publiquement — vérifiez-les contre l’API en direct, le bytecode on-chain et les IDLs publiés dans raydium-io/raydium-idl à la place.

Autorité admin partagée

Tous les programmes basés sur Anchor (CLMM, CPMM, LaunchLab, Lock) partagent une seule Pubkey admin codée en dur pour le contrôle d’accès au niveau des instructions vers les chemins admin (tels que CreateAmmConfig ou UpdatePoolStatus) :
ClusterAdmin
mainnet-betaGThUX1Atko4tqhN2NaiTazWSeFWMuiUvfFnyJyUghFMJ
devnetDRayqG9RXYi8WHgWEmRQGrUWRWbhjYWYkCRJDd6JBBak
Les autorités opérationnelles au niveau du compte (par ex. protocol_owner, fund_owner sur AmmConfig CPMM/CLMM, ou les portefeuilles de migration sur GlobalConfig LaunchLab) sont stockés on-chain et peuvent différer de l’admin du programme. Lisez-les directement depuis le compte de configuration pertinent avant d’envoyer des transactions à enjeux élevés.

Conventions de configuration partagée / PDA

Plusieurs programmes Raydium exposent des comptes de configuration dont les clés publiques sont stables et figurent dans l’API publique. Préférez la recherche API au codage en dur :
# Configurations de frais CPMM (renvoie un tableau de {id, index, tradeFeeRate, ...})
GET https://api-v3.raydium.io/main/cpmm-config

# Configurations de frais CLMM
GET https://api-v3.raydium.io/main/clmm-config
Paramètres de frais AmmConfig CPMM par défaut à l’index 0 (pool standard de 0,25%), pour référence :
ChampValeurSignification
trade_fee_rate25000,25 % du volume d’échange
protocol_fee_rate12000012 % des frais d’échange (pas du volume) acheminés vers le protocole
fund_fee_rate400004 % des frais d’échange acheminés vers le multisig du fonds
creator_fee_rate5000,05 % du volume d’échange au créateur du pool (optionnel)
Voir products/cpmm/fees pour voir comment les divisions se composent, et reference/fee-comparison pour la matrice inter-produits.

Graines PDA

Les graines ci-dessous sont canoniques et utilisées à la fois par le SDK et par les CPIs on-chain. Calculez toujours les PDAs ; ne codez pas en dur les adresses dérivées.
// CPMM — toutes les graines sont des chaînes ASCII statiques sauf indication contraire.
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 sont triés par ordre d’octets de clé publique (token0 < token1) avant le hachage. Faire cela incorrectement produit une PDA valide pour un pool inexistant. Les graines CLMM équivalentes suivent le même style ; voir products/clmm/accounts.

Devnet

ProgrammeID du programme
AMM v4DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav
CPMMDRaycpLY18LhpbydsBWbVJtxpNv9oXPgjRSfpF2bWpYb
CLMMDRayAUgENGQBKVaX8owNhgzkEDyoHTGVEGHVJT1E9pfH
Stable AMMDRayDdXc1NZQ9C3hRWmoSf8zK4iapgMnjdNZWrfwsP8m
LaunchLabDRay6fNdQ5J82H7xV6uq2aV3mNrUZ1J4PgSKsWgptcm6
AMM RoutingDRaybByLpbUL57LJARs3j8BitTxVfzBg351EaMr5UTCd
Burn & Earn / LP LockDLockwT7X7sxtLmGH9g5kmfcjaBtncdbUmi738m5bvQC
Farm v3 / v5 / v6Non publiés de manière fiable pour devnet — confirmez via l’API en direct (https://api-v3-devnet.raydium.io/main/info) avant utilisation.
Base de l’API REST Devnet : https://api-v3-devnet.raydium.io/ (même forme de route que mainnet).

Comment vérifier une adresse on-chain

  1. Solana Explorer. Collez l’adresse dans explorer.solana.com et confirmez qu’elle est marquée comme Program avec une autorité de mise à niveau actuelle. Mainnet-beta devrait afficher des déploiements signés par l’autorité de mise à niveau de Raydium.
  2. CLI. Utilisez solana program show <PROGRAM_ID> -u mainnet-beta pour inspecter l’emplacement de déploiement, le chargeur BPF, l’autorité de mise à niveau et la longueur des données. Enregistrez-les dans votre runbook.
  3. Attachement IDL. Interrogez l’IDL on-chain avec anchor idl fetch <PROGRAM_ID> --provider.cluster mainnet. Le champ address de l’IDL doit correspondre. Les mêmes IDLs sont mirrés sur github.com/raydium-io/raydium-idl — diff l’IDL on-chain par rapport au dépôt avant de lui faire confiance.
  4. Autorités de configuration/admin. Pour les comptes de configuration CPMM/CLMM, lisez le champ owner/protocol_owner et confirmez qu’il correspond au multisig Raydium actuel publié dans security/admin-and-multisig.
Si l’une des quatre vérifications ci-dessus est en désaccord avec cette page, traitez cette page comme incorrecte et ouvrez un problème avant d’écrire un nouveau code par rapport aux adresses.

Mise à jour de cette page

  • Les modifications des ID de programme sont critiques pour la sécurité. Ne pas livrer une modification d’ID de programme sans (a) créer un lien vers l’annonce Raydium, (b) ajouter une entrée dans reference/changelog et (c) exécuter une vérification des liens sur la documentation pour confirmer qu’aucune page ne référence toujours l’ancienne valeur.
  • Les déprécations restent dans le tableau avec une note d’état plutôt que d’être supprimées — les pools existants continuent à se résoudre via l’ancien programme.
Sources :