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

# LaunchLab bonding curve

> LaunchLab'ın desteklediği eğri formülleri, kapalı form alış ve satış maliyeti, graduation eşiği türetimi ve ilk alıştan graduation'a kadar bir başlatmanın tamamlanmış sayısal açıklaması.

<Info>
  **Bu sayfa yapay zekâ tarafından otomatik olarak çevrilmiştir. İngilizce sürüm esas alınır.**

  [İngilizce sürümü görüntüle →](/products/launchlab/bonding-curve)
</Info>

<Info>
  LaunchLab, `Initialize` sırasında seçilen üç eğri şeklini destekler: **constant-product** (en yaygın olanı, standart `x · y = k` eğrisinin sanal-rezerv biçimi), **linear-price** ve **fixed-price**. Graduation eşiği formülü üç şeklin tümü arasında paylaşılır. Bu sayfa constant-product matematiğini ayrıntılı olarak açıklar; lineer ve sabit biçimler sonunda özetlenmiştir.
</Info>

## `LaunchState` üzerinde saklanan parametreler

| Alan                                                         | Anlamı                                                                                                                                                 |
| ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `curve_type`                                                 | `0` = constant-product (sanal-rezervler), `1` = fixed-price, `2` = linear-price.                                                                       |
| `base_supply_max`                                            | Eğrinin hiç bir zaman mint edebileceği toplam base token.                                                                                              |
| `base_supply_graduation`                                     | Graduation'a ulaşmak için satılması gereken base token. Genellikle `0.8 × base_supply_max`; kalan %20 graduation sonrası havuzun başlangıç LP'si olur. |
| `quote_reserve_target`                                       | Graduation'u tetikleyen quote miktarı. `Initialize` sırasında eğri parametreleri + `base_supply_graduation` ile türetilir.                             |
| `virtual_base` / `virtual_quote`                             | Constant-product eğrisi için sanal-rezerv tohumları.                                                                                                   |
| `migrate_type`                                               | Graduation hedefini seçer: AMM v4 vs CPMM. Bkz. [`instructions`](/tr/products/launchlab/instructions).                                                 |
| `fees.buy_numerator / buy_denominator`                       | Alış tarafı ücreti, örneğin `100 / 10_000 = %1.00`.                                                                                                    |
| `fees.sell_numerator / sell_denominator`                     | Satış tarafı ücreti. Genellikle alış ile aynı.                                                                                                         |
| `fees.protocol_share`, `fees.creator_share`, `fees.lp_share` | Yukarıdakilerin bölünmesi, payda ile toplamda eşit.                                                                                                    |

Rust struct'taki alan adları, [`accounts`](/tr/products/launchlab/accounts) sayfasında açıklanan `PoolState` alanlarıyla eşleşir; yukarıdaki birimler kavramsal olup, uygulama detaylarına göre ayarlanır.

## Sanal rezervli Constant-product eğrisi (`curve_type = 0`)

Varsayılan ve en çok kullanılan eğri. Pump tarzı başlatmalar bu biçimi kullanır. Eğri, baştan itibaren **sanal quote rezerv** `V_q` ve **sanal base rezerv** `V_b` olduğunu iddia eder (`PoolState` üzerinde `virtual_quote` ve `virtual_base` olarak saklanır), böylece etkili havuz bu rezervleri içeren bir CPMM gibi görünür. Alışlar `x · y = k` matematiğini takip eder:

```
(V_q + real_quote_in_after_fee) × (V_b + real_base_remaining − base_out) = V_q × V_b
```

`base_out` için çözüldüğünde:

```
base_out = (V_b + real_base_remaining) × quote_in_after_fee / (V_q + real_quote_in_after_fee)
```

Base satıldığında `s` etkin fiyat:

```
price(s) = (V_q + real_quote_in(s)) / (V_b + real_base_remaining(s))
```

