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 →
Apa itu farm
Sebuah farm adalah program on-chain yang berdiri sendiri dan mendistribusikan satu atau lebih reward mint kepada akun yang melakukan stake pada sebuah staking mint. Staking mint hampir selalu adalah token LP yang dikeluarkan oleh CPMM, AMM v4, atau pool pair legacy, tetapi farm single-asset (melakukan stake SOL, RAY, atau project token secara langsung) didukung dan digunakan untuk sejumlah kecil program yang berjalan lama. Properti utama:- Berbasis emisi, bukan berbasis fee. Tidak seperti reward stream built-in CLMM, reward farm tidak terikat pada volume swap atau aktivitas pool. Budget farm disimpan di awal oleh pembuat dan dipancarkan pada tingkat per-detik yang konstan sampai habis.
- Independen dari pool. Pool tidak mengetahui bahwa farm ada. Memindahkan LP antar wallet tidak memberitahu farm; pengguna harus secara aktif melakukan
Withdrawdari farm terlebih dahulu. Demikian pula,Withdrawdari pool tidak mengeluarkan dana dari farm. - Ledger per-pengguna, per-reward. Setiap staker memiliki akun
UserStake(atau “Ledger”) per farm yang melacak jumlah stake mereka dan snapshot dari counter reward-per-share untuk setiap reward stream farm. - Multi-reward. Farm v5 mendukung hingga 2 reward; v6 mendukung hingga 5. Setiap reward memiliki vault, tingkat per-detik, waktu mulai, dan waktu akhir sendiri.
Tiga versi yang aktif
Raydium telah mengeluarkan tiga versi program farm. Semuanya aktif, dan masing-masing membawa skema PDA dan instruction set sendiri. Para integrator harus memperlakukan mereka sebagai tiga program berbeda yang berbagi model konseptual.| Versi | Lokasi Program ID | Max rewards | Perbedaan Utama |
|---|---|---|---|
| v3 | lihat reference/program-addresses | 1 | Skema paling awal. Farm tertua (RAY-USDC, SOL-USDC) masih melewati di sini. |
| v5 | lihat reference/program-addresses | 2 | Menambahkan slot reward kedua dan top-up gaya AddReward. |
| v6 | lihat reference/program-addresses | 5 | Versi saat ini. Slot yang diperluas, admin lebih bersih, mendukung farming CLMM-position melalui adapter spesifik v6 (jarang dalam praktik). |
raydium.farm sebagai single facade — versi disimpulkan dari pemilik akun farm. Saat membangun integrasi on-chain Anda harus melakukan dispatch secara manual.
Akuntansi reward-per-share
Program farm menggunakan pola standar “master-chef” yang terlihat di seluruh kontrak DeFi yield:reward_per_sharedisimpan pada akun farm sebagai counter fixed-point (Q64.64 di v5+, Q56.8 di v3). Hanya bertambah.user.reward_debtadalah snapshot darireward_per_sharesaat interaksi terakhir pengguna. Bukan utang yang dimiliki pengguna; ini adalah offset yang digunakan untuk menghitung akrual masa depan.- Pada
DepositdanWithdraw, farm terlebih dahulu menyelesaikan reward yang tertunda (mengkreditkanuser.pending_rewardatau mengirim langsung ke ATA pengguna, tergantung versi), kemudian memperbaruiuser.reward_debtke counter saat ini. - Pada
Harvest, farm membayarkanpending_rewarddan snapshotreward_debtlagi.
Deposit, Withdraw, Harvest, admin update). Farm tanpa aktivitas mengumpulkan kesenjangan yang terus bertambah yang ditutup pada interaksi berikutnya.
Staking mint vs reward mint
Staking mint dipegang di escrow, bukan dibakar. Ketika pengguna melakukan stake 100 LP, farm memindahkan 100 LP dari ATA pengguna ke vault staking farm. PadaWithdraw, farm memindahkan 100 LP kembali. Farm tidak pernah memanggil pool.
Reward mint dibayarkan dari vault yang didanai sebelumnya oleh pembuat. Ketika pembuat memulai farm, mereka menyetor budget reward penuh (misalnya, 1.000.000 RAY + 500.000 USDC) ke dua vault reward. Program farm tidak membuat token baru; program hanya mendistribusikan apa yang ada di vault selama durasi stream. Jika vault habis sebelum end_time, emisi berhenti.
Jadwal emisi
Setiap reward stream memiliki tiga parameter waktu:start_time— timestamp UNIX di mana emisi dimulai. Sebelum ini, tidak ada akrual.end_time— timestamp di mana emisi berhenti. Setelah ini,reward_per_sharetidak lagi tumbuh dari stream ini.per_second— tingkat emisi saatstart_time ≤ now < end_time.
end_time ke depan, isi vault) melalui AddReward / SetRewards pada v5 / v6. Dapat dimulai ulang setelah end_time melalui RestartRewards. Tidak dapat diperpendek tanpa kerjasama admin.
Apa yang bukan farm
- Bukan distributor fee. CPMM dan CLMM mengumpulkan trade fee langsung ke state pool. Farm tidak menyentuh pool fee. Satu-satunya jalur dari pool fee ke pemegang token adalah LP-redemption atau CLMM’s
CollectFee. - Bukan otomatis. LP harus secara eksplisit di-stake untuk mendapatkan reward farm. Pemegang LP yang meninggalkan token mereka di wallet tidak mendapatkan apa pun dari farm.
- Bukan fungible. Setiap akun
UserStaketerikat pada satu pasangan(farm, user). Anda tidak dapat mentransfer stake Anda ke wallet lain tanpa unstaking terlebih dahulu. - Tidak kompatibel dengan posisi CLMM secara langsung. Farm v6 memperkenalkan adapter CLMM, tetapi dalam praktik pool CLMM menggunakan reward stream built-in mereka sendiri (lihat
products/clmm/fees) daripada emisi farm.
Kapan farm adalah alat yang tepat
Gunakan farm ketika Anda ingin:- Memberikan insentif LP untuk salah satu pool CPMM atau AMM v4 proyek Anda dengan token eksternal (token proyek Anda, token mitra, dll.).
- Menjalankan program staking pada mint single-asset (klasik “stake RAY, earn RAY”) tanpa menggunakan kontrak Anda sendiri.
- Menambahkan reward tambahan di atas pool yang sudah ada tanpa memerlukan akses admin ke pool tersebut.
Isi bab
accounts— layout state on-chain lengkap per versi.instructions— setiap farm instruction dengan daftar akun dan pre/postcondition.code-demos— contoh TypeScript untuk staking, harvesting, dan membuat farm baru.
Ke mana selanjutnya
products/clmm/fees— bandingkan emisi farm dengan model reward built-in CLMM.reference/program-addresses— tiga program ID farm.protocol-overview/versions-and-migration— kapan menggunakan setiap versi farm.
- Farm v6 IDL bundled dalam SDK:
raydium-io/raydium-sdk-V2di bawahsrc/raydium/farm/. - Modul
FarmSDK Raydium v2


