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

# Öncelik ücretleri ve hesaplama bütçesi

> Raydium işlemleri için hesaplama-birimi limitlerinin ve öncelik ücretlerinin doğru boyutlandırılması — talimat başına kıyaslamalar, tahmin stratejileri ve tıkanıklık işleme desenleri.

<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 →](/integration-guides/priority-fee-tuning)
</Info>

Her Solana işlemi iki parametreyi (örtük veya açık olarak) ayarlar: bir **hesaplama-birimi limiti** (işlemin tüketebileceği en fazla CU; varsayılan olarak talimat sayısı × 200.000, işlem başına sınırlandırılmış) ve **öncelik ücreti** (CU başına mikro-lamport cinsinden). Her ikisinin de eksik boyutlandırılması işlemleri öldürür — çok düşük CU limitleri `ProgramFailedToComplete` hatasına neden olur; çok düşük öncelik ücretleri işlemin süresi doluncaya kadar onaylanmamış kalmasına neden olur.

## İki ayar

```ts theme={null}
import { ComputeBudgetProgram } from "@solana/web3.js";

const tx = new Transaction()
  .add(ComputeBudgetProgram.setComputeUnitLimit({ units: 250_000 }))
  .add(ComputeBudgetProgram.setComputeUnitPrice({ microLamports: 50_000 }))
  .add(yourRaydiumSwapIx);
```

* `setComputeUnitLimit(units)` — hesaplamayı sınırlandırır; işlem en fazla `units` CU için ödeme yapar.
* `setComputeUnitPrice(microLamports)` — CU başına mikro-lamport cinsinden öncelik ücreti teklifi. Toplam öncelik ücreti = `units × microLamports × 1e-6` lamport.

Ücret hesaplaması: 250k CU limitinde 50k mikro-lamport/CU, `250_000 × 50_000 / 1e6 = 12.500` lamport ≈ 0.0000125 SOL ≈ 200 SOL'da \$0.003 teklif eder. Bu ölçekte öncelik ücretleri çoğu kullanıcı takası için önemsizdir, ancak günde 1000 işlem yapan botlar için önemlidir.

## Talimat başına CU kıyaslamaları

Ana ağ yürütme günlüklerinden kıyaslamalar, son çalıştırmalar arasında ortalaması alınmış. Sayılar yaklaşıktır (±%15); belirli akışlarınız için yeniden ölçün.

| Talimat                         | SPL Token           | Token-2022 (basit) | Token-2022 (transfer ücreti) |
| ------------------------------- | ------------------- | ------------------ | ---------------------------- |
| CPMM initialize\_pool           | 180.000             | 200.000            | —                            |
| CPMM swap\_base\_input          | 140.000             | 180.000            | 200.000                      |
| CPMM swap\_base\_output         | 150.000             | 185.000            | 205.000                      |
| CPMM deposit                    | 130.000             | 160.000            | 180.000                      |
| CPMM withdraw                   | 120.000             | 150.000            | 170.000                      |
| CLMM create\_pool               | 70.000              | 85.000             | —                            |
| CLMM open\_position\_v2         | 120.000             | 140.000            | 160.000                      |
| CLMM increase\_liquidity\_v2    | 150.000             | 175.000            | 195.000                      |
| CLMM decrease\_liquidity\_v2    | 140.000             | 165.000            | 185.000                      |
| CLMM swap\_v2 (0 tick geçişi)   | 170.000             | 205.000            | 225.000                      |
| CLMM swap\_v2 (1 tick geçişi)   | 220.000             | 255.000            | 275.000                      |
| CLMM swap\_v2 (3 tick geçişi)   | 320.000             | 355.000            | 375.000                      |
| CLMM collect\_fee               | 80.000              | 95.000             | 105.000                      |
| AMM v4 swap\_base\_in           | 140.000             | —                  | —                            |
| AMM v4 deposit                  | 120.000             | —                  | —                            |
| AMM v4 withdraw                 | 110.000             | —                  | —                            |
| Farm v6 create\_farm            | 70.000              | 85.000             | —                            |
| Farm v6 deposit (1 ödül yuvası) | 130.000             | 155.000            | 175.000                      |
| Farm v6 deposit (3 ödül yuvası) | 220.000             | 255.000            | 275.000                      |
| Farm v6 withdraw                | deposit ile eşleşir |                    |                              |
| Farm v6 harvest                 | deposit ile eşleşir |                    |                              |
| Farm v3/v5 deposit              | 100.000             | —                  | —                            |
| LaunchLab initialize            | 100.000             | —                  | —                            |
| LaunchLab buy\_exact\_in        | 140.000             | —                  | —                            |
| LaunchLab graduate              | 250.000             | —                  | —                            |

