> ## 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>
  **هذه الصفحة مُترجَمة آليًا بواسطة الذكاء الاصطناعي. النسخة الإنجليزية هي المرجع المعتمد.**

  [عرض النسخة الإنجليزية →](/products/farm-staking/overview)
</Info>

## ما هي المزرعة

**المزرعة** هي برنامج منفصل على السلسلة يوزع واحد أو أكثر من **رموز المكافآت** على الحسابات التي تقوم برهن **رمز الرهن**. رمز الرهن هو دائماً تقريباً رمز LP صادر عن CPMM أو AMM v4 أو حمام زوج قديم، لكن المزارع ذات الأصول الفردية (رهن SOL أو RAY أو رمز مشروع مباشرة) مدعومة وتُستخدم في عدد صغير من البرامج طويلة المدى.

الخصائص الرئيسية:

* **قائم على الإصدار، وليس على الرسوم.** على عكس تدفقات المكافآت المدمجة في CLMM، فإن مكافآت المزرعة لا تُرتبط بحجم المبادلات أو نشاط الحمام. يودع منشئ المزرعة الميزانية مقدماً وتُصدرها بمعدل ثابت في الثانية حتى تنتهي.
* **مستقلة عن الحمام.** الحمام لا يعرف أن المزرعة موجودة. نقل LP بين المحافظ لا يخطر المزرعة؛ يجب على المستخدم أن يقوم بسحب نشط من المزرعة أولاً. وبالمثل، السحب من الحمام لا يسحب من المزرعة.
* **دفتر أحوال لكل مستخدم، لكل مكافأة.** كل مراهن لديه حساب `UserStake` (أو "دفتر أحوال") لكل مزرعة يتتبع مبلغ رهنهم واللقطة الخاصة بهم لعداد المكافأة لكل حصة لكل من تدفقات مكافآت المزرعة.
* **مكافآت متعددة.** المزرعة v5 تدعم ما يصل إلى مكافأتين؛ v6 تدعم ما يصل إلى 5. كل مكافأة لها خزانة خاصة بها ومعدل لكل ثانية ووقت بدء ووقت نهاية.

## الإصدارات الثلاثة النشطة

أطلقت Raydium ثلاثة إصدارات من برنامج المزرعة. جميعها نشطة، وكل واحدة لها نظام PDA وقائمة تعليمات خاصة بها. يجب على المدمجين معاملتها كثلاثة برامج منفصلة تشترك في نموذج مفاهيمي.

| الإصدار | موقع معرّف البرنامج                                                   | الحد الأقصى للمكافآت | الاختلافات البارزة                                                                                                |
| ------- | --------------------------------------------------------------------- | -------------------- | ----------------------------------------------------------------------------------------------------------------- |
| **v3**  | راجع [`reference/program-addresses`](/ar/reference/program-addresses) | 1                    | أقدم مخطط. المزارع الأقدم (RAY-USDC، SOL-USDC) لا تزال تعمل من خلاله.                                             |
| **v5**  | راجع [`reference/program-addresses`](/ar/reference/program-addresses) | 2                    | أضافت فتحة المكافأة الثانية وعمليات إعادة الملء على غرار `AddReward`.                                             |
| **v6**  | راجع [`reference/program-addresses`](/ar/reference/program-addresses) | 5                    | الإصدار الحالي. فتحات موسّعة، إدارة أنظف، يدعم farming لمواقع CLMM عبر محول خاص بـ v6 (نادر في الممارسة العملية). |

يعرض SDK `raydium.farm` كواجهة موحدة — يتم استنتاج الإصدار من مالك حساب المزرعة. عند بناء تكاملات على السلسلة يجب عليك الإرسال يدويًا.

## محاسبة المكافأة لكل حصة

يستخدم برنامج المزرعة نمط "master-chef" القياسي المرئي في جميع عقود العائد في DeFi:

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

* **`reward_per_share`** يتم تخزينها في حساب المزرعة كعداد نقطة ثابتة (Q64.64 في v5+، Q56.8 في v3). تنمو فقط.
* **`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`، تحديث إداري). المزارع التي لا تملك نشاطاً تراكم فجوة متزايدة يتم إغلاقها في التفاعل التالي.

## رمز الرهن مقابل رمز المكافأة

**رمز الرهن يُحتفظ به في ضمان، وليس محروق.** عندما يرهن مستخدم 100 LP، تنقل المزرعة 100 LP من ATA المستخدم إلى خزان رهن المزرعة. في `Withdraw`، تنقل المزرعة 100 LP مرة أخرى. المزرعة لا تستدعي أبداً الحمام.

