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 →
Trois programmes, trois schémas. Farm v3, v5 et v6 sont des programmes distincts avec des layouts d’état différents. Cette page documente chacun côte à côte. En pratique, la plupart des nouvelles intégrations ciblent v6 ; v3 et v5 sont en lecture seule pour la plupart des intégrateurs (le staking a déjà eu lieu il y a longtemps et les pools sont en phase d’arrêt).
Inventaire des comptes (par farm, quelle que soit la version)
| Compte | Propriétaire | Objectif |
|---|---|---|
FarmState | Programme Farm (v3/v5/v6) | État racine : mint de staking, total staké, flux de récompenses. |
farm_authority | Programme Farm | PDA qui possède le vault de staking et les vaults de récompenses. |
staking_vault | SPL Token | Contient le LP staké (ou quel que soit le mint de staking). |
reward_vault_{i} | SPL Token | Contient le budget non distribué pour le flux de récompenses i. Un par flux. |
UserStake (v3/v5) / UserLedger (v6) | Programme Farm | Ledger par (farm, user) : montant staké + snapshot de la récompense par partage par flux. |
raydium.farm.getFarmById. Pour les farms tiers arbitraires, le point de terminaison API GET https://api-v3.raydium.io/main/farms/info?ids=<FARM_ID> les retourne également.
Layout FarmState — v6
v6 est la version actuelle. Sa structure de compte est la plus générale.
staking_mint,staking_vault— ce qui est staké et où il se trouve.total_staked— total actuel. Requis pour calculer l’APR :reward_per_second × 86400 / total_staked.reward_infos[i].emission_per_second_x64— le taux Q64.64. Divisez par2^64pour obtenir le vrai nombre de tokens par seconde.reward_infos[i].open_time/end_time— pour les affichages UI « X jours restants ».reward_infos[i].reward_per_share_x64— le compteur sur lequel leUserLedgeraccorde une dette.
Layout FarmState — v5
- Par slot, et non par seconde. La boucle de mise à jour de v5 s’exécute sur les slots plutôt que sur l’horloge. Le SDK normalise ceci en « par seconde » pour l’interface utilisateur, mais on-chain l’unité est les slots.
- Taux d’émission entier.
reward_per_secondestu64. Cela limite le taux minimum exprimable à 1 unité par seconde, ce qui est trop grossier pour les flux à faible émission sur les mints à 9 décimales. v6 a corrigé cela avec le taux Q64.64. - Pas de
reward_sender. Sur v5, le propriétaire est l’expéditeur implicite ; seulownerpeut reconstituer les fonds.
Layout FarmState — v3
UserLedger (v6) / UserStake (v5/v3)
État par utilisateur, un compte par paire (farm, user). PDA seedé :
Deposit, Withdraw ou Harvest, la dette est réinitialisée à deposited × reward_per_share_x64[i] / 2^64 actuel.
PDAs d’autorité
Vaults
Les vaults de staking et de récompenses sont des comptes SPL Token standard dont leowner est la PDA d’autorité de la farm. Les adresses sont stockées sur FarmState — ne les re-dérivez pas ; lisez-les à partir de l’état. Les autorités de gel doivent être désactivées sur le mint de staking pour v5/v6 (le programme le vérifie).
Notes sur Token-2022 :
- v3 : SPL Token uniquement.
- v5 : SPL Token uniquement.
- v6 : Prend en charge Token-2022 sur les mints de staking et de récompenses, contrôlé par les champs
staking_token_program/reward_token_program. Les frais de transfert sur les mints de récompenses Token-2022 sont prélevés à l’émission (vault → utilisateur).
Observation et APR
Les farms ne stockent pas l’APR on-chain. Pour le calculer :staking_mint_usd_price du pool auquel appartient le LP (via api-v3.raydium.io/pools/info/ids) et reward_usd_price de tout oracle de prix.
Où aller ensuite
products/farm-staking/instructions— référence d’instructions par version.products/farm-staking/code-demos— staking, harvesting et création de farms via le SDK.reference/program-addresses— tous les trois identifiants de programme.
- Module
Farmdu SDK Raydium v2 - La source du programme Farm v6 n’est pas actuellement publiée comme un dépôt autonome ; l’IDL est fourni dans le SDK à
raydium-io/raydium-sdk-V2soussrc/raydium/farm/.


