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.
Эта страница переведена с помощью ИИ. За эталон принимается английская версия.Открыть английскую версию →
Три программы, три схемы. Farm v3, v5 и v6 — это отдельные программы с отличающейся разметкой состояния. На этой странице они документированы параллельно. На практике большинство новых интеграций ориентируются на v6; v3 и v5 используются в режиме чтения для большинства интеграторов (стейкинг там произошёл давно, и пулы находятся на завершающей стадии).
Инвентарь аккаунтов (на один ферм, любая версия)
| Аккаунт | Владелец | Назначение |
|---|---|---|
FarmState | Farm программа (v3/v5/v6) | Корневое состояние: стейкинг-монета, общее количество в ставке, потоки вознаграждения. |
farm_authority | Farm программа | PDA, владеющий хранилищем стейкинга и хранилищами вознаграждений. |
staking_vault | SPL Token | Содержит LP в ставке (или другой монету для стейкинга). |
reward_vault_{i} | SPL Token | Содержит неиспользованный бюджет для потока вознаграждения i. Один на поток. |
UserStake (v3/v5) / UserLedger (v6) | Farm программа | Реестр на (ферм, пользователь): сумма в ставке + снимок вознаграждения за акцию на каждый поток. |
raydium.farm.getFarmById. Для произвольных сторонних ферм конечная точка API GET https://api-v3.raydium.io/main/farms/info?ids=<FARM_ID> тоже их возвращает.
Разметка FarmState — v6
v6 — текущая версия. Её структура аккаунта наиболее универсальна.
staking_mint,staking_vault— что ставится и где находится.total_staked— текущее количество. Необходимо для подсчёта APR:reward_per_second × 86400 / total_staked.reward_infos[i].emission_per_second_x64— скорость Q64.64. Разделите на2^64для истинного количества токенов в секунду.reward_infos[i].open_time/end_time— для отображения UI «X дней осталось».reward_infos[i].reward_per_share_x64— счётчик, на который срезаетсяUserLedger.
Разметка FarmState — v5
- По слотам, не по секундам. Цикл обновления v5 работает на слотах, а не на часах. SDK нормализует это в «в секунду» для UI, но в блокчейне единица — слоты.
- Целая скорость эмиссии.
reward_per_second— этоu64. Это ограничивает минимальную выражаемую скорость одним токеном в секунду, что слишком грубо для потоков с низким выпуском на 9-десятичных монетах. v6 исправила это скоростью Q64.64. - Нет
reward_sender. В v5 владелец — неявный отправитель; толькоownerможет пополнить.
Разметка FarmState — v3
UserLedger (v6) / UserStake (v5/v3)
Состояние каждого пользователя, один аккаунт на пару (ферм, пользователь). Seeded PDA:
Deposit, Withdraw или Harvest долг переустанавливается на текущее значение deposited × reward_per_share_x64[i] / 2^64.
PDA органов управления
Хранилища
Хранилища стейкинга и вознаграждения — это стандартные аккаунты SPL Token, чейowner — PDA органа управления фермой. Адреса хранятся на FarmState — не переделывайте; читайте из состояния. Органы замораживания должны быть отключены на монете стейкинга для v5/v6 (программа проверяет).
Заметки об Token-2022:
- v3: Только SPL Token.
- v5: Только SPL Token.
- v6: Поддерживает Token-2022 как на монетах стейкинга, так и на монетах вознаграждения, управляется полями
staking_token_program/reward_token_program. Комиссии за трансфер на монетах Token-2022 вознаграждения взимаются при выпуске (хранилище → пользователь).
Наблюдение и APR
Фермы не хранят APR в блокчейне. Для подсчёта:staking_mint_usd_price из пула, к которому относится LP (через api-v3.raydium.io/pools/info/ids), и reward_usd_price из любого оракула цен.
Дальше
products/farm-staking/instructions— справочник инструкций по версиям.products/farm-staking/code-demos— стейкинг, сбор урожая и создание ферм через SDK.reference/program-addresses— все три ID программ.
- Raydium SDK v2
Farmмодуль - Исходный код программы Farm v6 в настоящее время не опубликован как отдельный репозиторий; IDL входит в состав SDK в
raydium-io/raydium-sdk-V2подsrc/raydium/farm/.


