Guide d'Intégration Complet - Raydium Protocol
Le guide définitif pour intégrer Raydium - l'AMM leader de Solana et l'infrastructure de liquidité alimentant la DeFi depuis 2021.
Qu'est-ce que Raydium ?
Raydium est un exchange décentralisé sur Solana offrant :
- Token Swapping - Swaps rapides et bon marché via routage intelligent sur tous les types de pools
- Liquidity Provision - Gagnez des frais de trading et des récompenses en fournissant de la liquidité
- Token Launches - LaunchLab pour les lancements de tokens sans permission avec courbes de liaison
- Perpetual Trading - Trading avec effet de levier sur les actifs cryptographiques
Statistiques Clés
- Infrastructure de liquidité la plus largement intégrée sur Solana
- 35 000+ tokens lancés via LaunchLab (2025)
- Plusieurs types de pools pour différents cas d'usage
Produits Principaux
Types de Pool
| Type | Description | Meilleur Pour |
|---|---|---|
| CLMM | Concentrated Liquidity Market Maker | LPs professionnels, paires stablecoin, gestion active |
| CPMM | Constant Product (x*y=k) avec Token22 | Nouveaux lancements de tokens, intégrations simples |
| AMM V4 | AMM Classique + OpenBook CLOB | Marchés existants, liquidité hybride |
Fonctionnalités Additionnelles
- LaunchLab - Lancements de tokens sans permission avec courbes de liaison
- Farms - Yield farming et récompenses de staking
- Burn & Earn - Blocage permanent de liquidité
- Trade API - API HTTP pour le routage de swaps
Aperçu de l'API
1. SDK (TypeScript)
Package : @raydium-io/raydium-sdk-v2
Pour l'intégration programmatique avec un contrôle total sur les pools, les positions et les transactions.
2. Trade API (HTTP)
URL de Base : https://transaction-v1.raydium.io
Pour le routage de swaps - obtenez des devis et des transactions sérialisées via HTTP.
3. Data API
URL de Base : https://api-v3.raydium.io
Pour les données de pool, les listes de tokens, les infos de farms et les configurations.
Démarrage Rapide
Installation
npm install @raydium-io/raydium-sdk-v2
# ou
yarn add @raydium-io/raydium-sdk-v2
Configuration de Base
import { Raydium } from '@raydium-io/raydium-sdk-v2';
import { Connection, Keypair } from '@solana/web3.js';
import bs58 from 'bs58';
// Configuration connexion et wallet
const connection = new Connection('https://api.mainnet-beta.solana.com');
const owner = Keypair.fromSecretKey(bs58.decode('YOUR_SECRET_KEY'));
// Initialisation SDK
const raydium = await Raydium.load({
connection,
owner,
cluster: 'mainnet',
disableLoadToken: false, // Charger la liste de tokens
});
// Accès aux données de tokens
const tokenList = raydium.token.tokenList;
const tokenMap = raydium.token.tokenMap;
// Accès aux données de compte
const tokenAccounts = raydium.account.tokenAccounts;
Types de Pool
CLMM (Concentrated Liquidity)
Permet aux LPs de concentrer la liquidité dans des plages de prix spécifiques pour une meilleure efficacité capitalistique.
// Récupérer le pool CLMM
const poolId = 'POOL_ID_HERE';
const poolInfo = await raydium.clmm.getPoolInfoFromRpc(poolId);
// Ou depuis l'API (mainnet uniquement)
const poolData = await raydium.api.fetchPoolById({ ids: poolId });
CPMM (Constant Product)
AMM simplifié sans exigence de marché OpenBook, supporte Token22.
// Récupérer le pool CPMM
const cpmmPool = await raydium.cpmm.getPoolInfoFromRpc(poolId);
AMM (Legacy)
AMM classique intégré avec le carnet d'ordres central OpenBook.
// Récupérer le pool AMM
const ammPool = await raydium.liquidity.getPoolInfoFromRpc({ poolId });
Opérations Principales
Swap
import { CurveCalculator } from '@raydium-io/raydium-sdk-v2';
// Calculer le swap
const { amountOut, fee } = CurveCalculator.swapBaseInput({
poolInfo,
amountIn: 1000000n, // lamports
mintIn: inputMint,
mintOut: outputMint,
});
// Exécuter un swap CPMM
const { execute } = await raydium.cpmm.swap({
poolInfo,
inputAmount: 1000000n,
inputMint,
slippage: 0.01, // 1%
txVersion: 'V0',
});
await execute({ sendAndConfirm: true });
Ajouter de la Liquidité
// Dépôt CPMM
const { execute } = await raydium.cpmm.addLiquidity({
poolInfo,
inputAmount: 1000000n,
baseIn: true,
slippage: 0.01,
});
await execute({ sendAndConfirm: true });
Créer un Pool
// Créer un pool CPMM
const { execute } = await raydium.cpmm.createPool({
mintA,
mintB,
mintAAmount: 1000000n,
mintBAmount: 1000000n,
startTime: new BN(0),
feeConfig, // depuis l'API
txVersion: 'V0',
});
const { txId } = await execute({ sendAndConfirm: true });
IDs de Programme
| Programme | Mainnet | Devnet |
|---|---|---|
| AMM | 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 |
DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav |
| CLMM | CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK |
devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH |
| CPMM | CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C |
CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW |
Points de Terminaison de l'API
// API Mainnet
const API_URL = 'https://api-v3.raydium.io';
// API Devnet
const DEVNET_API = 'https://api-v3.raydium.io/main/';
// Points de terminaison courants
const endpoints = {
tokenList: '/mint/list',
poolList: '/pools/info/list',
poolById: '/pools/info/ids',
farmList: '/farms/info/list',
clmmConfigs: '/clmm/configs',
};
Options de Transaction
const { execute } = await raydium.cpmm.swap({
poolInfo,
inputAmount,
inputMint,
slippage: 0.01,
txVersion: 'V0', // ou 'LEGACY'
computeBudgetConfig: {
units: 600000,
microLamports: 100000, // frais de priorité
},
});
// Exécuter avec options
const { txId } = await execute({
sendAndConfirm: true,
skipPreflight: true,
});
console.log(`https://solscan.io/tx/${txId}`);
Fonctionnalités Clés
| Fonctionnalité | CLMM | CPMM | AMM |
|---|---|---|---|
| Concentrated Liquidity | Oui | Non | Non |
| Support Token22 | Limité | Oui | Non |
| OpenBook Requis | Non | Non | Oui |
| Custom Price Ranges | Oui | Non | Non |
| LP NFT Positions | Oui | Non | Non |
LaunchLab (Nouveau)
LaunchLab simplifie les lancements de tokens sur Solana avec des courbes de liaison personnalisables :
// Créer un token avec courbe de liaison via LaunchLab
const { execute } = await raydium.launchLab.createToken({
name: "My Token",
symbol: "MTK",
uri: "https://arweave.net/metadata.json",
initialSupply: 1_000_000_000n,
bondingCurve: "linear", // ou "exponential"
graduationThreshold: 85_000_000_000n, // 85 SOL
txVersion: "V0",
});
const { txId } = await execute({ sendAndConfirm: true });
Migration de Courbe de Liaison
Les tokens se migrent automatiquement vers des pools AMM une fois qu'ils atteignent le seuil de graduation (défaut : 85 SOL). Les créateurs gagnent 10% des frais de trading après la migration.
Jalons Clés (2025)
- 35 000+ tokens lancés via LaunchLab
- Orb Explorer lancé pour l'analytics on-chain
Protocole V3 (À Venir)
Raydium V3 introduit un modèle de liquidité hybride combinant :
- Pools AMM avec le carnet d'ordres décentralisé d'OpenBook
- Accès à 40% plus de liquidité dans la DeFi Solana
- Efficacité capitalistique améliorée pour les LPs
Ressources
- SDK : https://github.com/raydium-io/raydium-sdk-V2
- Démos : https://github.com/raydium-io/raydium-sdk-V2-demo
- IDL : https://github.com/raydium-io/raydium-idl
- Programme CLMM : https://github.com/raydium-io/raydium-clmm
- Programme CPMM : https://github.com/raydium-io/raydium-cp-swap
- Programme AMM : https://github.com/raydium-io/raydium-amm
- Exemples CPI : https://github.com/raydium-io/raydium-cpi
Structure de Skill
raydium/
├── SKILL.md # Ce fichier - guide d'intégration complet
├── resources/
│ ├── sdk-api-reference.md # API SDK complet
│ ├── trade-api.md # Référence HTTP Trade API
│ ├── program-ids.md # Toutes les adresses de programme
│ ├── pool-types.md # Comparaison des types de pool
│ ├── launchlab.md # Documentation LaunchLab
│ └── github-repos.md # Référence des dépôts GitHub
├── examples/
│ ├── swap/README.md # Exemples de swap de tokens
│ ├── clmm-pool/README.md # Création de pool CLMM
│ ├── clmm-position/README.md # Gestion de position CLMM
│ ├── cpmm-pool/README.md # Opérations de pool CPMM
│ ├── liquidity/README.md # Gestion de liquidité
│ ├── farming/README.md # Farming et staking
│ └── launchlab/README.md # Lancements de tokens LaunchLab
├── templates/
│ └── raydium-setup.ts # Modèle de configuration SDK
└── docs/
├── clmm-guide.md # Exploration approfondie CLMM
└── troubleshooting.md # Problèmes courants
Dépôts GitHub
| Dépôt | Description |
|---|---|
| raydium-sdk-V2 | SDK TypeScript |
| raydium-sdk-V2-demo | Exemples SDK |
| raydium-clmm | Programme CLMM (Rust) |
| raydium-cp-swap | Programme CPMM (Rust) |
| raydium-amm | Programme AMM V4 (Rust) |
| raydium-cpi | Exemples d'intégration CPI |
| raydium-idl | Définitions IDL |
Vérification
- Un appel RPC/SDK réel a été émis (mainnet, devnet ou validateur local) et la charge utile de réponse est capturée dans la transcription, pas seulement paraphrasée
- Chaque transaction a été simulée (
simulateTransactionou équivalent) avant toute étape de signature/envoi ; les logs de simulation sont joint - Pour toute transaction signée/envoyée, la signature résultante est enregistrée et confirmée on-chain (statut retourné par
getSignatureStatusesou une URL d'explorateur) - Le slippage, les frais de priorité et les limites d'unités de calcul ont été définis explicitement avec des valeurs numériques concrètes, pas laissés aux défauts de la bibliothèque
- Les adresses de compte, les mints et les IDs de programme utilisés dans l'exécution correspondent aux adresses raydium-amm documentées pour le cluster ciblé (pas de mélange mainnet/devnet)
- Le chemin d'erreur a été exercé au moins une fois (solde insuffisant, oracle obsolète, blockhash expiré, etc.) et la gestion d'erreur de l'agent a produit un message lisible