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.
Esta página foi traduzida automaticamente por IA. A versão em inglês é a fonte oficial.Ver versão em inglês →
Três programas, três schemas. Farm v3, v5 e v6 são programas separados com layouts de estado distintos. Esta página documenta cada um lado a lado. Na prática, a maioria das novas integrações visa v6; v3 e v5 são somente leitura para a maioria dos integradores (staking já aconteceu ali há muito tempo e os pools estão em desativação).
Inventário de contas (por farm, qualquer versão)
| Conta | Owner | Propósito |
|---|---|---|
FarmState | Programa Farm (v3/v5/v6) | Estado raiz: mint de staking, total de stake, fluxos de recompensas. |
farm_authority | Programa Farm | PDA que possui o vault de staking e os vaults de recompensas. |
staking_vault | SPL Token | Contém LP em stake (ou qualquer que seja o mint de staking). |
reward_vault_{i} | SPL Token | Contém o orçamento não distribuído para o fluxo de recompensas i. Um por fluxo. |
UserStake (v3/v5) / UserLedger (v6) | Programa Farm | Ledger por (farm, user): quantidade em stake + snapshot de reward-per-share por fluxo. |
raydium.farm.getFarmById. Para farms de terceiros arbitrárias, o endpoint de API GET https://api-v3.raydium.io/main/farms/info?ids=<FARM_ID> também os retorna.
Layout FarmState — v6
v6 é a versão atual. Sua estrutura de conta é a mais genérica.
staking_mint,staking_vault— o que é depositado em stake e onde fica armazenado.total_staked— total atual. Necessário para calcular APR:reward_per_second × 86400 / total_staked.reward_infos[i].emission_per_second_x64— a taxa em Q64.64. Divida por2^64para obter a contagem real de tokens por segundo.reward_infos[i].open_time/end_time— para exibições na UI “X dias restantes”.reward_infos[i].reward_per_share_x64— o contador do qual oUserLedgerdeduz.
Layout FarmState — v5
- Por slot, não por segundo. O loop de atualização v5 executa em slots em vez do relógio de parede. O SDK normaliza isso para “por segundo” na UI, mas on-chain a unidade é slots.
- Taxa de emissão inteira.
reward_per_secondéu64. Isso limita a taxa mínima expressável a 1 unidade por segundo, o que é muito grosseiro para fluxos de baixa emissão em mints de 9 casas decimais. v6 corrigiu isso com a taxa Q64.64. - Sem
reward_sender. Em v5, o owner é o remetente implícito; apenasownerpode aumentar o orçamento.
Layout FarmState — v3
UserLedger (v6) / UserStake (v5/v3)
Estado por usuário, uma conta por par (farm, user). PDA com seed:
Deposit, Withdraw ou Harvest, a dívida é redefinida para o deposited × reward_per_share_x64[i] / 2^64 atual.
PDAs de autoridade
Vaults
Os vaults de staking e recompensas são contas padrão de SPL Token cujoowner é a PDA de autoridade do farm. Os endereços são armazenados em FarmState — não re-derive; leia do estado. As autoridades de congelamento devem estar desabilitadas no mint de staking para v5/v6 (o programa verifica).
Notas sobre Token-2022:
- v3: Apenas SPL Token.
- v5: Apenas SPL Token.
- v6: Suporta Token-2022 em mints de staking e recompensas, controlado pelos campos
staking_token_program/reward_token_program. As taxas de transferência em mints de recompensas Token-2022 são cobradas na emissão (vault → usuário).
Observação e APR
Farms não armazenam APR on-chain. Para calcular:staking_mint_usd_price do pool ao qual o LP pertence (via api-v3.raydium.io/pools/info/ids) e reward_usd_price de qualquer oráculo de preço.
Próximos passos
products/farm-staking/instructions— referência de instruções por versão.products/farm-staking/code-demos— staking, harvesting e criação de farms via SDK.reference/program-addresses— todos os três IDs de programa.
- Módulo
Farmdo Raydium SDK v2 - O código-fonte do programa Farm v6 não é publicado como um repositório independente no momento; o IDL está incluído no SDK em
raydium-io/raydium-sdk-V2sobsrc/raydium/farm/.