CLMM için "tick geçişleri" satırı en büyük CU değişkenidir. Swapın kaç tick geçeceğini bilmiyorsanız, en kötü duruma bütçeyin — 8 geçiş sabit sınırdır (program en fazla 8 tick dizisini yükler).

### Birleştirilmiş işlemler

Bireysel bütçeleri toplayın ve şunu ekleyin:

* **+1.500 CU her CPI çerçevesi başına** — her program dışı çağrının sabit çalışma zamanı yükü.
* **+20.000 CU her ATA oluşturması başına** — `create_associated_token_account` bedava değildir.
* **+5.000 CU her `setComputeUnitLimit` / `setComputeUnitPrice` için**.

Örnek: çıkış ATA'sını oluşturan ve yerel SOL'u sarmalayan bir kullanıcı swapı:

```
wrap_sol (create_ata + system transfer + sync_native)   ≈ 30.000
CPMM swap_base_input (SPL)                              ≈ 140.000
close_account (unwrap)                                  ≈ 5.000
ComputeBudget talimatları                               ≈ 10.000
────────────────────────────────────────────────────────
Toplam                                                  ≈ 185.000 → 250.000 bütçe
```

Yastıklama: CU limitini beklenen kullanımın \~%25 üzerine ayarlayın. Eksik tahmin etmek tüm işlemi maliyetlendirir; aşırı tahmin etmek sadece öncelik ücreti maliyetini orantılı olarak arttırır (öncelik ücreti `units × microLamports` olduğundan, \~%25 fazla bütçe öncelik ücrette %25 ek maliyet verir).

## Öncelik ücreti tahmini

Solana'nın yerel ücret pazarı, öncelik ücretlerinin **yazılabilir-hesap başına** olduğu anlamına gelir. Sıcak bir hesaba yazan bir işlem (popüler pool durumu) soğuk bir hesaba yazan bir işlemden daha fazla öder. Küresel ücret düzeyi Raydium swapları için doğru metrik değildir; dokunduğunuz belirli havuzlardaki ücretler istenir.

### Strateji 1: RPC sağlayıcı tahmincisi

Her büyük RPC sağlayıcı, belirli hesaplardaki son ücretleri sorgulayan bir öncelik ücreti tahmincisi yayınlar:

```ts theme={null}
// Helius
const response = await fetch(`https://mainnet.helius-rpc.com/?api-key=${apiKey}`, {
  method: "POST",
  body: JSON.stringify({
    jsonrpc: "2.0",
    id:      "fee-estimate",
    method:  "getPriorityFeeEstimate",
    params: [{
      accountKeys: [poolStatePubkey.toBase58()],
      options:     { priorityLevel: "High" },
    }],
  }),
});
const { result } = await response.json();
const microLamports = result.priorityFeeEstimate;
```

Çoğu sağlayıcı arasında öncelik seviyeleri: `Min` / `Low` / `Medium` / `High` / `VeryHigh` / `UnsafeMax`. Bunları yüzdelik dilime eşleyin:

| Seviye   | Yüzdelik | Kullanım durumu                     |
| -------- | -------- | ----------------------------------- |
| Min      | 25.      | Arka plan, acil olmayan bot trafiği |
| Low      | 50.      | Normal kullanıcı swapları           |
| Medium   | 60.      | Cüzdan arayüzleri için varsayılan   |
| High     | 75.      | Zaman duyarlı arbitraj              |
| VeryHigh | 95.      | Tasfiyeler, son çıkış şansı         |

Sağlayıcılar: Helius (`getPriorityFeeEstimate`), Triton (`getRecentPrioritizationFees` hesap listesi ile), QuickNode (benzer).

### Strateji 2: Doğrudan RPC sorgusu

Standart `getRecentPrioritizationFees` RPC'sini kullanın:

```ts theme={null}
const fees = await connection.getRecentPrioritizationFees({
  lockedWritableAccounts: [poolStatePubkey],
});

// fees: Array<{ slot, prioritizationFee }>
// Son N slot; varsayılan ~150 slot.