**يتم دفع رموز المكافآت من الخزانات الممولة مسبقاً من قبل المنشئ.** عندما ينشئ المنشئ مزرعة، يودع الميزانية الكاملة للمكافآت (على سبيل المثال، 1000000 RAY + 500000 USDC) في خزاني المكافآت. برنامج المزرعة لا يسك رموز جديدة؛ فهو ببساطة يوزع ما هو في الخزان على مدى مدة التدفق. إذا تم استنزاف الخزان قبل `end_time`، تتوقف الانبعاثات.

## جداول الانبعاث

لكل تدفق مكافآت ثلاث معاملات زمنية:

* **`start_time`** — الطابع الزمني UNIX الذي تبدأ الانبعاثات. قبل هذا، لا تراكم.
* **`end_time`** — الطابع الزمني الذي تتوقف الانبعاثات. بعد هذا، `reward_per_share` لم تعد تنمو من هذا التدفق.
* **`per_second`** — معدل الانبعاث بينما `start_time ≤ now < end_time`.

يمكن توسيع المكافأة (دفع `end_time` للأمام، إعادة ملء الخزان) عبر `AddReward` / `SetRewards` على v5 / v6. يمكن إعادة تشغيلها بعد `end_time` عبر `RestartRewards`. لا يمكن تقصيرها بدون تعاون إداري.

## ما لا تكونه المزارع

* **ليست موزع رسوم.** CPMM و CLMM يجمعان رسوم التداول مباشرة في حالة الحمام. المزارع لا تلمس رسوم الحمام. المسار الوحيد من رسوم الحمام إلى حامل الرمز هو استرجاع LP أو `CollectFee` في CLMM.
* **ليست تلقائية.** يجب رهن LP بشكل صريح لكسب مكافآت المزرعة. حاملو LP الذين يتركون الرموز في محفظتهم لا يكسبون شيئاً من المزرعة.
* **ليست قابلة للاستبدال.** كل حساب `UserStake` مرتبط بزوج واحد من `(farm, user)`. لا يمكنك نقل رهنك إلى محفظة أخرى دون إلغاء الرهن أولاً.
* **لا تتوافق مع مواقع CLMM مباشرة.** قدمت المزرعة v6 محول CLMM، لكن في الممارسة العملية تستخدم حمامات CLMM تدفقات المكافآت المدمجة الخاصة بها (راجع [`products/clmm/fees`](/ar/products/clmm/fees)) بدلاً من انبعاثات المزرعة.

## عندما تكون المزارع الأداة الصحيحة

استخدم مزرعة عندما تريد:

* تحفيز LP لأحد حمامات CPMM أو AMM v4 في مشروعك برمز خارجي (رمز مشروعك، رمز شريك، إلخ).
* تشغيل برنامج رهن على رمز أصل فردي (الكلاسيكية "رهن RAY، كسب RAY") دون نشر عقدك الخاص.
* إضافة مكافآت إضافية فوق حمام موجود دون الحاجة إلى وصول إداري لهذا الحمام.

استخدم تدفقات المكافآت المدمجة في CLMM بدلاً من ذلك عندما يكون حمامك CLMM. لديهم اقتصاديات متطابقة لكنهم يشاركون في محاسبة نمو الرسوم داخل المركز (المراكز داخل النطاق تكسب موزونة، المراكز خارج النطاق لا تكسب) ولا تتطلب من المستخدمين نقل NFT موقعهم.

## محتويات الفصل

* [`accounts`](/ar/products/farm-staking/accounts) — تخطيط حالة على السلسلة الكامل لكل إصدار.
* [`instructions`](/ar/products/farm-staking/instructions) — كل تعليمة مزرعة مع قائمة حسابها والشروط المسبقة واللاحقة.
* [`code-demos`](/ar/products/farm-staking/code-demos) — أمثلة TypeScript للرهن والحصاد وإنشاء مزرعة جديدة.

## الخطوات التالية

* [`products/clmm/fees`](/ar/products/clmm/fees) — قارن انبعاثات المزرعة بنموذج المكافآت المدمج في CLMM.
* [`reference/program-addresses`](/ar/reference/program-addresses) — معرّفات برنامج المزرعة الثلاثة.
* [`protocol-overview/versions-and-migration`](/ar/protocol-overview/versions-and-migration) — متى تستخدم كل إصدار مزرعة.

المصادر:

* IDL المزرعة v6 مضمّن في SDK: [`raydium-io/raydium-sdk-V2`](https://github.com/raydium-io/raydium-sdk-V2) تحت `src/raydium/farm/`.
* [وحدة `Farm` في SDK v2 الخاصة بـ Raydium](https://github.com/raydium-io/raydium-sdk-V2)
