> ## 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 talimatları

> Her AMM v4 talimatı, argümanları, beklediği pool ve OpenBook hesapları ile her birinin ön/son koşulları.

<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/amm-v4/instructions)
</Info>

<Info>
  2026-07 program güncellemesi itibarıyla, AMM v4'ün OpenBook / Serum bağımlılığı **kaldırılmıştır**. Eski v1 `SwapBaseIn` / `SwapBaseOut`, `Deposit` ve `Withdraw` talimatları **eski hesap düzenlerini korur** geriye dönük uyumluluk için: market hesapları hala eski konumlarında kabul edilir, ancak **artık doğrulanmaz veya kullanılmaz** (CPI yayınlanmaz). Yeni entegrasyonlar, market hesaplarını tamamen atlayan V2 swap giriş noktalarını kullanmalıdır. Birkaç talimat kaldırılmış ve şimdi geri döner — [changelog girişine](/tr/reference/changelog/2026-07-22-amm-v4-openbook-removal) bakın. Aşağıdaki hesap listeleri Raydium SDK'daki alan adlarını kullanır; temel IDL bazen `serum_*` önekleri kullanır.
</Info>

## Talimat envanteri

| Grup               | Talimat               | etiket | Notlar                                                                                    |
| ------------------ | --------------------- | ------ | ----------------------------------------------------------------------------------------- |
| Pool yaşam döngüsü | `Initialize2`         | 1      | Tek pool oluşturma talimatı (UI yeni poollar için CPMM'ye varsayılan olarak ayarlanır).   |
| Likidite           | `Deposit`             | 3      | Likidite ekle, LP al. Düzen değişmedi (market hesapları yoksayıldı).                      |
| Likidite           | `Withdraw`            | 4      | LP yak, her iki tarafı orantılı olarak al. Düzen değişmedi (market hesapları yoksayıldı). |
| Swap               | `SwapBaseIn`          | 9      | Tam giriş swapi. v1 düzeni değişmedi; market hesapları kabul edildi ancak yoksayıldı.     |
| Swap               | `SwapBaseOut`         | 11     | Tam çıkış swapi. Yukarıdakiyle aynı.                                                      |
| Swap               | `SwapBaseInV2`        | 16     | **Önerilir.** Market hesapları olmadan tam giriş swapi.                                   |
| Swap               | `SwapBaseOutV2`       | 17     | **Önerilir.** Market hesapları olmadan tam çıkış swapi.                                   |
| Bakım              | `SetParams`           | 6      | Yönetici: pool parametrelerini değiştir. **Düzen + `param` değerleri değişti** (kırıcı).  |
| Bakım              | `WithdrawPnl`         | 7      | Birikmiş protokol PnL'yi temizle. **Hesap düzeni değişti** (kırıcı).                      |
| Bakım              | `CreateConfigAccount` | 14     | Yönetici: program seviyesi `AmmConfig` PDA'sını başlat.                                   |
| Bakım              | `UpdateConfigAccount` | 15     | Yönetici: program seviyesi config parametrelerini değiştir.                               |

SDK, yalnızca kullanıcı tarafından erişilen talimatlar için oluşturucuları ortaya çıkarır. Bakım talimatları tipik olarak Raydium keeper tarafından çağrılır.

**Kaldırıldı / artık çağrılamaz** (şimdi `unimplemented!` ile geri döner ve istemci oluşturucuları silindi): `Initialize` (etiket 0, `Initialize2` kullanın), `MonitorStep` (2), `MigrateToOpenBook` (5), `WithdrawSrm` (8), `PreInitialize` (10, `Initialize2` kullanın), `SimulateInfo` (12), `AdminCancelOrders` (13).

## `Initialize2`

Mevcut bir OpenBook market'ine bağlı yeni bir AMM v4 pool'u başlat.

**Argümanlar**

```
nonce:        u8
open_time:    u64
init_pc_amount:   u64
init_coin_amount: u64
```

**Hesaplar** (yazılabilir `W`, imzalayan `S`)

| #  | Ad                           | W | S | Notlar                                                  |
| -- | ---------------------------- | - | - | ------------------------------------------------------- |
| 1  | `token_program`              |   |   | SPL Token.                                              |
| 2  | `system_program`             |   |   |                                                         |
| 3  | `rent`                       |   |   |                                                         |
| 4  | `amm`                        | W |   | `AmmInfo` hesabı (tohumlanmış anahtar).                 |
| 5  | `amm_authority`              |   |   | Program PDA.                                            |
| 6  | `amm_open_orders`            | W |   | OpenBook `OpenOrders` (tohumlanmış).                    |
| 7  | `lp_mint`                    | W |   |                                                         |
| 8  | `coin_mint`                  |   |   |                                                         |
| 9  | `pc_mint`                    |   |   |                                                         |
| 10 | `pool_coin_token_account`    | W |   |                                                         |
| 11 | `pool_pc_token_account`      | W |   |                                                         |
| 12 | `pool_withdraw_queue`        | W |   |                                                         |
| 13 | `pool_target_orders_account` | W |   |                                                         |
| 14 | `pool_lp_token_account`      | W |   | Oluşturucunun LP ATA'sı.                                |
| 15 | `pool_temp_lp_token_account` | W |   | Geçici hesap.                                           |
| 16 | `market_program`             |   |   | OpenBook programı.                                      |
| 17 | `market`                     |   |   | OpenBook market'i.                                      |
| 18 | `user_wallet`                | W | S | Oluşturucu. Kirayı öder ve ilk depozitoyu finanse eder. |
| 19 | `user_token_coin`            | W |   |                                                         |
| 20 | `user_token_pc`              | W |   |                                                         |

**Son koşullar**

* `lp_supply = sqrt(init_coin_amount × init_pc_amount) − INIT_BURN`, burada `INIT_BURN` ≈ 100 LP birimi dolaşımdan çıkarılır.
* OpenBook siparişleri yayınlanmaz (sipariş defteri ızgarası kaldırılmıştır). `market_program` / `market` hala geçirilir ancak yalnızca referans alanları olarak depolanır; `coin_lot_size` / `pc_lot_size` / `min_size` `0` olarak başlatılır.

**Yaygın hatalar** — `InvalidInput` (uyumsuz ondalıklar, sıralanmamış), `NotAllowed`.

## `Deposit`

Likidite ekle.

**Argümanlar**

```
max_coin_amount: u64
max_pc_amount:   u64
base_side:       u64    // 0 = coin tarafında taban, 1 = pc tarafında taban
// (bazı SDK varyantları ayrıca other_amount_min'i kabul eder)
```

**Hesaplar** (özet)

| #  | Ad                        | W | S |
| -- | ------------------------- | - | - |
| 1  | `token_program`           |   |   |
| 2  | `amm`                     | W |   |
| 3  | `amm_authority`           |   |   |
| 4  | `amm_open_orders`         |   |   |
| 5  | `amm_target_orders`       | W |   |
| 6  | `lp_mint`                 | W |   |
| 7  | `pool_coin_token_account` | W |   |
| 8  | `pool_pc_token_account`   | W |   |
| 9  | `market`                  |   |   |
| 10 | `user_coin_token_account` | W |   |
| 11 | `user_pc_token_account`   | W |   |
| 12 | `user_lp_token_account`   | W |   |
| 13 | `user_owner`              |   | S |

**Matematik** — standart orantılı. Pool'un *etkili* rezervlerini (vault'lar + defterde) kullanarak, SDK verilen LP miktarını veren coin/pc çiftini hesaplar ve `max_*` ile karşılaştırır. Her iki taraf da sınırı aşarsa `ExceededSlippage` ile geri döner.

