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

# منحنيات الربط

> الرياضيات خلف منحنيات إصدار الرموز — المتغيرات التربيعية والخطية و CPMM ذات الاحتياطيات الافتراضية — اشتقاقات التكلفة والعائدات والسعر الفوري، وحساب حد التخريج المستخدم بواسطة LaunchLab.

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

  [عرض النسخة الإنجليزية →](/algorithms/bonding-curves)
</Info>

<Info>
  تشتق هذه الصفحة رياضيات منحنى الربط العامة. لتطبيق LaunchLab المحدد، اطّلع على [`products/launchlab/bonding-curve`](/ar/products/launchlab/bonding-curve). تُعطى الاشتقاقات بصيغة مستمرة؛ يُطبّق الكود الموجود على السلسلة التماثلية المنفصلة بحسابات النقاط الثابتة.
</Info>

## ما هو منحنى الربط

**منحنى الربط** هو دالة سعر حتمية `p(s)` تربط سعر الرمز بكمية الرموز المتداولة حاليًا (`s` تعني "العرض المباع"). يشتري المشترون بإرسال الضمان للعقد؛ يُصدر العقد وحدات رمز جديدة بالسعر الحدي الذي يملي عليه المنحنى. يرجع البائعون وحدات الرمز ويتلقون المبلغ المستردّ المتكامل.

خاصيتان رئيسيتان مقارنة بتجمع CPMM:

* **لا توجد حاجة للطرف الآخر.** العقد المُصدر هو صانع السوق؛ تُوجد السيولة بالمرسوم.
* **سعر رتيب.** يرتفع السعر مع كل شراء صافي وينخفض مع كل بيع صافي.

منحنيات الربط هي آلية الإطلاق المعيارية عندما لا يريد الكيان المُصدر قبل بذر تجمع AMM بالضمان.

## صيغ التسعير العامة

لأي دالة سعر مستمرة `p(s)`:

**السعر الفوري** عند العرض `s`:

```
p(s) = صيغة المنحنى
```

**التكلفة للشراء** من `s_0` إلى `s_1` (حيث `s_1 > s_0`):

```
cost(s_0, s_1) = ∫_{s_0}^{s_1} p(s) ds = P(s_1) − P(s_0)
```

حيث `P(s) = ∫ p(s) ds` هو مشتق المنحنى العكسي. هندسيًا، `cost` هي المساحة تحت `p` بين `s_0` و `s_1`.

**العائدات من البيع** من `s_1` إلى `s_0`:

```
proceeds(s_1, s_0) = cost(s_0, s_1)
```

(التناظر: الشراء والبيع عبر نفس الفترة يتبادلان نفس الضمان — بصرف النظر عن الرسوم.)

**السعر المتوسط** للشراء:

```
avg = cost(s_0, s_1) / (s_1 − s_0)
```

## عائلات المنحنيات الشائعة

### الخطي

```
p(s) = a + b · s
```

```
P(s)            = a·s + (b/2)·s²
cost(s_0, s_1)  = a·(s_1 − s_0) + (b/2)·(s_1² − s_0²)
```

يرتفع السعر بشكل متناسب مع العرض. يُستخدم للإطلاقات "المستقرة" حيث يريد المُصدر علامة تصعيد معقولة يمكن التنبؤ بها طوال العمر.

### التربيعي

```
p(s) = k · s²                      // أو  k · (s / S_max)² بصيغة معيارية
```

```
P(s)            = (k / 3) · s³
cost(s_0, s_1)  = (k / 3) · (s_1³ − s_0³)
```

يرتفع السعر بشكل تربيعي. يحصل المشترون الأوائل على سعر قريب من الصفر (منطقة بدء مسطحة)؛ يدفع المشترون المتأخرون علاوة أكثر حدة. هذا هو نوع المنحنى الذي يفضله LaunchLab (`curve_type = 0`).

### CPMM ذات الاحتياطيات الافتراضية (نمط Pump)

المنحنى هو CPMM قياسي مع احتياطي اقتباس مزعوم أولي `V_q`:

```
effective_y = V_q + collateral_received
effective_x = S_max − s
(effective_x) · (effective_y) = V_q · S_max      // الثابت
```

السعر الفوري:

```
p(s) = effective_y / effective_x
     = V_q · S_max / (S_max − s)² · ... (قابل للاشتقاق عبر التفاضل الضمني)
```

التكلفة للانتقال من `s_0` إلى `s_1`:

```
cost(s_0, s_1) = V_q · S_max / (S_max − s_1) − V_q · S_max / (S_max − s_0)
              = V_q · (s_1 − s_0) · S_max / ((S_max − s_0) · (S_max − s_1))
```

لهذا المتغير الخاصية الأنيقة بأنه عند التخريج (حيث `s = S_graduate`)، السعر الحدي يساوي سعر الافتتاح لتجمع CPMM اللاحق المزروع باحتياطيات `(S_max − S_graduate, V_q + cost(0, S_graduate))`. الانتقال سلس. يكشف LaunchLab عن هذا كـ `curve_type = 1`.

## التطبيق المنفصل

على السلسلة، كلاهما `s` و `cost` عبارة عن أعداد صحيحة (وحدات أصغر كثافة). يُحسب التكامل المستمر `cost(s_0, s_1)` مباشرة من الشكل المغلق كلما توفر واحد (خطي، تربيعي). للمنحنيات بدون معكوس بشكل مغلق (تربيعي، بمعطى `cost`، ابحث عن `s_1`)، يُستخدم تكرار نيوتن:

