> ## 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.

# 農場／質押概述

> Raydium 農場計劃如何向質押者分配獎勵代幣 — 按份額記帳方法、農場版本世代（v3、v5、v6），以及農場與其所在 AMM／CLMM 流動性池的關係與區別。

<Info>
  **本頁內容由 AI 自動翻譯，所有內容以英文版本為準。**

  [查看英文版 →](/products/farm-staking/overview)
</Info>

## 什麼是農場

**農場**是一個獨立的鏈上程式，向質押**質押代幣**的賬戶分配一個或多個**獎勵代幣**。質押代幣幾乎總是由 CPMM、AMM v4 或舊版配對池發行的 LP 代幣，但也支持單資產農場（直接質押 SOL、RAY 或項目代幣），少數長期運行的計劃會使用這類農場。

主要特性：

* **基於發放，而非基於費用。** 與 CLMM 的內置獎勵流不同，農場獎勵與交換量或池活動無關。農場的預算由創建者提前存入，並以恆定的每秒速率發放，直到耗盡。
* **獨立於流動性池。** 流動性池不知道農場存在。在錢包之間轉移 LP 不會通知農場；用戶必須先主動從農場**提取**。同樣，從池中**提取**不會從農場中提取。
* **按用戶、按獎勵帳本。** 每個質押者在每個農場上都有一個 `UserStake`（或「帳本」）賬戶，追蹤其質押金額以及農場每個獎勵流的獎勵-份額計數器快照。
* **多獎勵。** 農場 v5 最多支持 2 個獎勵；v6 最多支持 5 個。每個獎勵都有自己的金庫、每秒速率、開始時間和結束時間。

## 三個現行版本

Raydium 已推出三個農場程式版本。全部處於活躍狀態，每個都有自己的 PDA 方案和指令集。集成商應將它們視為三個不同的程式，共享一個概念模型。

| 版本     | 程式 ID 位置                                                                 | 最多獎勵 | 主要差異                                                |
| ------ | ------------------------------------------------------------------------ | ---- | --------------------------------------------------- |
| **v3** | 參見 [`reference/program-addresses`](/zh-Hant/reference/program-addresses) | 1    | 最早的架構。最舊的農場（RAY-USDC、SOL-USDC）仍通過此版本運行。             |
| **v5** | 參見 [`reference/program-addresses`](/zh-Hant/reference/program-addresses) | 2    | 添加了第二個獎勵槽位和 `AddReward` 風格的頂部補充。                    |
| **v6** | 參見 [`reference/program-addresses`](/zh-Hant/reference/program-addresses) | 5    | 現行版本。槽位擴展、更清潔的管理、支持通過 v6 特定適配器進行 CLMM 頭寸農場化（實踐中罕見）。 |

SDK 將 `raydium.farm` 公開為單一外觀 — 版本從農場賬戶的所有者推斷。在構建鏈上集成時，你必須手動分派。

## 獎勵-份額記帳

農場計劃使用在 DeFi 收益合約中常見的標準「主廚」模式：

```
reward_per_share := total_rewards_distributed_by_stream / total_staked
pending(user)    := user.staked × (reward_per_share − user.reward_debt)
```

* **`reward_per_share`** 在農場賬戶上存儲為定點計數器（v5+ 中為 Q64.64，v3 中為 Q56.8）。它只會增加。
* **`user.reward_debt`** 是用戶上次交互時 `reward_per_share` 的快照。這不是用戶欠下的債務；這是用於計算未來應計的偏移量。
* 在 `Deposit` 和 `Withdraw` 上，農場首先結算待處理獎勵（記入 `user.pending_reward` 或直接發送到用戶的 ATA，取決於版本），然後將 `user.reward_debt` 更新為當前計數器。
* 在 `Harvest` 上，農場支出 `pending_reward` 並再次快照 `reward_debt`。

每秒發放速率通過延遲更新進入記帳：

```
elapsed        := min(now, reward.end_time) − reward.last_update_time
new_emissions  := reward.per_second × elapsed
if total_staked > 0:
    reward_per_share += new_emissions / total_staked
reward.last_update_time := now
```