## `Withdraw`

LP yak, her iki tarafı al.

**Argümanlar**

```
amount: u64    // Yakılacak LP
```

**Hesaplar** — `Deposit` gibi yön tersine çevrilmiş; `lp_mint` yakma için yazılabilir, kullanıcı ATA'ları alıcıdır. Hesap düzeni değişmedi (market hesapları hala konumsal olarak geçirilir, yoksayılır). Artık OpenBook'tan yerleştirme adımı yoktur — orantılı matematik vault bakiyelerini doğrudan kullanır.

## `SwapBaseIn`

Tam giriş swapi. Her zaman bir **AMM yolu** swapi'dir (OpenBook eşleştirmesi aracılığıyla yönlendirilmez).

<Note>
  **Yeni kod için V2 varyantlarını kullanın.** AMM v4'ün OpenBook bağımlılığı kaldırıldığından, V1 giriş noktaları (`SwapBaseIn`, `SwapBaseOut`) hala tam 17 hesap listesini (veya isteğe bağlı target-orders hesabı ile 18) bekler, ancak OpenBook/market hesapları şimdi **konumsal olarak kabul edilir ve yoksayılır** — doğrulanmaz ve CPI yayınlanmaz. Yanlış hesap *sayısı* geçirmek hala `WrongAccountsNumber` ile geri döner, ancak market hesabı *içeriği* artık kontrol edilmez. Yeni entegrasyonlar [`SwapBaseInV2` / `SwapBaseOutV2`](#swapbaseinv2-swapbaseoutv2) kullanmalıdır; bunlar çok daha küçük bir hesap listesi alır ve bugün kanonik yürütme yolunu temsil eder. V1 formları burada bütünlük için ve mevcut zincir üstü işlemleri okumak için belgelenmiştir.
