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

# رسوم AMM v4

> رسم المتاجرة 0.25%، وتوزيعه بين مزودي السيولة والبروتوكول، وتوليد الأرباح والخسائر من عمليات OpenBook، وكيفية مسح رسوم البروتوكول المستحقة من قبل المسؤول.

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

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

## المستوى المنشور الوحيد

على عكس CPMM و CLMM، لا يحتوي AMM v4 على **حساب `AmmConfig`**. يتم تخزين الرسوم مباشرة في هيكل `AmmInfo.fees` لكل pool، وتكون ثابتة عند إنشاء pool. القيم الافتراضية التي تغطي جميع أحواض AMM v4 النشطة فعليًا:

| حقل السلسلة                                         | القيمة الافتراضية | المعنى                                                                                                            |
| --------------------------------------------------- | ----------------- | ----------------------------------------------------------------------------------------------------------------- |
| `swap_fee_numerator / swap_fee_denominator`         | `25 / 10_000`     | **إجمالي رسم المتاجرة على مبادلات مسار AMM: 0.25% من حجم الإدخال.**                                               |
| `trade_fee_numerator / trade_fee_denominator`       | `25 / 10_000`     | يُستخدم من قبل تكامل OpenBook لحساب تسعير أوامر الحد التي تتضمن الرسوم. بنفس نسبة `swap_fee` وهي 0.25% افتراضيًا. |
| `pnl_numerator / pnl_denominator`                   | `12 / 100`        | **حصة البروتوكول من رسم المبادلة: 12%** — أي `0.25% × 12% = 0.03%` من الحجم. تتراكم في عدادات `need_take_pnl_*`.  |
| `min_separate_numerator / min_separate_denominator` | `5 / 10_000`      | حد الدقة الداخلي المستخدم من قبل منطق تقريب تقسيم الرسم.                                                          |

لاحظ أن `pnl_numerator / pnl_denominator` هي نسبة **من رسم المبادلة**، وليست من حجم المتاجرة — وهي قراءة خاطئة شائعة. حصة LP هي المتمم (`88%` من الرسم = `0.22%` من الحجم) وهي ضمنية؛ لا توجد بسط منفصل لـ "حصة LP".

تم إنشاء عدد قليل من الأحواض المبكرة برقم منفصل؛ تابع دائمًا `AmmInfo.fees` قبل الاستشهاد.

لا توجد **رسم الصندوق** و**لا رسم المنشئ**: هذه اختراعات CPMM/CLMM لم تكن موجودة في نموذج رسم AMM v4 الأصلي.

## كيفية حساب التقسيم

في كل مبادلة، يفرض pool رسم المتاجرة الإجمالية من مبلغ الإدخال، ثم يوزع:

```
gross_fee   = ceil(amount_in * swap_fee_numerator / swap_fee_denominator)        // 0.25% من amount_in
pnl_portion = gross_fee * pnl_numerator / pnl_denominator                        // 12% من gross_fee
lp_portion  = gross_fee − pnl_portion                                            // 88% من gross_fee
```

* يتم ترك `lp_portion` في الخزينة ويساهم في `k` التالي. يحصل مزودو السيولة عليه من خلال استرجاع رموز LP لاحقًا.
* `pnl_portion` يزيد من `AmmInfo.state_data.need_take_pnl_coin` أو `need_take_pnl_pc` حسب الجانب الذي يكون فيه الإدخال.

نفس الحيلة الحفاظ على عدم التغير كما في CPMM: مبلغ PnL يجلس فعليًا في الخزينة لكن يتم طرحه من الاحتياطيات المستخدمة في المنحنى، لذا فإن `TakePnl` ينقل الرموز بدون تغيير السعر.

## PnL من OpenBook (تاريخي)

<Note>
  **لم تعد تتراكم.** تم تعطيل تكامل OpenBook، لذا فإن *تيار PnL الثاني* الموصوف في هذا القسم لم يعد يتم توليده. قد تحمل عدادات `total_pnl_{coin,pc}` على الأحواض الموجودة قيمًا تاريخية، لكن لا يتم إضافة مبالغ جديدة. مسار رسم البروتوكول 0.03% (أعلاه) لم يتأثر ولا يزال نشطًا.
</Note>

تاريخيًا، كان لدى AMM v4 *تيار ثانٍ* يشبه الرسم للإيرادات: عندما تم ملء الأوامر المحدودة الخاصة به على OpenBook، كان يمكن للـ pool أن يكون على جانب المتخذ من الملء والحصول على أو دفع فروق الصانع/المتخذ بالسوق. تم تسوية أحداث PnL هذه في خزائن pool أثناء `MonitorStep` وقام البرنامج بإقرارها إلى `state_data.total_pnl_{coin,pc}` كعدادات معلوماتية.

* عندما تم معايرة شبكة المنشورات بشكل صحيح حول سعر المنحنى، كانت عمليات OpenBook الممتلئة تميل إلى أن تكون **إيجابية برسوم** للـ pool — كان AMM فعليًا يقوم بصنع السوق على OpenBook والحصول على خصومات الصانع.
* عندما توقف OpenBook أو امتلأت قائمة الأحداث، كان يمكن للـ pool أن يجلس على أوامر قديمة تم ملؤها بأسعار غير مواتية، مما ينتج عنه PnL سلبي. كان هذا الاقتران التشغيلي أحد الدوافع للابتعاد عن التصميم الهجين.