LaunchLab'ın graduation öncesinde uyguladığı aynı `x · y = k` değişmezi, daha sonra graduation sonrası tam olarak CPMM (veya AMM v4) eğrisidir, bu nedenle graduation geçişi mekanik olarak sorunsuzdur: `base_sold = base_supply_graduation` konumundaki marjinal fiyat, graduation sonrası havuzun `(quote_vault, base_vault_remaining)` rezervleri ile açıldığı fiyata eşittir.

## Fixed-price eğrisi (`curve_type = 1`)

Düz fiyatlandırma eğrisi. Her alış/satış sabit bir fiyatta gerçekleşir, `Initialize` sırasında yapılandırılabilir:

```
price(s) = virtual_quote / virtual_base    (tüm s için sabit)
```

Takımın tüm katılımcılar için ne zaman aldıklarına bakılmaksızın aynı fiyatlandırma istediği adil başlatmalar için faydalı. Graduation, `base_supply_graduation` satıldığında tetiklenir (lineer maliyet ilişkisi `quote_reserve_target` türetimini doğrudan yapar).

## Linear-price eğrisi (`curve_type = 2`)

Fiyat `base_sold` ile lineer olarak artar:

```
price(s) = a · s     (a = eğim, virtual_base / virtual_quote'tan türetilir)
```

Entegre maliyet:

```
cost(s_0, s_1) = a · (s_1² − s_0²) / 2
```

`base_sold` içinde karesel — erken alıcılar neredeyse sıfır öderler, geç alıcılar önemli ölçüde daha fazla öderler, marjinal fiyat sabit bir eğimle her zaman yükselir. Zincir üstü uygulama `curve/linear_price.rs` dosyasında yer alır.

## Eğri-şekli karşılaştırması

```
price
  │   linear (dik kuyruk)               linear (curve_type = 2)
  │       ╱
  │      ╱
  │     ╱            const-product (curve_type = 0)
  │    ╱            ╱
  │   ╱           ╱
  │  ╱         ╱
  │ ╱       ╱
  │╱_____╱_______________________  fixed-price (curve_type = 1)
  └──────────────────────────────── base_sold
  0                  S_grad         S_max
```

## Graduation eşiği

`quote_reserve_target`, `Initialize` sırasında `base_sold` değerini 0 ile `base_supply_graduation` arasında sürüdürmek için gereken quote olarak hesaplanır:

```
quote_reserve_target = cost(0, base_supply_graduation) × (1 + buy_fee_rate)
                                                         ^^^^^^^^^^^^^^^^^
                                                         yaklaşık; kesin
                                                         biçim Buy sırasında
                                                         kullanılan ücret
                                                         yuvarlama ile eşleşir.
```

Bir başlatma, `quote_vault.balance ≥ quote_reserve_target` olur olmaz graduation yapar. Alışlar ayrık boyutlarda geldiği için, graduation sırasındaki gerçek bakiye hedefi hafifçe aşabilir — fazlalık ortaya çıkan CPMM havuzunda ek quote tarafı likidite olur.

## Çalışılmış örnek — karesel bir başlatma

Parametreler:

* `base_supply_max        = 1_000_000_000` (1 milyar base token, 6 ondalık)
* `base_supply_graduation = 800_000_000`   (%80 satıldı graduation tetikler)
* `k                      = 40` (fiyat ölçeği)
* Ücretler: %1 alış, %1 satış, bölüm `lp:creator:protocol = 60:20:20`.

**İlk fiyat** (`s = 0`): `0` (saf karesel sıfırdan başlar).

**%50 satıldığında fiyat** (`s = 500_000_000`):

```
price = 40 × (500e6 / 1e9)² = 40 × 0.25 = 10  (base başına quote, 6 ondalık)
```

**Graduation fiyatı** (`s = 800_000_000`):

```
price = 40 × (800e6 / 1e9)² = 40 × 0.64 = 25.6
```

**Graduation'a ulaşmak için gereken quote** (entegre maliyet):

```
cost(0, 800_000_000) = (40 / (3 × 1e18)) × ((800e6)³ − 0)
                     = (40 / 3e18) × 5.12e26
                     ≈ 6.827e9
```

