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

> Protokol düzeyinde yapılandırma hesapları, her LaunchLab lansmanını yönetir — işlem ücret oranları, minimum tedarik, kilitleme oranı tavanları, mezuniyet kapısı olan geçiş cüzdanları ve eğri başına indeksleme şeması.

<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/global-config)
</Info>

<Info>
  `GlobalConfig`, **protokol düzeyinde** yapılandırma hesabıdır. Çok sayıda olabilir — `(curve_type, index)` anahtarına göre dizinlenmiş — ve her lansmanı `Initialize` sırasında tam olarak bir tane seçer. Seçilen `GlobalConfig` üzerindeki değerler, o lansmanın parametreleri için sabit sınırlar haline gelir. Platform düzeyinde özelleştirme için (platform başına işlem ücreti, izin verilen eğri şekilleri, mezuniyet sırasında NFT bölünmesi), bkz. [`products/launchlab/platform-config`](/tr/products/launchlab/platform-config).
</Info>

## Nedir?

`GlobalConfig`, `(curve_type, index)` başına singleton olan bir PDA'dır ve her lansmanın uyması gereken protokol tarafı kurallarını düzenler:

* İzin verilen bağlama eğrisinin türü (`curve_type`).
* Eğri tarafından her alım ve satışta alınan ticari işlem ücreti oranı.
* Mezuniyet sırasında alınan geçiş ücreti.
* Tedarik, kilitleme oranı, satış oranı ve geçiş oranı tabanları.
* Teklif mint'i (tipik olarak wrapped SOL veya USDC) — kullanıcıların satın aldığı varlık.
* Üç protokol tarafı cüzdanı: protokol ücreti sahibi, geçiş ücreti sahibi ve AMM v4 / CPMM'ye mezuniyet onayını veren iki geçiş kontrol cüzdanı.
* İsteğe bağlı bir bayrak (`requires_platform_auth`) bu yapılandırmanın hangi platformlar tarafından kullanılabileceğini kontrol eder.