</Note>

**Argümanlar**

```
amount_in:            u64
minimum_amount_out:   u64
```

**Hesaplar** (özet)

| #  | Ad                          | W | S |
| -- | --------------------------- | - | - |
| 1  | `token_program`             |   |   |
| 2  | `amm`                       | W |   |
| 3  | `amm_authority`             |   |   |
| 4  | `amm_open_orders`           | W |   |
| 5  | `amm_target_orders`         | W |   |
| 6  | `pool_coin_token_account`   | W |   |
| 7  | `pool_pc_token_account`     | W |   |
| 8  | `market_program`            |   |   |
| 9  | `market`                    | W |   |
| 10 | `market_bids`               | W |   |
| 11 | `market_asks`               | W |   |
| 12 | `market_event_queue`        | W |   |
| 13 | `market_coin_vault`         | W |   |
| 14 | `market_pc_vault`           | W |   |
| 15 | `market_vault_signer`       |   |   |
| 16 | `user_source_token_account` | W |   |
| 17 | `user_dest_token_account`   | W |   |
| 18 | `user_owner`                |   | S |

**Matematik** — [`products/amm-v4/math`](/tr/products/amm-v4/math) bölümüne bakın.

**Ön koşullar**

* `amm.status` swapi'ye izin verir (durum bitmaski'nin bit 0 ayarlanmamış).
* `amm.state_data.pool_open_time <= now`.
* `amount_in > 0`.
* `user_source_token_account` en az `amount_in` tutar.

**Son koşullar**

* Kullanıcı kaynak token'ın `amount_in`'ini kaybeder, hedef token'ın `amount_out ≥ minimum_amount_out`'unu kazanır.
* `need_take_pnl_*` protokol ücreti payı tarafından artırılır.
* Not: `state_data.swap_*_in_amount` / `swap_*_out_amount` analitik sayaçları **artık güncellenmez** — değerleri dondurulur. Hacim analitikleri için işlem günlüklerini kullanın.

**Yaygın hatalar** — `ExceededSlippage`, `InvalidInput`, `InvalidStatus`, `NotAllowed` (coin/pc mint özdeş).

## `SwapBaseOut`

