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 →
Banneau de version. Tous les exemples ciblent
@raydium-io/raydium-sdk-v2@0.2.42-alpha sur Solana mainnet-beta, vérifié en 2026-04. Le SDK dispatche v3 / v5 / v6 en interne selon le propriétaire du programme de la farm ; les exemples ci-dessous supposent une farm v6. Consultez reference/program-addresses pour les trois identifiants de programme.Installation
Les exemples ici reflètent les fichiers dansraydium-sdk-V2-demo/src/farm. L’initialisation suit le config.ts.template du dépôt de démonstration :
Récupérer une farm par ID
getFarmById récupère FarmState hors-chaîne, décode selon la version du programme, et normalise le taux d’émission à virgule fixe en un simple Decimal par seconde.
Mettre en stake des tokens LP
Source :src/farm/stake.ts
Récolte uniquement (harvest)
Source :src/farm/harvest.ts
harvestAllRewards accepte une liste — pour les UIs montrant une vue de portefeuille, regroupez l’appel. Chaque farm est récoltée dans une instruction séparée au sein d’une transaction (soumis à la limite de 1232 octets ; pour plus de ~6 farms, divisez en plusieurs transactions).
Pour une seule farm sur v6, vous pouvez aussi utiliser le chemin Harvest explicite :
amount: 0 est requis ; le SDK le dispatche correctement.
Retirer les stakes
Source :src/farm/unstake.ts
Créer une farm v6
Source :src/farm/createAmmFarm.ts et editAmmFarm.ts
perSecondest le taux d’émission entier par seconde. Le SDK le compresse en Q64.64 avant l’envoi. Pour un taux fractionnaire, ajustez l’échelle et la durée.- Le budget complet (
perSecond × duration) doit être présent dans votre ATA de récompense —createle déplace dans le coffre de récompenses atomiquement. - Vous pouvez mettre en place jusqu’à 5 récompenses en un seul appel
create. La liste des comptes augmente de(reward_mint, reward_vault, sender_ata, token_program)par flux supplémentaire ; restez conscient de la limite de taille de transaction de 1232 octets. Pour 4+ récompenses, créez avec 1–2 et utilisezAddRewarddans les transactions de suivi.
Augmenter un flux de récompense existant
setRewards prolonge end_time et transfère le budget delta. L’instruction ne peut pas raccourcir un flux, ne peut pas diminuer per_second sur un flux actif, et ne peut pas changer le mint de récompense. Pour changer les mints, attendez end_time et utilisez AddReward sur un emplacement libéré (s’il y en a un), ou créez une nouvelle farm.
Redémarrer un flux terminé
reward_state == 2 (terminé) de l’emplacement cible. L’appelant doit être le reward_sender de l’emplacement (v6) ou le propriétaire de la farm (v5).
CPI Rust
Contrairement à AMM v4, le programme farm v6 est livré avec une caisse Anchor (raydium_farm_v6) publiée aux côtés des sources frontend et SDK. Un esquisse minimal de Deposit :
remaining_accounts doit correspondre exactement aux emplacements de récompense actifs de la farm, 1 pour 1 (paires de reward_vault_i, user_reward_ata_i dans l’ordre des index). Omettre ou mélanger ces éléments produit une mauvaise comptabilité silencieuse — le programme transférera le mauvais montant.
Pièges
- Oublier de récolter avant de retirer. Inoffensif —
Withdrawrègle d’abord les récompenses en attente. Mais si votre UI montre « récolter » séparément de « retirer », l’utilisateur peut penser qu’il y a encore quelque chose à récolter après unWithdraw. Ce n’est pas le cas ; tout ce qui s’est accumulé jusqu’à ce point a été versé. total_staked = 0pendant les émissions. Les émissions accumulées alors que rien n’était en stake sont perdues (la formule de mise à jourreward_per_sharedivise par 0 et le programme saute la mise à jour). Pour les programmes avecopen_timeprogrammé, exécutez un « seed stake » à open_time pour éviter cela.- Frais de transfert Token-2022. Sur les farms v6 avec mints de récompense Token-2022, le frais de transfert s’applique lors de l’émission (coffre → utilisateur). Tenez compte de cela dans les devis de APR.
- Petit
per_secondsur v5. Le tauxu64de v5 signifie que toutper_second < 1unité token par seconde (sur les mints avec ≥9 décimales, c’est souvent le taux souhaité) ne peut pas être exprimé — le taux du flux s’arrondit à 0 et la farm n’émet rien. Utilisez v6.
Prochaines étapes
products/farm-staking/instructions— référence d’instruction sous-jacente.products/clmm/fees— comparaison avec les flux de récompense natifs de CLMM.user-flows/migrate-amm-v4-to-cpmm— souvent associé à la création d’une nouvelle farm CPMM.
- Raydium SDK v2
- Farm v6 IDL fourni dans
raydium-io/raydium-sdk-V2soussrc/raydium/farm/.