const median = percentile(fees.map(f => f.prioritizationFee), 0.5);
```

Bu standart Solana RPC yöntemidir; herhangi bir sağlayıcı ile çalışır. Dezavantaj: örnek küçüktür (150 slot ≈ 60 saniye) ve gürültülüdür. Daha düzgün tahminler için sağlayıcının toplama işlemini kullanın.

### Strateji 3: Tarihsel kendi kendini ayarlama

Sabit akış çalıştıran botlar için kendi iniş ve süresi dolmuş oranlarınızı takip edin:

```
havuz başına hedef: 80% iniş oranı <30s'de
eğer current_land_rate < 80%: priorityFee += 10%
eğer current_land_rate > 95%: priorityFee -= 5%
```

Bu kamu tahminlericilerinden daha hızlı kendi kendini düzeltir ve kamu tahminlericilerinin her zaman görmediği havuz başına yapıyı yakalar.

## CU-tükenmesi hatalarının işlenmesi

Belirti: işlem `exceeded maximum number of instructions allowed (200000)` veya `ProgramFailedToComplete` ile başarısız olur.

Tanı:

```bash theme={null}
solana confirm <tx-sig> -v
# "consumed N of M compute units" ve hangi talimatın tükendiğini arayın.
```

Düzeltmeler:

1. **CU limitini yükseltin.** İşleminiz 200k bütçeden 195k kullanıyorsa, 300k'ye çıkartın.
2. **İşlemi bölün.** 1.4M işlem başına sınırı vurursan, iki işleme ayır. Farm `harvest then stake` ödüller çok olduğunda bölünecek klasik bir örneğidir.
3. **Hesapları budayın.** Her ek yazılabilir hesap \~2.000 CU ekler. Kullanılmayan hesapları budamak sınır durumlarında yardımcı olur.
4. **Arama tablolarını kullanın.** LUT aramaları \~50 CU her çözümlenen adres başına, giriş başına tam hesap referansının 5.000 CU'sinden tasarruf eder.

## Takılı işlemlerin işlenmesi

Belirti: işlem gönderilir, asla onaylanmaz, sonunda `BlockhashNotFound` ile süresi dolar.

Tanı:

* `getSignatureStatuses([sig])` `null` döndürür → lider bunu asla görmedi.
* `{ confirmationStatus: null }` döndürür → lider onu gördü ama dahil etmedi.

Düzeltmeler:

1. **Öncelik ücretini yükseltin.** Mevcut ücretin 2× ile yeniden gönderin.
2. **Taze blockhash ile yeniden oluşturun.** Blockhash ömrü \~60 saniyedir; bundan sonra işlem ücretlerden bağımsız olarak geçersizdir.
3. **Çok-RPC yayını.** Bazı RPC'ler diğerlerinden daha iyi lider bağlantısına sahiptir. Paralel olarak 3–5'e gönderin.
4. **Jito bundle'larına geçin.** Bkz. [`integration-guides/routing-and-mev`](/tr/integration-guides/routing-and-mev). Bundle'lar halkın paket sıralarını atlar.

Yeniden deneme mantığı iskeleti:

```ts theme={null}
async function submitWithRetry(buildTx, maxAttempts = 5) {
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
    const tx = await buildTx({
      priorityFee: basePriorityFee * Math.pow(1.5, attempt),
      blockhash:   (await connection.getLatestBlockhash()).blockhash,
    });

    try {
      const sig = await connection.sendRawTransaction(tx.serialize(), {
        skipPreflight: attempt > 0,  // gecikmeyi kaydetmek için ilk denemeden sonra atla
      });

      const result = await connection.confirmTransaction(sig, "confirmed");
      if (result.value.err) {
        // Mantık hatası; yeniden denemeyin.
        throw result.value.err;
      }
      return sig;

    } catch (e) {
      if (isExpiredError(e)) continue;  // yeniden dene
      if (isRevertError(e)) throw e;    // yeniden denemeyin; belirleyici hata
      throw e;
    }
  }
  throw new Error("submit: yeniden denemeler tükenmiş");
}
```

## Tıkanıklık altında

Ağ tıkanık olduğunda (Jupiter / Jito bundle panolar birikintileri gösterir, RPC gecikmesi yükselir, işlem süresi dolma oranları artar), ayarlayın:

| Parametre                             | Normal koşullar    | Tıkanık koşullar              |
| ------------------------------------- | ------------------ | ----------------------------- |
| CU limiti                             | tahminin %25 üzeri | tahminin %25 üzeri (değişmez) |
| Öncelik ücreti yüzdelik               | 50.                | 75.–95.                       |
| Yeniden deneme sayısı                 | 3                  | 5–7                           |
| Yeniden deneme geri kakalması         | 500ms              | 1000ms                        |
| Jito bundle'larını kullanın           | İsteğe bağlı       | Şiddetle tavsiye edilir       |
| Yeniden denemede blockhash yenilemesi | Evet               | Evet, zorunlu                 |

Tıkanıklık sinyallerini izlemek:

* Öncelik ücreti 75. yüzdelik > 500k mikro-lamport: tıkanıklık.
* Jito 50. yüzdelik bahşiş > 0.001 SOL: tıkanıklık.
* RPC yanıt p99 > 2s: RPC'ye özgü sorun veya tıkanıklık.

## Bot'lar için ücret bütçelemesi

Günde \~1000 işlem çalıştıran bir ticari bot'un ücret bütçesi gerekir. Zarfın arka:

```
İşlem başına ortalama CU:          ~250.000
50. yüzdelik ücreti:              ~20.000 mikro-lamport/CU
İşlem başına maliyet:             250_000 × 20_000 × 1e-6 = 5_000 lamport = 5e-6 SOL
Günlük maliyet (1000 işlem):       5e-3 SOL ≈ 200 SOL'da $1
Aylık maliyet:                     ~$30
```

Bu minimum. Tıkanıklık sırasında, 5–10× ile çarpın. Sabit akış botları için \~\$150–300/ay öncelik ücret planlayın.

Belirli slot'lar içinde inişlenmesi gereken bot'lar (tasfiyeler, arb) sürekli 95. yüzdelik öder ve \~10× daha fazla harcar. Bu ölçekte Jito bundle bahşişleri hakim olur — sık sık \$1000+/ay — ancak alternatif (ön-run olmak veya süresi dolmak) daha kötüdür.

## Tuzaklar

### 1. CU limitini unutmak

Varsayılan, 200k CU × (işlemdeki talimatlar). Tek talimatı swap varsayılan 200k; bu SPL Token'da CPMM için yeterlidir, ancak tick geçişleri ile CLMM veya herhangi bir Token-2022 için değil. Her zaman açıkça ayarlayın.

### 2. Yanlış hesap üzerinde öncelik ücreti

Token mint'e karşı öncelik ücreti tahmin ederseniz, ancak sıcak hesap pool durumuysa, tahminiz çok düşüktür. Pool durumu Raydium için hedef yazılabilir-hesaptır.

### 3. Ücretler CU limitiyle ölçeklenir

`total_priority_fee = units × microLamports`. `units`'i 200k'den 1M'ye, 50k mikro-lamport/CU'da yükselme, öncelik ücreti 5×'ini çarpar. CU'yu aşırı bütçelemeyin; ölçün.

### 4. Varsayılan işlem sürümü

Eski işlemlerin daha düşük hesap sınırları vardır; adres arama tablolarına sahip V0 işlemleri daha büyük rotaları açar. SDK varsayılan olarak V0'ı kullanır `txVersion: TxVersion.V0`. Cüzdan uyumluluğu gerekmediği sürece eski sürüme düşmeyin.

### 5. `skipPreflight` CU hatalarını gizler

`skipPreflight: true` işlemi yerel simülasyon olmadan gönderir. \~100ms'de tasarruf edersiniz, ancak CU tükenmesi üzerine erken geri bildirimi kaybedersiniz. Sadece yeniden denemelerde kullanın, ilk denemede değil.

## İşaretçiler

* [`integration-guides/routing-and-mev`](/tr/integration-guides/routing-and-mev) — Jito bundle stratejileri.
* [`integration-guides/aggregator`](/tr/integration-guides/aggregator) — işlem montajı.
* [`integration-guides/cpi-integration`](/tr/integration-guides/cpi-integration) — birleştirilmiş CPI'lar arasında CU yığını.
* [Solana hesaplama bütçe programı belgeleri](https://docs.solana.com/developing/programming-model/runtime#compute-budget)

Kaynaklar:

* [Solana `getRecentPrioritizationFees` RPC](https://docs.solana.com/api/http#getrecentprioritizationfees)
* [Helius öncelik ücreti API'si](https://docs.helius.dev/solana-apis/priority-fee-api)
* Kıyaslamalar: ana ağ yürütme günlükleri (Raydium SDK entegrasyonu testleri, Nisan 2026).