Tam çıkış, `SwapBaseIn`'in tersi. Aynı hesaplar.

**Argümanlar**

```
max_amount_in: u64
amount_out:    u64
```

## `SwapBaseInV2` / `SwapBaseOutV2`

Varyant swap giriş noktaları (etiketler **16** / **17**) **OpenBook hesaplarını tamamen atlar**. Matematik V1 yolu ile özdeştir, ancak hesap listesi sadece AMM tarafı ve kullanıcıya küçülür — **8 hesap ve `amm_open_orders` geçirilmez**:

| # | Ad                          | W | S |
| - | --------------------------- | - | - |
| 1 | `token_program`             |   |   |
| 2 | `amm`                       | W |   |
| 3 | `amm_authority`             |   |   |
| 4 | `pool_coin_token_account`   | W |   |
| 5 | `pool_pc_token_account`     | W |   |
| 6 | `user_source_token_account` | W |   |
| 7 | `user_dest_token_account`   | W |   |
| 8 | `user_owner`                |   | S |

Pool rezervleri şimdi vault bakiyeleridir (bekleyen PnL eksi), bu nedenle fiyat teklifi matematik basittir ve v1 yolu ile özdeştir. Hesaplama tasarrufu yapmak ve (şimdi yoksayılan) market hesaplarını geçmekten kaçınmak için V2 kullanın. Raydium yönlendiricisi AMM v4 aracılığıyla yönlendirirken her zaman V2 formunu kullanır.

Argümanlar V1 formları ile aynıdır (`SwapBaseInV2` için `amount_in / minimum_amount_out`; `SwapBaseOutV2` için `max_amount_in / amount_out`).

## `MonitorStep` ve diğer kaldırılan talimatlar

<Warning>
  **Kaldırıldı — artık çağrılamaz.** 2026-07 güncellemesi itibarıyla, `MonitorStep` (etiket 2) programdan kaldırılmış ve çağrılırsa şimdi **geri döner** (`unimplemented!`). İstemci oluşturucusu da silindi. Aynı durum `MigrateToOpenBook` (5), `WithdrawSrm` (8), `SimulateInfo` (12), `AdminCancelOrders` (13) ve eski `Initialize` (0) / `PreInitialize` (10) pool oluşturma giriş noktaları için de geçerlidir — bunun yerine `Initialize2` kullanın.
</Warning>

Tarihsel olarak, `MonitorStep` pool'un OpenBook etkileşimini çalıştırdı: doldurulmuş siparişleri yerleştirdi (OpenBook CPI aracılığıyla market vault'larından pool vault'larına gelirleri taşıdı), eski siparişleri iptal etti ve `target_orders` ile `amm_open_orders` arasındaki boşluğu kapatmak için yeni siparişler yayınladı. OpenBook bağımlılığı kaldırıldığında, çalıştırılacak bir şey yoktur ve talimat gitti. Hala çağıran herhangi bir keeper veya entegrasyon çağrıyı kaldırmalıdır.

## `WithdrawPnl` / `TakePnl`

Birikmiş protokol ücretlerinin yönetici tarafından temizlenmesi.

**Argümanlar**

* `WithdrawPnl` argüman almaz; `need_take_pnl_*` okur ve tam bu miktarları taşır.