Bu nedenle ≈ 6.827 quote-yerel birim (yapılandırılan herhangi 6-ondalık quote mint'te, örneğin quote USDC ise \~6,827 USDC).

**Üzerine uygulanan ücret**:

```
quote_reserve_target ≈ 6.827e9 × 1.01 ≈ 6.895e9  (6,895 USDC)
```

**İlk alış** `10 USDC` kadar:

* Sanal durum: `s = 0`, `quote_vault = 0`.
* Ücreti çıkar: `quote_after_fee = 10 × 0.99 = 9.9`.
* `(40 / (3e18)) × s³ = 9.9` çöz ⇒ `s ≈ 6.22e6` base token alındı.
* %1 ücret (`0.1 USDC`) bölümü: lp `0.06`, creator `0.02`, protocol `0.02`. Lp payı `quote_vault`'ta kalır; diğer ikisi ilgili birikme sayaçlarına yönlendirilir.

**%75 satıldığında alış** (graduation yaklaşırken):

Aynı 10 USDC, eğri dik olduğu için çok daha az base alır. `s₀ = 750e6` konumunda Newton çözümü `quote_in_after_fee = 9.9` ile kabaca `∆s ≈ 0.4e6` verir — ilk alışa kıyasla USDC başına base'de \~15 kez azalma.

## Eğri fazı sırasında ücret mekaniği

Her `Buy` sırasında:

```
gross_fee      = ceil(quote_in_gross × buy_numerator / buy_denominator)
lp_share       = gross_fee × fees.lp_share / fees.total_share
protocol_share = gross_fee × fees.protocol_share / fees.total_share
creator_share  = gross_fee × fees.creator_share / fees.total_share
```

* `lp_share`, `quote_vault`'ta kalır. Bu etkili eğriyi daha sıkı yapar (aynı base arzı karşı daha fazla quote rezerv).
* `protocol_share`, `LaunchState.state_data.protocol_fees_quote` ile artar.
* `creator_share`, `LaunchState.state_data.creator_fees_quote` ile artar.

`Sell` sırasında aynı bölüm uygulanır ancak ücret giden `quote_out`'tan alınır.

Her iki sayaç da `CollectFees` aracılığıyla taranır (yönetici veya yaratıcı, her biri kendi sayacına).

## Hassasiyet

* Base tarafı miktarlar: `u64`.
* Quote tarafı miktarlar: `u64`.
* Ara küpler / ürünler: `u128`.
* "Tam quote alış" ve "tam quote satış" için Newton çözümleri, yapılandırılabilir maksimum yineleme sayısı (varsayılan 10) ile `u128` sabit-noktalı olarak yinelenir. Başarısızlık modu `NotConverged` — graduation yakındaki nadir durumlar dışında nadir.

## CPMM'ye geçiş

`Graduate` çalıştığında:

```
cpmm_quote_reserve = quote_vault − swept_protocol_fees − swept_creator_fees
cpmm_base_reserve  = base_vault                       // yani base_supply_max − base_sold
cpmm_initial_price = cpmm_quote_reserve / cpmm_base_reserve
```

Karesel eğri için, `cpmm_initial_price` mekanik olarak `price(base_sold)` olur (geçiş anında marjinal eğri fiyatıdır). CPMM havuzu tam o fiyatla açılır, bu nedenle eğri UI'dan CPMM UI'na geçen bir gözlemci hiçbir sıçrama görmez.

## Sonraki adım

* [`products/launchlab/accounts`](/tr/products/launchlab/accounts) — bu parametreleri saklayan `LaunchState` alanları.
* [`products/launchlab/instructions`](/tr/products/launchlab/instructions) — `Buy`, `Sell`, `Graduate` hesap listeleri.
* [`algorithms/constant-product`](/tr/algorithms/constant-product) — graduation sonrası havuzun kullandığı CPMM matematiği.

Kaynaklar:

* [Raydium SDK v2 `LaunchLab` modülü](https://github.com/raydium-io/raydium-sdk-V2)
* Raydium LaunchLab program kaynağı