كان OpenBook PnL هذا **ليس** نفس رسم البروتوكول 0.03%. أضاف OpenBook PnL احتياطيات pool بشكل مباشر (مما يعود على مزودي السيولة والبروتوكول بما يتناسب مع تقسيم الرسم)، بينما تم وضع علامة على رسم البروتوكول 0.03% بشكل محدد لمسح المسؤول. مع إيقاف جانب OpenBook، فإن تراكم الرسوم الوحيد اليوم هو 0.25% على مبادلات AMM وتقسيمه 22/3.

## التجميع

يستدعي المسؤول (مجموعة Raydium متعددة التوقيع) `WithdrawPnl` / `TakePnl` لمسح `need_take_pnl_*` إلى حسابات "مالك PnL" على مستوى pool المكونة على برنامج `AmmConfig` (config مختلف، ذو نطاق برنامج — وليس AmmConfig على غرار CPMM لكل pool). المسح:

1. يسوي أي ملآت OpenBook معلقة أولاً. *(بدون عملية الآن بعد إيقاف OpenBook.)*
2. يحول `need_take_pnl_coin` / `need_take_pnl_pc` من خزائن pool إلى وجهة PnL.
3. يصفر العدادات.

العملية لا تحرك المنحنى. يجب ألا يشهد مزودو السيولة أي تغيير في السعر عبر استدعاء `TakePnl`.

## استرجاع رسوم LP

لا توجد تعليمات مخصصة "تجميع رسوم LP". تتراكم رسوم LP في الخزائن وتضخم `k` بمرور الوقت؛ يدرك مزودو السيولة ذلك من خلال حرق رموز LP عبر `Withdraw`. تنمو قيمة رمز LP بشكل رتيب حيث ينمو `(coin_reserve_effective, pc_reserve_effective)`.

## التصور: أين يذهب 1000 USDC من الحجم

في مبادلة ثقيلة USDC بـ 1000 دولار مقابل pool بمعاملات افتراضية:

```
إجمالي رسم المتاجرة (0.25%):   $2.50
  حصة LP    (0.22%):       $2.20   → تبقى في pool، ترفع k
  حصة PnL  (0.03%):       $0.30   → need_take_pnl_pc، تم مسحها بواسطة TakePnl
الباقي المرسل للمستخدم:   $997.50   (ناقص تأثير السعر المدفوع بالمنحنى)
```

قارن مع CPMM `AmmConfig[0]` (طبقة 0.25%، بدون رسم منشئ): يحصل LP على \$2.10، البروتوكول \$0.30، الصندوق \$0.10. يقدم CPMM خط الصندوق بنحته من ما كان سيكون حصة LP في طبقة AMM v4 المعادلة.

## جدول المقارنة

|                  | AMM v4                           | CPMM `index=0`                                   | CLMM `index=2`             |
| ---------------- | -------------------------------- | ------------------------------------------------ | -------------------------- |
| رسم المتاجرة     | 0.25%                            | 0.25%                                            | 0.25%                      |
| LP               | 0.22%                            | 0.21%                                            | يختلف حسب الانبعاثات       |
| البروتوكول       | 0.03%                            | 0.03%                                            | لكل طبقة                   |
| الصندوق          | غير قابل                         | 0.01%                                            | لكل طبقة                   |
| المنشئ (اختياري) | غير قابل                         | 0 بشكل افتراضي                                   | غير قابل                   |
| حيث تجلس الرسوم  | خزينة pool + need\_take\_pnl\_\* | خزينة pool + protocol\_fees\_\* + fund\_fees\_\* | عام + لكل علامة + لكل موضع |

المصفوفة الكاملة في [`reference/fee-comparison`](/ar/reference/fee-comparison).

## ملاحظات للمدمجين

* **الاستشهاد.** احصل على `AmmInfo` عبر SDK أو `api-v3.raydium.io/pools/info/ids`. **لا** تحسب عرضك الخاص مقابل أرصدة الخزينة الخام — تسحب المبالغ المحجوزة بـ OpenBook واستبعاد PnL كليهما الاحتياطيات الفعلية بعيدًا عما يعرضه `getTokenAccountBalance`.
* **معاملات رسوم قديمة.** من حيث المبدأ، قد يستطيع `SetParams` تغيير `swap_fee_numerator`، لكن في الممارسة العملية لم تغير مجموعة Raydium متعددة التوقيع القيم الافتراضية لأي pool نشط. وعلى أي حال، اقرأ دائمًا من حالة السلسلة بدلاً من حرق الأرقام.
* **لا توجد مكافآت.** لا يدعم AMM v4 انبعاثات مكافآت pool. المزارع البيئية الموروثة (Farm v3 / v5 / v6) هي المكافئ على مستوى الرهان — انظر [`products/farm-staking`](/ar/products/farm-staking).

## أين تذهب بعد ذلك

* [`products/amm-v4/math`](/ar/products/amm-v4/math) — اشتقاق رسم المتاجرة داخل المنحنى.
* [`products/amm-v4/instructions`](/ar/products/amm-v4/instructions) — قوائم الحسابات `WithdrawPnl` / `SetParams`.
* [`reference/fee-comparison`](/ar/reference/fee-comparison) — مصفوفة جنبًا إلى جنب.

المصادر:

* [برنامج Raydium AMM — `raydium-io/raydium-amm`](https://github.com/raydium-io/raydium-amm)
* حقول numerator/denominator لرسوم AMM v4 على السلسلة (تم التحقق مقابل حسابات `AmmInfo` على mainnet).