<Warning>
  **Kırıcı değişiklik (yalnızca yönetici).** Hesap listesi 17'den (+1 isteğe bağlı) **10**'a düştü — `amm_open_orders` ve altı market hesabı kaldırıldı — **uyumluluk ayrıştırması olmadan**. Eski düzen yanlış hizalanır (eski #5 `amm_open_orders` idi, şimdi `pool_coin_token_account`) ve `InvalidCoinVault` gibi hatalarla başarısız olur. Yönetici araçları güncellenmeli.
</Warning>

**Hesaplar** (yeni 10 hesap düzeni)

| #  | Ad                        | W | S |                    |
| -- | ------------------------- | - | - | ------------------ |
| 1  | `token_program`           |   |   |                    |
| 2  | `amm`                     | W |   |                    |
| 3  | `amm_config`              |   |   |                    |
| 4  | `amm_authority`           |   |   |                    |
| 5  | `pool_coin_token_account` | W |   |                    |
| 6  | `pool_pc_token_account`   | W |   |                    |
| 7  | `pnl_coin_token_account`  | W |   | Alıcı.             |
| 8  | `pnl_pc_token_account`    | W |   |                    |
| 9  | `pnl_owner`               |   | S | Yönetici multisig. |
| 10 | `amm_target_orders`       | W |   |                    |

**Etki**

* `need_take_pnl_coin`'i `pool_coin_token_account`'tan `pnl_coin_token_account`'a aktarır.
* PC için aynı.
* `need_take_pnl_coin` ve `need_take_pnl_pc`'yi sıfırlar.
* **Mantık değişikliği**: vault bakiyesi birikmiş PnL'yi karşılamaya yetmezse, talimat doğrudan `TakePnlError` döndürür (artık sipariş defteri durumunu manipüle etmez).

Birikmiş PnL zaten değişmezden hariç tutulduğundan rezervlerde değişiklik yoktur.

## `SetParams`

Raydium multisig tarafından çağrılan yönetici param değişiklikleri. Argümanlar bir `param: u8` etiketi + yüküdür.

<Warning>
  **Kırıcı değişiklik (yalnızca yönetici).** Hesap listesi sadece `[amm (W), admin (S)]`'ye indirildi (otorite, açık siparişler, hedef siparişler, vault ve tüm market hesapları kaldırıldı). `param` enum'u **yeniden numaralandırıldı ve kırpıldı**: `Status` = 0, `State` = 1, `Fees` = **2** (eski 9), `SetOpenTime` = **3** (eski 11). Tüm sipariş defteri ızgarası parametreleri ve `AmmOwner`, `LastOrderDistance`, `UpdateOpenOrder` kaldırıldı ve `SetParamsInstruction` yapısı `new_pubkey` ve `last_order_distance`'ı bıraktı. Yönetici araçları güncellenmeli.
</Warning>

## Durum değişikliği matrisi

OpenBook sütunu gitti — hiçbir talimat artık bir sipariş defterine dokunmaz.

| Talimat                         | `lp_mint` arzı                      | Vault'lar                                | PnL sayaçları |
| ------------------------------- | ----------------------------------- | ---------------------------------------- | ------------- |
| `Initialize2`                   | başlangıç arzı oluşturucuya basıldı | `+ init_coin_amount`, `+ init_pc_amount` | 0             |
| `Deposit`                       | +                                   | + her ikisi                              | —             |
| `Withdraw`                      | −                                   | − her ikisi                              | —             |
| `SwapBaseIn` / `SwapBaseInV2`   | —                                   | + giriş, − çıkış                         | + pnl payı    |
| `SwapBaseOut` / `SwapBaseOutV2` | —                                   | + giriş, − çıkış                         | + pnl payı    |
| `WithdrawPnl`                   | —                                   | − (pnl temizlendi)                       | 0             |
| `SetParams`                     | —                                   | —                                        | —             |

## Sonraki adımlar

* [`products/amm-v4/code-demos`](/tr/products/amm-v4/code-demos) — swap ve LP akışları için TypeScript örnekleri.
* [`products/amm-v4/fees`](/tr/products/amm-v4/fees) — `WithdrawPnl` detayları ve ücret bölünmesi.
* [`reference/error-codes`](/tr/reference/error-codes) — ileri referans tablosu (AMM v4 hataları bu sayfada listelenir).

Kaynaklar:

* [Raydium AMM programı — `raydium-io/raydium-amm`](https://github.com/raydium-io/raydium-amm)
* Raydium SDK v2 `Liquidity` modülü
* OpenBook programı — market tarafında hesap doğrulamaları