`GlobalConfig` hesapları, LaunchLab program yöneticisi tarafından oluşturulur ve güncellenir (Anchor tabanlı Raydium programları arasında paylaşılan sabit kodlanmış yönetici pubkey'i — bkz. [`reference/program-addresses`](/tr/reference/program-addresses)).

## Layout

```rust theme={null}
// states/config.rs
pub const GLOBAL_CONFIG_SEED: &str = "global_config";

#[account]
pub struct GlobalConfig {
    pub epoch:                   u64,         // recent_epoch tracker
    pub curve_type:              u8,          // 0 = ConstantProduct, 1 = FixedPrice, 2 = LinearPrice
    pub index:                   u16,         // discriminator within a curve_type
    pub migrate_fee:             u64,         // SOL paid on graduation
    pub trade_fee_rate:          u64,         // 1/1_000_000 of volume
    pub max_share_fee_rate:      u64,         // 100 bps cap on platform share fee
    pub min_base_supply:         u64,         // floor on Initialize supply (no decimals)
    pub max_lock_rate:           u64,         // ceiling on vesting locked / supply
    pub min_base_sell_rate:      u64,         // floor on base_supply_graduation / supply
    pub min_base_migrate_rate:   u64,         // floor on tokens that seed the post-graduation pool
    pub min_quote_fund_raising:  u64,         // floor on quote_reserve_target (with decimals)
    pub quote_mint:              Pubkey,
    pub protocol_fee_owner:      Pubkey,      // claims protocol fees via CollectFee
    pub migrate_fee_owner:       Pubkey,      // claims migration fees via CollectMigrateFee
    pub migrate_to_amm_wallet:   Pubkey,      // can sign MigrateToAmm
    pub migrate_to_cpswap_wallet:Pubkey,      // can sign MigrateToCpswap
    pub requires_platform_auth:  u8,          // 0/1 flag
    pub padding_alignment:       [u8; 7],
    pub padding:                 [u64; 15],
}
```

PDA türetimi:

```ts theme={null}
const [globalConfig] = PublicKey.findProgramAddressSync(
  [
    Buffer.from("global_config"),
    Buffer.from(quoteMint.toBytes()),
    Buffer.from([curveType]),
    u16ToBytes(index),
  ],
  LAUNCHLAB_PROGRAM_ID,
);
```

(İmza atılmadan önce, tam seed sırasını zincir üstü hesaptan doğrulayın — program'ın `create_config` komutu kaynak kaynağıdır.)

## Alan semantiği

### `curve_type` ve `index`

Bunlar birlikte bir `GlobalConfig`'i benzersiz şekilde belirler. Her `(curve_type, index)` çifti için bir `GlobalConfig` vardır:

* `curve_type = 0` — Sabit ürün sanal yedek eğrisi. Varsayılan ve en çok kullanılan.
* `curve_type = 1` — Sabit fiyat eğrisi.
* `curve_type = 2` — Doğrusal fiyat eğrisi.

`index`, eğri türü başına birden fazla yapılandırma yayınlamak için yöneticiye izin veren bir `u16`'dır (örneğin, daha sıkı bir ücret oranı ile bir tane, daha yüksek minimum teklif yükseltme ile bir tane). `Initialize` sırasında lansmanı bir `(curve_type, index)` çifti sağlayın ve program eşleşen `GlobalConfig`'i yükleyecektir.

### Ücretler

* `trade_fee_rate` — ticari işlem hacminin `1/1_000_000`'de ifade edilir. Eğri üzerinde her alım ve satışa uygulanır. `protocol_fee_owner`, `CollectFee` aracılığıyla payını talep eder.
* `migrate_fee` — mezuniyet sırasında bir kere alınan lamport'ta sabit bir ücret (veya yapılandırmaya bağlı olarak teklif birlikleri). `migrate_fee_owner` tarafından `CollectMigrateFee` aracılığıyla talep edilir.
* `max_share_fee_rate` — `10_000` (100 bps) olarak başlatılır. **Platform'ın** bağlayıcı `PlatformConfig` öğesinden hisse ücreti oranını sınırlandırır (bkz. [`platform-config`](/tr/products/launchlab/platform-config)). Program `trade_fee_rate + max_share_fee_rate < RATE_DENOMINATOR_VALUE` olmasını zorunlu kılar.

### Tedarik ve oran tabanları

Bu tabanlar, lansmanın `Initialize`'da seçebileceği eğri şekil parametrelerini sınırlandırır. Yaratıcının `CurveParams` bunlardan herhangi birini ihlal ederse, `Initialize` `InvalidInput` ile başarısız olur.

* `min_base_supply` — eğri tarafından beyan edilebilecek minimum `supply` (ondalık yok). Varsayılan `10_000_000`.
* `max_lock_rate` — `1/1_000_000` cinsinden ifade edilir; varsayılan `300_000` (% 30). Vesting'i `total_locked_amount <= supply * max_lock_rate / 1_000_000` aracılığıyla sınırlandırır.
* `min_base_sell_rate` — `1/1_000_000` cinsinden ifade edilir; varsayılan `200_000` (% 20). `base_supply_graduation / supply` öğesini aşağıdan sınırlandırır.
* `min_base_migrate_rate` — `1/1_000_000` cinsinden ifade edilir; varsayılan `200_000` (% 20). Mezuniyet sonrası havuzu tohum olarak bırakan token sayısını sınırlandırır.
* `min_quote_fund_raising` — lansmanın beyan edebileceği minimum `quote_reserve_target` (ondalık ile). Varsayılan, teklif mint'inin `30_000_000_000` birimidir.

### Teklif mint'i ve protokol cüzdanları

* `quote_mint` — kullanıcıların satın aldığı varlık. Çoğu lansmanı wrapped SOL (`So111…112`) veya USDC (`EPjF…Dt1v`) kullanır. Bir `GlobalConfig` bir teklif mint'ine bağlıdır; farklı bir teklif hedefi gereken lansmanlar farklı bir `(curve_type, index)` hedefi alır.
* `protocol_fee_owner` — `CollectFee` imzalayan ve bu yapılandırmaya bağlı her lansmanın birikmiş protokol ücretlerini talep eden pubkey. Zincir üzerinde depolanır; yönetici `UpdateConfig` aracılığıyla döndürebilir.
* `migrate_fee_owner` — `CollectMigrateFee` imzalayan pubkey.

### Geçiş cüzdanları

İki mezuniyet yolu farklı imzacılar gerektirir:

* `migrate_to_amm_wallet` — `MigrateToAmm` imzalamalıdır. `migrate_type = 0` olan lansmanlar için kullanılır (AMM v4 + OpenBook'a mezuniyet).
* `migrate_to_cpswap_wallet` — `MigrateToCpswap` imzalamalıdır. `migrate_type = 1` (CPMM'ye mezuniyet) için kullanılır. Token-2022 lansmanları her zaman bu yolu alır.

Bunlar tipik olarak Raydium tarafından işletilen mezuniyet crank tarafından tutulur, böylece eğri eşiğe ulaştıktan kısa süre sonra mezuniyet gerçekleşir ve yaratıcının bunu çağırmasını beklemez.

### `requires_platform_auth`

Bir `u8` bayrak (`0` = herkes bu yapılandırmayı kullanabilir; sıfır olmayan = yalnızca geçerli `PlatformGlobalAccess` PDA'sı olan platformlar buna karşı lansmanı başlatabilir). Ayarlandığında, bu `GlobalConfig` karşısında her `Initialize`, platformun `CreatePlatformGlobalAccess` (yalnızca yönetici komutu) aracılığıyla önceden yetkilendirilmiş olduğunu kanıtlayan eşleşen bir `PlatformGlobalAccess` hesabı içermelidir. Platform tarafı mekanikler için bkz. [`platform-config`](/tr/products/launchlab/platform-config).

## Başlatmada varsayılanlar

`CreateConfig` çağrıldığında, program birçok alanı sabit kodlanmış varsayılanlarla hazırlar:

```rust theme={null}
self.max_share_fee_rate     = 10_000;                  // 100 bps
self.min_base_supply        = 10_000_000;              // no decimals
self.max_lock_rate          = 300_000;                 // 30%
self.min_base_migrate_rate  = 200_000;                 // 20%
self.min_base_sell_rate     = 200_000;                 // 20%
self.min_quote_fund_raising = 30_000_000_000;
self.requires_platform_auth = 0;
```

Yönetici, oluşturma sırasında `curve_type`, `index`, `migrate_fee`, `trade_fee_rate`, `quote_mint` ve dört cüzdan pubkey'ini açıkça ayarlar; sonraki değerler `UpdateConfig` aracılığıyla ayarlanabilir.

## Lansmanın `GlobalConfig`'i nasıl seçtiği

`Initialize`'da, yaratıcı şunları geçer:

* Hangi `GlobalConfig` PDA'sını yükleyeceğini seçmek için `(curve_type, index)`.
* Eğri şeklini açıklayan `CurveParams` (`supply`, `total_base_sell`, `total_quote_fund_raising`, `migrate_type`).
* Kilitli tedariki açıklayan `VestingParams`.
* Taban mint için `MintParams`.

Program aşağıdakileri zorunlu kılar:

* `curve_type` `global_config.curve_type` ile eşleşir.
* `supply >= global_config.min_base_supply`.
* `total_locked_amount <= supply * max_lock_rate / 1_000_000`.
* `total_base_sell >= supply * min_base_sell_rate / 1_000_000`.
* `(supply − total_base_sell − total_locked_amount) >= supply * min_base_migrate_rate / 1_000_000` — yani, mezuniyet sonrası havuzu tohum olarak bırakacak kadar token.
* `total_quote_fund_raising >= min_quote_fund_raising`.
* `requires_platform_auth != 0` ise, geçerli bir `PlatformGlobalAccess` PDA'sı dahil edilir.

`Initialize` sonrasında, lansmanın `PoolState` doğrudan `global_config` pubkey'ini depolayarak bağlanma kalıcı hale gelir.

## Güncelleme yolu

`UpdateConfig` yalnızca yöneticiye özeldir ve bir `(param: u8, value: u64)` çiftini alır. Her `param` değeri, hangi alanın mutasyona uğrayacağını seçer:

| `param` | Değişen alan             |
| ------- | ------------------------ |
| 0       | `migrate_fee`            |
| 1       | `trade_fee_rate`         |
| 2       | `max_share_fee_rate`     |
| 3       | `min_base_supply`        |
| 4       | `max_lock_rate`          |
| 5       | `min_base_sell_rate`     |
| 6       | `min_base_migrate_rate`  |
| 7       | `min_quote_fund_raising` |

Cüzdan döndürmeleri (`protocol_fee_owner`, `migrate_fee_owner`, `migrate_to_amm_wallet`, `migrate_to_cpswap_wallet`) ayrı bir `Pubkey` argümanı şekli alır; yönetici işlemi oluşturmadan önce tam işlem tablosu için `update_config` kaynağını kontrol edin.

`requires_platform_auth`, `set_requires_platform_auth(bool)` aracılığıyla açılıp kapatılır.

## İstemciden `GlobalConfig` okuma

```ts theme={null}
import { Raydium } from "@raydium-io/raydium-sdk-v2";

// Fetch by PDA derivation:
const [configPda] = PublicKey.findProgramAddressSync(
  [
    Buffer.from("global_config"),
    quoteMint.toBytes(),
    Buffer.from([curveType]),
    u16ToBytes(index),
  ],
  LAUNCHLAB_PROGRAM_ID,
);

const config = await raydium.launchpad.getGlobalConfig(configPda);
console.log(config.tradeFeeRate, config.minQuoteFundRaising);
```

Mevcut tüm yapılandırmaları listeleyen bir kullanıcı arayüzü için SDK'nın `getAllGlobalConfigs` yardımcısında yürüyün veya bunları aynı şekilde yansıtan LaunchLab API uç noktasını sorgulayın; zincir üstü hesap sayısı azdır (pratikte tek rakamlar).

## İşaretçiler

* [`products/launchlab/platform-config`](/tr/products/launchlab/platform-config) — eğri şeklini daha da sınırlandıran platform başına kaplama.
* [`products/launchlab/accounts`](/tr/products/launchlab/accounts) — lansmanın tam hesap grafiği.
* [`products/launchlab/instructions`](/tr/products/launchlab/instructions) — `Initialize` ve güncelleme komutları.
* [`reference/program-addresses`](/tr/reference/program-addresses) — yönetici pubkey'i, program kimliği, paylaşılan yetkililer.

Kaynaklar:

* `raydium-launch/programs/launchpad/src/states/config.rs` — `GlobalConfig` yapısı ve `initialize`.
* `raydium-launch/programs/launchpad/src/lib.rs` — `create_config`, `update_config`.
