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

# 2026-07-30 — CLMM: izinli çok havuzlar ve limit-order dondurulmuş-hesap koruması

> İki CLMM program güncellemesi: CreatePermissionedPool, beyaz listeye alınmış bir yetkilinin seed_index'i havuz PDA'sına katarak aynı çift için birden fazla havuz oluşturmasını sağlar; OpenLimitOrder, çıkış tarafı hesaplarını alarak dondurulmuş giriş veya çıkış token hesabı olan emirleri reddeder.

<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 →](/reference/changelog/2026-07-30-clmm-permissioned-pools)
</Info>

<Info>
  Bir dokümantasyon değişiklik günlüğü girdisi. Tüm güncellemelerin dizini için bkz. [`reference/changelog`](/tr/reference/changelog). Protokolün kendi tarihsel zaman çizelgesi için bkz. [`introduction/history-and-milestones`](/tr/introduction/history-and-milestones).
</Info>

Bu sürüm iki CLMM program değişikliğini belgelemektedir. Her ikisi de katkı niteliğinde ve geriye dönük uyumludur: mevcut havuzlar, pozisyonlar ve açık emirler etkilenmez ve klasik `CreatePool` / `CreateCustomizablePool` yolları değişmemiştir.

## Entegratörler için TL;DR

* **Havuz kimlikleri artık izin kapısının arkasında kanonik olmayan olabilir.** Tarihsel olarak `(amm_config, token_mint_0, token_mint_1)` başına tam olarak bir CLMM havuz adresi vardı — PDA tohumları bunu sabitledi. Yeni bir talimat olan **`CreatePermissionedPool`**, istemci tarafından sağlanan sıfır olmayan `seed_index: u16` değerini havuz PDA tohumlarına katıyor, böylece beyaz listeye alınmış bir operatör **aynı çift ve ücret katmanı için birden fazla havuz** kurabilir, her biri kendi adresinde. Keyfi havuz adresleri ayrıcalıklı bir yetenek olduğundan, ödeyici yönetici tarafından verilen bir **`Permission`** PDA'sı tutmalıdır. İki yönetici talimatı olan **`CreatePermissionPda`** ve **`ClosePermissionPda`** bu izinleri yönetir.
* **`OpenLimitOrder` artık çıkış tarafını doğrular.** Talimat üç ek hesap alır — `output_token_account`, `output_vault`, `output_vault_mint` — ve sahibinin **giriş veya çıkış** token hesabı dondurulmuşsa emri `NotApproved` ile reddeder. Bu, nihai doldurmanın teslim edilebileceğini garanti eder; bu, izin listesi / varsayılan dondurulmuş Token-2022 mintleri (izinli tokenler) için önemlidir. Eski tek taraflı hesap listesine karşı oluşturulan istemciler üç çıkış hesabı eklemelidir.

## Programda ne değişti

### Yeni talimat: `CreatePermissionedPool`

`CreateCustomizablePool` ile aynı şekil ve parametreler (aynı `CreateCustomizableParams` alır, bu nedenle tek taraflı ücret ve dinamik ücret seçeneği mevcuttur), artı:

* Bir `seed_index: u16` argümanı, **sıfır olmayan olmalıdır**. Havuz PDA tohumlarına (little-endian) eklenir:
  `["pool", amm_config, token_mint_0, token_mint_1, seed_index.to_le_bytes()]`.
* Bir `permission` hesabı: PDA `["permission", payer]`. Anchor, mevcut değilse veya program tarafından sahip olunmuyorsa çağrıyı reddeder — basit varlığı yetkilendirmedir.
* Ücret ödeyen `payer`'dan farklı olabilecek `pool_state.owner` olarak kaydedilen bir `pool_creator` hesabı.

`seed_index = 0` eski havuzlar için ayrılmış kalır: bunlar için tohum bileşeni boşa çöker ve klasik dört tohum adresini yeniden üretir, bu nedenle mevcut havuz adresi değişmez.

Bkz. [Talimatlar → CreatePermissionedPool](/tr/products/clmm/instructions).

### Yeni hesap: `Permission`

Varlığı **izin** olan bir yetenek hesabı. Yalnızca oluşturulduğu `authority`'yi depolar (artı dolgu). PDA tohumları: `["permission", authority]`. `CreatePermissionedPool` çağırma hakkını verir ve başka hiçbir şey değil — fonları taşıyamaz, ücretleri değiştiremez veya herhangi bir havuzu mutasyona uğratamaz. Bkz. [Hesaplar → Permission](/tr/products/clmm/accounts).

### Yeni yönetici talimatları: `CreatePermissionPda` / `ClosePermissionPda`