延遲：沒有指令每秒發出。計數器在每次任何人觸及農場時刷新（`Deposit`、`Withdraw`、`Harvest`、管理更新）。沒有活動的農場會累積一個不斷增長的間隙，該間隙在下一次交互時關閉。

## 質押代幣 vs 獎勵代幣

**質押代幣由託管保管，不是燃燒。** 當用戶質押 100 LP 時，農場將 100 LP 從用戶的 ATA 移動到農場的質押金庫。在 `Withdraw` 時，農場將 100 LP 移回。農場從不調用池。

**獎勵代幣從由創建者預先注資的金庫中支出。** 當創建者建立農場時，他們將完整的獎勵預算（例如 1,000,000 RAY + 500,000 USDC）存入兩個獎勵金庫。農場計劃不鑄造新代幣；它只是在流的期間內分配金庫中的內容。如果金庫在 `end_time` 前耗盡，發放停止。

## 發放時間表

每個獎勵流有三個時間參數：

* **`start_time`** — 發放開始的 UNIX 時間戳。在此之前，沒有應計。
* **`end_time`** — 發放停止的時間戳。在此之後，`reward_per_share` 不再從此流增加。
* **`per_second`** — 在 `start_time ≤ now < end_time` 時的發放速率。

可以通過 v5／v6 上的 `AddReward`／`SetRewards` 擴展獎勵（將 `end_time` 向前推進，頂部補充金庫）。可以通過 `RestartRewards` 在 `end_time` 後重新啟動。在沒有管理員協助的情況下不能縮短。

## 農場不是什麼

* **不是費用分配器。** CPMM 和 CLMM 將交易費直接收集到池狀態中。農場不觸及池費。從池費到代幣持有者的唯一路徑是 LP 贖回或 CLMM 的 `CollectFee`。
* **不是自動的。** LP 必須明確質押以賺取農場獎勵。將代幣留在錢包中的 LP 持有者從農場中獲不到任何收益。
* **不可互換。** 每個 `UserStake` 賬戶與一個 `(farm, user)` 對綁定。你不能在不解除質押的情況下將你的質押轉移到另一個錢包。
* **不直接與 CLMM 頭寸兼容。** 農場 v6 引入了 CLMM 適配器，但在實踐中 CLMM 池使用它們自己的內置獎勵流（參見 [`products/clmm/fees`](/zh-Hant/products/clmm/fees)），而不是農場發放。

## 何時使用農場

當你想要以下情況時使用農場：

* 用外部代幣（你的項目代幣、合作夥伴的代幣等）激勵你項目 CPMM 或 AMM v4 池之一的 LP。
* 在單資產代幣上運行質押計劃（經典的「質押 RAY，賺取 RAY」），而無需部署自己的合約。
* 在現有池之上分層額外獎勵，無需對該池的管理員訪問權限。

當你的池是 CLMM 時，改為使用 CLMM 的內置獎勵流。它們具有相同的經濟學，但參與頭寸的費用增長內部會計（範圍內頭寸按比例賺取，範圍外頭寸不賺取），並且不需要用戶移動其頭寸 NFT。

## 章節內容

* [`accounts`](/zh-Hant/products/farm-staking/accounts) — 每個版本的完整鏈上狀態佈局。
* [`instructions`](/zh-Hant/products/farm-staking/instructions) — 每個農場指令及其賬戶列表和前置／後置條件。
* [`code-demos`](/zh-Hant/products/farm-staking/code-demos) — 用於質押、收割和創建新農場的 TypeScript 示例。

## 接下來去哪裡

* [`products/clmm/fees`](/zh-Hant/products/clmm/fees) — 比較農場發放與 CLMM 的內置獎勵模型。
* [`reference/program-addresses`](/zh-Hant/reference/program-addresses) — 三個農場計劃 ID。
* [`protocol-overview/versions-and-migration`](/zh-Hant/protocol-overview/versions-and-migration) — 何時使用每個農場版本。

來源：

* Farm v6 IDL 捆綁在 SDK 中：[`raydium-io/raydium-sdk-V2`](https://github.com/raydium-io/raydium-sdk-V2)，在 `src/raydium/farm/` 下。
* [Raydium SDK v2 `Farm` 模組](https://github.com/raydium-io/raydium-sdk-V2)
