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.
Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
Tiga program, tiga skema. Farm v3, v5, dan v6 adalah program terpisah dengan layout state terpisah. Halaman ini mendokumentasikan ketiganya secara berdampingan. Dalam praktik, sebagian besar integrasi baru menargetkan v6; v3 dan v5 adalah read-only untuk sebagian besar integrator (staking sudah terjadi di sana lama sekali dan pool sedang dalam fase wind-down).
Inventaris akun (per farm, semua versi)
| Akun | Pemilik | Tujuan |
|---|---|---|
FarmState | Program farm (v3/v5/v6) | State utama: staking mint, total staked, reward stream. |
farm_authority | Program farm | PDA yang memiliki staking vault dan reward vault. |
staking_vault | SPL Token | Menyimpan staked LP (atau apapun staking mint-nya). |
reward_vault_{i} | SPL Token | Menyimpan anggaran undistributed untuk reward stream i. Satu per stream. |
UserStake (v3/v5) / UserLedger (v6) | Program farm | Ledger per-(farm, user): jumlah staked + snapshot reward-per-share per stream. |
raydium.farm.getFarmById. Untuk farm pihak ketiga arbitrer, endpoint API GET https://api-v3.raydium.io/main/farms/info?ids=<FARM_ID> juga mengembalikannya.
Layout FarmState — v6
v6 adalah versi terkini. Struktur akunnya paling umum.
staking_mint,staking_vault— apa yang distaked dan di mana tempat penyimpanannya.total_staked— total saat ini. Diperlukan untuk menghitung APR:reward_per_second × 86400 / total_staked.reward_infos[i].emission_per_second_x64— rate Q64.64. Bagikan dengan2^64untuk mendapatkan jumlah token per-detik yang sebenarnya.reward_infos[i].open_time/end_time— untuk tampilan UI “X hari tersisa”.reward_infos[i].reward_per_share_x64— counter yang menjadi offset utangUserLedger.
Layout FarmState — v5
- Per-slot, bukan per-detik. Loop update v5 berjalan pada slot daripada jam dinding. SDK menormalisasi ini menjadi “per-detik” untuk UI tetapi on-chain unitnya adalah slot.
- Integer emission rate.
reward_per_secondadalahu64. Ini membatasi rate minimum yang dapat diekspresikan menjadi 1 unit per detik, yang terlalu kasar untuk stream emisi rendah pada mint 9-desimal. v6 memperbaikinya dengan rate Q64.64. - Tidak ada
reward_sender. Pada v5 owner adalah pengirim implisit; hanyaowneryang dapat top up.
Layout FarmState — v3
UserLedger (v6) / UserStake (v5/v3)
State per-user, satu akun per pasangan (farm, user). PDA seed:
Deposit, Withdraw, atau Harvest, utang diatur ulang ke deposited × reward_per_share_x64[i] / 2^64 yang sekarang.
Authority PDA
Vault
Staking dan reward vault adalah akun SPL Token standar yangowner-nya adalah farm authority PDA. Alamat disimpan pada FarmState — jangan re-derive; baca dari state. Freeze authority harus dinonaktifkan pada staking mint untuk v5/v6 (program memeriksa).
Catatan Token-2022:
- v3: SPL Token saja.
- v5: SPL Token saja.
- v6: Mendukung Token-2022 pada staking dan reward mint, gated pada field
staking_token_program/reward_token_program. Transfer fee pada Token-2022 reward mint dikenakan saat emit (vault → user).
Observasi dan APR
Farm tidak menyimpan APR on-chain. Untuk menghitung:staking_mint_usd_price dari pool yang LP milik (via api-v3.raydium.io/pools/info/ids) dan reward_usd_price dari oracle harga apa pun.
Langkah selanjutnya
products/farm-staking/instructions— referensi instruksi per-versi.products/farm-staking/code-demos— staking, harvesting, dan membuat farm via SDK.reference/program-addresses— ketiga ID program.
- Modul
FarmRaydium SDK v2 - Source program farm v6 saat ini tidak dipublikasikan sebagai repo standalone; IDL dibundel dalam SDK di
raydium-io/raydium-sdk-V2di bawahsrc/raydium/farm/.