* `CreatePermissionPda` belirli bir `permission_authority` için bir `Permission` PDA'sı başlatır.
* `ClosePermissionPda` bunu kapatır ve kirayı çağırana geri öder, izni iptal eder. Bu izin altında zaten oluşturulan havuzlar etkilenmez.

Her ikisi de program `admin` genel anahtarını **veya** özel bir `permission_pda_admin` anahtarını (mainnet ve devnet'te farklı bir sabit) kabul eder. Bkz. [Yönetici anahtarları ve multisig → CLMM](/tr/security/admin-and-multisig).

### `PoolState`: `seed_index` alanı

İki bayt mevcut bir dolgu bölgesinden çıkarıldı (`padding: [u8; 6]` → `seed_index: [u8; 2]` + `padding: [u8; 4]`) doğrudan `fee_on` sonrasında. **Toplam hesap boyutu değişmemiş ve indexer geçişi gerekli değildir.** `CreatePool` / `CreateCustomizablePool` aracılığıyla oluşturulan havuzlar için `seed_index` `[0, 0]` olur; izinli havuzlar için yaratıcının seçilen dizinini taşır ve çevrimdışı havuz adresini yeniden türetmek için gereklidir.

### `OpenLimitOrder`: çıkış tarafı hesapları ve dondurulmuş-hesap koruması

`OpenLimitOrder` hesap listesi `output_token_account`, `output_vault` ve `output_vault_mint` kazanır. Bunlar yalnızca doğrulama için kullanılır — açık olarak çıkış borçlandırılmaz. İşleyici artık **ne** giriş **ne de** çıkış token hesabının dondurulmuş olmadığını gerektirir, aksi takdirde `NotApproved` döndürür (aynı kod havuzun swap veya limit-order devre dışı bırakıldığında zaten döndürülür). Bu, doldurmanın hiçbir zaman alınamayacağı bir token hesabına karşı bir emrin açılabileceği boşluğu kapatır (örn. varsayılan dondurulmuş Token-2022 mint'i için henüz çözülmemiş bir hesap).

Bkz. [Talimatlar → OpenLimitOrder](/tr/products/clmm/instructions).

## Hata kodları

Yeni hata kodu yok. Mevcut `6000 NotApproved` artık ek olarak dondurulmuş giriş/çıkış token hesabını ve `OpenLimitOrder` üzerinde swap/limit-order devre dışı durumlarını, ve izin talimatları üzerinde "imzalayan ne `admin` ne de `permission_pda_admin`" durumunu kapsar. Hata kodu tablosu ve numaralandırması [2026-05-18 sürümü](/tr/reference/changelog/2026-05-18-clmm-limit-orders) ile değişmemiştir. Bkz. [Hata kodları → CLMM](/tr/reference/error-codes).

## Geçiş notları

* **Havuz adreslerini okuma**: `(config, mint0, mint1)` başına bir havuz olduğunu varsaymayın. Bir çift artık kanonik bir havuz artı `seed_index` türetilmiş adreslerinde bir veya daha fazla izinli havuz olabilir. Tek bir PDA türetmek yerine API / indexer'dan havuzları numaralandırın ve izinli bir havuzu yeniden türetmeniz gerektiğinde `seed_index` depolayın.
* **Limit emirleri yerleştirme**: `OpenLimitOrder` işleminize üç çıkış tarafı hesabı ekleyin ve dondurulmuş bir hesap için `NotApproved` döndürüldüğünde açık bir mesaj gösterin.
* **Hesap boyutu veya düzen kırılması yok**: `PoolState` aynı boyuttadır; emekli dolgu baytları artık `seed_index` tutar.

## Güncellenen sayfalar

* `products/clmm/overview` — izinli çok havuzlar ve limit-order koruması hakkında "Yenilikler" notu.
* `products/clmm/instructions` — yeni `CreatePermissionedPool` bölümü, talimat tablosunda ve yönetici kapısı notunda `CreatePermissionPda` / `ClosePermissionPda`, ve güncellenen `OpenLimitOrder` hesap listesi / ön koşullar / hatalar.
* `products/clmm/accounts` — envanterinde `Permission` ve kendi bölümü, `PoolState.seed_index` alanı, PDA türetme yardımcıları (`derivePermissionedPool`, `derivePermission`) ve yaşam döngüsü hızlı referansı.
* `security/admin-and-multisig` — CLMM rolleri tablosunda yeni `permission_pda_admin` satırı ve izin kapsamı açıklayıcısı.
* `reference/error-codes` — genişletilmiş `NotApproved` açıklaması.

**Doğrulandı**:

* `raydium-clmm` kaynağı (`create_permissioned_pool.rs`, `admin/create_permission_pda.rs`, `admin/close_permission_pda.rs`, `states/permission.rs`, `states/pool.rs`, `limit_order/open_limit_order.rs`, `lib.rs`).