```
# حل تربيعي: (k/3)·s_1³ = (k/3)·s_0³ + cost
# ابدأ مع s_guess ≈ cbrt(3·cost/k + s_0³)
for i in 0..MAX_ITER:
    f    = (k/3)·s_guess³ − (k/3)·s_0³ − cost
    f'   = k·s_guess²
    step = f / f'
    s_guess -= step
    if |step| < precision_floor: break
```

يحد LaunchLab التكرارات على \~10 ويرجع مع `NotConverged` إذا كان الباقي لا يزال أعلى من التسامح. في الممارسة العملية، يؤدي هذا إلى الحد الأدنى فقط بالقرب من طرفي النطاق؛ تتقارب عمليات الصرف الإنتاجية في 2–3 تكرارات.

## دمج الرسوم

تُطبق الرسوم فوق تكلفة المنحنى، وليس بداخلها. على الشراء:

```
cost_curve  = cost(base_sold, base_sold + base_out)
fee         = ceil(cost_curve · buy_numerator / buy_denominator)
quote_in    = cost_curve + fee
```

على البيع:

```
proceeds_curve = cost(base_sold − base_in, base_sold)
fee            = ceil(proceeds_curve · sell_numerator / sell_denominator)
quote_out      = proceeds_curve − fee
```

يُحتفظ بحصة LP من الرسم في `quote_vault` وبشكل فعال يجعل المنحنى أكثر صرامة للمشترين اللاحقين — يكبر الاحتياطي دون إصدار عرض إضافي. تُتتبع حصص البروتوكول والمنشئ في عدادات منفصلة للكنس اللاحق.

## حد التخريج

يتخرج المنحنى عندما يتلقى ضمانًا كافيًا لبذر تجمع AMM خارجي بسعر يطابق السعر الحالي للمنحنى. لمنحنى تربيعي مع معاملات `(k, S_max, S_graduate)`:

```
quote_to_graduate = cost(0, S_graduate) · (1 + buy_fee_rate)
                  = (k / 3) · S_graduate³ · (1 + f_buy)
```

بمجرد `quote_vault ≥ quote_to_graduate`، تنشئ تعليمة `Graduate` تجمع CPMM مع:

```
cpmm_base_reserve  = S_max − S_graduate        // عرض منحنى غير مباع
cpmm_quote_reserve = quote_vault − accrued_fee_counters
cpmm_initial_price = cpmm_quote_reserve / cpmm_base_reserve
```

لمنحنى الاحتياطيات الافتراضية، بالبناء:

```
cpmm_initial_price == p(S_graduate)           // مساواة دقيقة
```

للمنحنى التربيعي، المساواة تقريبية؛ يُمتص "الفائض" في تقريب `S_graduate` (عادة `0.8 · S_max`) والضمان الزائد من الشراء الأخير الذي يعبر الحد الأدنى.

## الزوال غير الدائم مقابل تجمع CPMM

لإطلاق منحنى ربط نقي **لا يوجد زوال غير دائم** بمعنى Uniswap: لا توجد "جهة أخرى" من السوق للموازنة ضدها. يُصدر المنحنى العرض عند الطلب، وكل "LP" هو العقد نفسه.

بعد التخريج، يتصرف تجمع CPMM الناتج كأي تجمع CPMM آخر — إذا لم يتم حرق LP، فهو يخضع لديناميات خسارة السيولة المعتادة. هذا هو السبب في أن سياسة **الحرق** بعد التخريج هي السائدة في الإطلاقات العامة: فهي تبقي التجمع دائمًا وتزيل أي صدمات سعرية ناجمة عن سحب LP.

## مثال عملي

منحنى: تربيعي، `k = 40`، `S_max = 1e9`، `S_graduate = 0.8 · S_max = 8e8`. رسم الشراء 1%.

### السعر عند `s = 5e8`

```
p(5e8) = 40 · (5e8 / 1e9)² = 40 · 0.25 = 10
```

10 وحدات اقتباس لكل وحدة أساس.

### تكلفة الشراء الأول لـ 1e6 أساس

```
cost(0, 1e6) = (40/3) · (1e6)³
             = (40/3) · 1e18
             ≈ 1.333e19     (أصغر وحدات اقتباس)
```

مع رسم 1%:

```
quote_in = 1.333e19 · 1.01 ≈ 1.347e19
```

### حد التخريج

```
cost(0, 8e8) = (40/3) · (8e8)³
             = (40/3) · 5.12e26
             ≈ 6.827e27
quote_to_graduate ≈ 6.827e27 · 1.01 ≈ 6.895e27
```

### السعر عند التخريج

```
p(8e8) = 40 · 0.64 = 25.6
```

### احتياطيات CPMM بعد التخريج

```
cpmm_base  = 1e9 − 8e8 = 2e8
cpmm_quote ≈ 6.827e27  (ناقص خصومات عداد الرسوم)
cpmm_price ≈ 3.41e19 لكل أساس — الذي يطابق p(8e8) بعد احتساب الوحدات
```

(الوحدات: يجب تتبع العلامات العشرية بعناية؛ المثال توضيحي.)

## مؤشرات

* [`products/launchlab/bonding-curve`](/ar/products/launchlab/bonding-curve) — تطبيق LaunchLab على السلسلة لهذه الصيغ.
* [`products/launchlab/instructions`](/ar/products/launchlab/instructions) — مواصفات مستوى الحساب `Buy`، `Sell`، `Graduate`.
* [`algorithms/constant-product`](/ar/algorithms/constant-product) — ما يفعله CPMM بعد التخريج باحتياطياته.

المصادر:

* مصدر برنامج Raydium LaunchLab (تطبيقات منحنى تربيعية + احتياطيات افتراضية).
* ورقة Bancor البيضاء (منحنيات الربط الخطية، تاريخية).
* منشورات Pump.fun بعد الوفيات العامة (متغير الاحتياطيات الافتراضية).
