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.
Trang này được dịch tự động bằng AI. Phiên bản tiếng Anh là bản chính thức.Xem bản tiếng Anh →
Farm là gì
Farm là một chương trình độc lập trên chuỗi phân phối một hoặc nhiều reward mints cho các tài khoản staking một staking mint. Staking mint hầu hết là token LP được phát hành bởi CPMM, AMM v4, hoặc một legacy pair pool, nhưng farm single-asset (staking SOL, RAY, hoặc token dự án trực tiếp) được hỗ trợ và sử dụng cho một số chương trình lâu dài. Các tính chất chính:- Dựa trên phát hành, không dựa trên phí. Khác với các luồng reward tích hợp trong CLMM, phần thưởng farm không liên kết với khối lượng swap hoặc hoạt động pool. Ngân sách của farm được ký gửi trước bởi người tạo và phát hành với tốc độ không đổi mỗi giây cho đến khi hết.
- Độc lập với pool. Pool không biết farm tồn tại. Di chuyển LP giữa các ví không thông báo cho farm; người dùng phải chủ động
Withdrawtừ farm trước. Tương tự,Withdrawtừ pool không withdraw từ farm. - Sổ cái per-user, per-reward. Mỗi người staking có một tài khoản
UserStake(hoặc “Ledger”) per farm theo dõi số lượng staked của họ và snapshot của bộ đếm reward-per-share cho mỗi luồng reward của farm. - Hỗ trợ nhiều reward. Farm v5 hỗ trợ tối đa 2 reward; v6 hỗ trợ tối đa 5. Mỗi reward có vault, tốc độ per-second, thời gian bắt đầu và thời gian kết thúc riêng.
Ba phiên bản đang hoạt động
Raydium đã phát hành ba phiên bản chương trình farm. Tất cả đều hoạt động, và mỗi phiên bản có sơ đồ PDA và tập lệnh riêng. Những người tích hợp nên coi chúng là ba chương trình riêng biệt chia sẻ một mô hình khái niệm.| Phiên bản | Vị trí Program ID | Max rewards | Khác biệt đáng chú ý |
|---|---|---|---|
| v3 | xem reference/program-addresses | 1 | Schema sớm nhất. Các farm cũ nhất (RAY-USDC, SOL-USDC) vẫn sử dụng phiên bản này. |
| v5 | xem reference/program-addresses | 2 | Thêm khe reward thứ hai và top-up kiểu AddReward. |
| v6 | xem reference/program-addresses | 5 | Phiên bản hiện tại. Khe mở rộng, admin sạch hơn, hỗ trợ farming vị trí CLMM qua adapter v6-specific (hiếm trong thực tế). |
raydium.farm như một facade duy nhất — phiên bản được suy ra từ chủ sở hữu tài khoản farm. Khi xây dựng tích hợp on-chain bạn phải dispatch thủ công.
Accounting reward-per-share
Chương trình farm sử dụng mô hình “master-chef” tiêu chuẩn thường thấy trong các hợp đồng yield trên DeFi:reward_per_shaređược lưu trữ trên tài khoản farm như một bộ đếm fixed-point (Q64.64 trong v5+, Q56.8 trong v3). Nó chỉ phát triển.user.reward_debtlà snapshot củareward_per_sharetại lần tương tác cuối cùng của người dùng. Nó không phải là khoản nợ mà người dùng phải trả; nó là một offset dùng để tính toán các accrual trong tương lai.- Khi
DepositvàWithdraw, farm trước tiên giải quyết pending rewards (ghi cóuser.pending_rewardhoặc gửi trực tiếp đến ATA của người dùng, tùy phiên bản), sau đó cập nhậtuser.reward_debtlên bộ đếm hiện tại. - Khi
Harvest, farm thanh toánpending_rewardvà snapshotreward_debtlại.
Deposit, Withdraw, Harvest, cập nhật admin). Các farm không hoạt động tích lũy một khoảng cách ngày càng tăng được đóng lại khi tương tác tiếp theo.
Staking mint vs reward mint
Staking mint được giữ chứng chỉ, không bị đốt. Khi người dùng stake 100 LP, farm di chuyển 100 LP từ ATA của người dùng vào vault staking của farm. KhiWithdraw, farm di chuyển 100 LP trở lại. Farm không bao giờ gọi pool.
Reward mints được thanh toán từ các vault được tài trợ trước bởi người tạo. Khi người tạo khởi động một farm, họ gửi toàn bộ ngân sách reward (ví dụ: 1.000.000 RAY + 500.000 USDC) vào hai reward vault. Chương trình farm không mint token mới; nó chỉ phân phối những gì có trong vault trong thời gian luồng. Nếu vault bị cạn trước end_time, phát hành sẽ dừng.
Lịch phát hành
Mỗi luồng reward có ba tham số thời gian:start_time— UNIX timestamp khi phát hành bắt đầu. Trước đó, không có accrual.end_time— timestamp khi phát hành dừng. Sau đó,reward_per_sharekhông còn phát triển từ luồng này.per_second— tốc độ phát hành khistart_time ≤ now < end_time.
end_time về phía trước, top up vault) thông qua AddReward / SetRewards trên v5 / v6. Nó có thể bị khởi động lại sau end_time qua RestartRewards. Nó không thể bị rút ngắn mà không cần sự hợp tác của admin.
Farm không phải là gì
- Không phải là bộ phân phối phí. CPMM và CLMM thu phí giao dịch trực tiếp vào pool state. Farm không chạm vào pool fees. Đường duy nhất từ pool fees đến token holder là LP-redemption hoặc CLMM’s
CollectFee. - Không phải là tự động. LP phải được stake rõ ràng để kiếm farm rewards. Những người nắm giữ LP để token ở ví của họ không kiếm được gì từ farm.
- Không có thể trao đổi được. Mỗi tài khoản
UserStakeđược liên kết với một cặp(farm, user). Bạn không thể chuyển stake của mình sang ví khác mà không unstake trước. - Không tương thích trực tiếp với vị trí CLMM. Farm v6 giới thiệu một CLMM adapter, nhưng trong thực tế các pool CLMM sử dụng các luồng reward tích hợp của riêng chúng (xem
products/clmm/fees) thay vì phát hành farm.
Khi nào farm là công cụ phù hợp
Sử dụng farm khi bạn muốn:- Khuyến khích LP cho một trong các pool CPMM hoặc AMM v4 của dự án của bạn bằng một token bên ngoài (token dự án của bạn, token của đối tác, v.v.).
- Chạy một chương trình staking trên một mint single-asset (staking RAY kinh điển, kiếm RAY) mà không triển khai hợp đồng của riêng bạn.
- Thêm các reward bổ sung lên trên một pool hiện có mà không cần quyền admin cho pool đó.
Nội dung chương
accounts— layout on-chain state đầy đủ per phiên bản.instructions— mọi lệnh farm với danh sách tài khoản và điều kiện pre/postcondition.code-demos— ví dụ TypeScript cho staking, harvesting, và tạo một farm mới.
Tiếp theo là gì
products/clmm/fees— so sánh phát hành farm với mô hình reward tích hợp của CLMM.reference/program-addresses— ba farm program IDs.protocol-overview/versions-and-migration— khi nào sử dụng từng phiên bản farm.
- Farm v6 IDL được đóng gói trong SDK:
raydium-io/raydium-sdk-V2dướisrc/raydium/farm/. - Raydium SDK v2
Farmmodule


