Esta página fue traducida automáticamente por IA. La versión en inglés es la fuente autorizada.Ver versión en inglés →
Tres programas, tres esquemas. Farm v3, v5 y v6 son programas separados con esquemas de estado distintos. Esta página documenta cada uno lado a lado. En la práctica, la mayoría de integraciones nuevas apuntan a v6; v3 y v5 son de solo lectura para la mayoría de integradores (el staking ya ocurrió hace mucho tiempo y los pools están en fase de liquidación).
Inventario de cuentas (por farm, cualquier versión)
El SDK devuelve el conjunto completo en
raydium.farm.getFarmById. Para farms de terceros arbitrarios, el endpoint de API GET https://api-v3.raydium.io/main/farms/info?ids=<FARM_ID> también los devuelve.
Esquema FarmState — v6
v6 es la versión actual. Su estructura de cuenta es la más general.
staking_mint,staking_vault— qué se apuesta y dónde se guarda.total_staked— total actual. Necesario para calcular APR:reward_per_second × 86400 / total_staked.reward_infos[i].emission_per_second_x64— la tasa Q64.64. Divide entre2^64para obtener el conteo verdadero de tokens por segundo.reward_infos[i].open_time/end_time— para pantallas de UI “X días restantes”.reward_infos[i].reward_per_share_x64— el contador del queUserLedgerdescuenta.
Esquema FarmState — v5
- Por slot, no por segundo. El bucle de actualización de v5 se ejecuta por slots en lugar de en reloj de pared. El SDK normaliza esto a “por segundo” para la UI pero en cadena la unidad es slots.
- Tasa de emisión entera.
reward_per_secondesu64. Esto limita la tasa expresable mínima a 1 unidad por segundo, lo que es demasiado grueso para flujos de baja emisión en mints de 9 decimales. v6 lo arregló con la tasa Q64.64. - Sin
reward_sender. En v5 el propietario es el remitente implícito; soloownerpuede reabastecer.
Esquema FarmState — v3
UserLedger (v6) / UserStake (v5/v3)
Estado por usuario, una cuenta por par (farm, usuario). PDA derivada:
Deposit, Withdraw o Harvest, el descuento se reinicia a deposited × reward_per_share_x64[i] / 2^64 actual.
PDAs de autoridad
Bóvedas
Las bóvedas de staking y recompensas son cuentas SPL Token estándar cuyoowner es el PDA de autoridad del farm. Las direcciones se almacenan en FarmState — no las re-derives; léelas del estado. Las autoridades de congelación deben estar deshabilitadas en el mint de staking para v5/v6 (el programa lo verifica).
Notas sobre Token-2022:
- v3: Solo SPL Token.
- v5: Solo SPL Token.
- v6: Compatible con Token-2022 en mints de staking y recompensas, controlado por campos
staking_token_program/reward_token_program. Las comisiones de transferencia en mints de recompensas Token-2022 se cobran en emisión (bóveda → usuario).
Observación y APR
Los farms no almacenan APR en cadena. Para calcular:staking_mint_usd_price del pool al que pertenece el LP (vía api-v3.raydium.io/pools/info/ids) y reward_usd_price de cualquier oráculo de precios.
Qué hacer a continuación
products/farm-staking/instructions— referencia de instrucciones por versión.products/farm-staking/code-demos— staking, harvesting y creación de farms vía el SDK.reference/program-addresses— todos los tres IDs de programa.
- Módulo
Farmdel SDK v2 de Raydium - La fuente del programa Farm v6 no se publica actualmente como repo independiente; el IDL está incluido en el SDK en
raydium-io/raydium-sdk-V2bajosrc/raydium/farm/.

