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

# İşlem API'si Genel Bakış

> Solana için sunucu tarafı swap işlemi oluşturucu.

<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 →](/api-reference/route-api-v2/overview)
</Info>

## İşlem API'si Nedir?

Raydium İşlem API'si (Route V2), istemci tarafında RPC bağlantısı tutmaya veya tüm Raydium SDK'sını paketlemeye gerek kalmadan seri hale getirilmiş Solana swap işlemleri oluşturan sunucu tarafı bir hizmettir. Bu, aşağıdakiler için entegrasyonu önemli ölçüde basitleştirir:

* Yerel RPC istemcisi çalıştıramayan web ön uçları
* Sınırlı kaynakları olan mobil uygulamalar
* Başsız ticaret botları
* Toplayıcılar ve cüzdan sağlayıcıları

Karmaşık havuz yönlendirmesi ve işlem yapısını istemci tarafında gerçekleştirmek yerine, API'mizden swap teklifleri ve işlem oluşturma talebinde bulunur, ardından sonucu herhangi bir Solana RPC kullanarak imzalayıp yayınlarsınız.

## İş Akışına Genel Bakış

İşlem API'si sorumlulukları iki aşamaya ayırır:

### 1. Hesaplama Aşaması: Teklif Alın

Mevcut havuz durumlarına göre beklenen swap çıktısını (veya gerekli girişi) almak için `/compute/swap-base-in` veya `/compute/swap-base-out` çağrısı yapın. Bu uç nokta **yalnızca okunur** ve herhangi bir imza gerektirmez:

```bash theme={null}
GET /compute/swap-base-in?inputMint=EPjF...&outputMint=So111...&amount=1000000&slippageBps=50&txVersion=V0
```

Yanıt şunları içerir:

* Beklenen çıkış miktarı
* Rota dökümü (hangi havuzlar ve likidite kaynakları kullanılır)
* Fiyat etkisi

### 2. İşlem Aşaması: Oluşturun ve İmzalayın

Hesaplama yanıtını aldıktan sonra, onu (cüzdan ve yapılandırma ile birlikte) `/transaction/swap-base-in` veya `/transaction/swap-base-out` adresine iletin:

```bash theme={null}
POST /transaction/swap-base-in
Content-Type: application/json

{
  "wallet": "YourWalletAddress",
  "swapResponse": { ...response from /compute/swap-base-in },
  "txVersion": "V0",
  "computeUnitPriceMicroLamports": "1000",
  "wrapSol": false,
  "unwrapSol": false,
  "inputAccount": "TokenAccount1...",
  "outputAccount": "TokenAccount2..."
}
```

Yanıt şunları içerir:

* İmzalanmaya hazır base64 kodlanmış versiyonlanmış işlem
* Adres arama tablosu adresleri (txVersion=V0 ise)

İstemciniz daha sonra:

1. İşlemi çözer
2. Bunu kullanıcının keypair'i ile imzalar
3. Herhangi bir Solana RPC aracılığıyla yayınlar
4. Onay bekler

## Hesaplama Uç Noktaları

### `GET /compute/swap-base-in`

**Kullanım durumu**: Kullanıcı giriş miktarını belirtir, çıkışı hesaplarız.

**Gerekli sorgu parametreleri**:

* `inputMint` – Gönderdiğiniz token'ın mint adresi
* `outputMint` – İstediğiniz token'ın mint adresi
* `amount` – Giriş miktarı lamports cinsinden (en küçük birim)
* `slippageBps` – Maksimum kabul edilebilir slippage (basis points, 0–10000)
* `txVersion` – `V0` veya `LEGACY`

**İsteğe bağlı**:

* `referrerBps` – Bir referrer otoritesine sahipseniz, referrer ücreti olarak toplanacak çıktının basis points'i

### `GET /compute/swap-base-out`

**Kullanım durumu**: Kullanıcı istenen çıktıyı belirtir, gerekli girişi hesaplarız.

**Gerekli sorgu parametreleri**:

* `inputMint`, `outputMint`, `amount` (istenen çıktı), `slippageBps`, `txVersion`

**Not**: Base-out için referrer basis points yoktur (henüz uygulanmamıştır).

## İşlem Uç Noktaları

### `POST /transaction/swap-base-in`

Sabit bir giriş miktarı için işlem oluşturur.

**Gerekli gövde**:

* `wallet` – İmzalama cüzdanınızın adresi
* `swapResponse` – Tüm hesaplama yanıtı nesnesi
* `txVersion` – İşlem sürümü
* `computeUnitPriceMicroLamports` – Micro-lamports cinsinden öncelik ücreti

**İsteğe bağlı**:

* `wrapSol` – Doğruysa, giriş için native SOL'u sarın
* `unwrapSol` – Doğruysa, çıkışta WSOL'u SOL'a açın
* `inputAccount` – Giriş için token hesabı (SOL'u sarmazsa gerekli)
* `outputAccount` – Çıkış için token hesabı
* `nonceInfo` – Çevrimdışı imzalama için dayanıklı nonce
* `jitoInfo` – Jito MEV koruması paketi parametreleri
* `referrerWallet` – Ücret toplama için referrer cüzdanı

### `POST /transaction/swap-base-out`

Sabit bir çıkış miktarı için işlem oluşturur.

**Base-in ile aynı parametreler**, ancak:

* `referrerInfo` alanı şu anda yorum haline getirilmiştir (henüz uygulanmamıştır)

## Yanıt Zarfı

Tüm uç noktalar standart bir zarfı döndürür:

```json theme={null}
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "success": true,
  "version": "V1",
  "data": { ... }
}
```

Hata durumunda, `success` `false` olur ve `msg` hata kodunu içerir (örn. `REQ_WALLET_ERROR`, `REQ_SLIPPAGE_BPS_ERROR`).

## İşlem Yanıtı Şekli

Başarılı bir işlem yanıtı şöyle görünür:

```json theme={null}
{
  "id": "...",
  "success": true,
  "version": "V1",
  "data": {
    "transaction": "AgABB...",  // Base64 kodlanmış işlem
    "addressLookupTableAddresses": ["Address1...", "Address2..."]  // Yalnızca V0 için
  }
}
```

## Entegrasyon Örneği

İşte sözde kodda tipik bir akış:

```typescript theme={null}
// 1. Teklif al
const quote = await fetch(
  'https://transaction-v1.raydium.io/compute/swap-base-in?' +
  'inputMint=EPjF...&outputMint=So111...&amount=1000000&slippageBps=50&txVersion=V0'
).then(r => r.json());

// 2. Teklifi doğrula
if (!quote.success) {
  throw new Error(quote.msg);
}

// 3. İşlem oluştur
const tx = await fetch(
  'https://transaction-v1.raydium.io/transaction/swap-base-in',
  {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      wallet: userWalletAddress,
      swapResponse: quote,
      txVersion: 'V0',
      computeUnitPriceMicroLamports: '1000',
      inputAccount: userInputTokenAccount,
      outputAccount: userOutputTokenAccount,
    }),
  }
).then(r => r.json());

// 4. Çöz ve imzala
const transaction = VersionedTransaction.deserialize(
  Buffer.from(tx.data.transaction, 'base64')
);
transaction.sign([userKeypair]);

// 5. RPC aracılığıyla gönder
const rpc = new Connection('https://api.mainnet-beta.solana.com');
const sig = await rpc.sendTransaction(transaction);
await rpc.confirmTransaction(sig);
```

## Önemli Parametreler Açıklandı

### `txVersion`

* **V0**: Adres Arama Tabloları (ALT'ler) içeren modern Solana işlemi. Daha küçük serileştirme boyutu, daha düşük ücretler.
* **LEGACY**: ALT öncesi işlem biçimi. Daha büyük, ancak tüm RPC uç noktaları ile çalışır.

Mümkün olduğunda **V0**'ı seçin; RPC'niz veya cüzdanınız ALT'leri desteklemiyorsa **LEGACY**'ye geri dönün.

### `computeUnitPriceMicroLamports`

Daha hızlı blok dahil edilmesi için öncelik ücreti. Öncelik ücreti olmadığında `0` olarak ayarlayın veya tıkız ağlarda rekabet etmek için daha yüksek değerler (örn. `1000`) kullanın. Birimler, işlem birimi başına micro-lamports'tur.

### `slippageBps`

Maksimum slippage toleransı basis points cinsinden. `100` = %1, `50` = %0,5.

* Çoğu stabil swap için daha düşük değerler (örn. 25–50 bps) kullanın
* Değişken veya düşük likidite çiftleri için artırın

### `wrapSol` ve `unwrapSol`

* **wrapSol**: `true` ise, API native SOL'unuzu WSOL'a sarar. `inputAccount` gerekmez.
* **unwrapSol**: `true` ise, API çıkış WSOL'u native SOL'a açar. `outputAccount` gerekmez.

Her ikisi de `false` ise, açık token hesapları sağlamanız gerekir.

## Ağ Uç Noktaları

| Ağ             | Mainnet                     | Devnet                             |
| -------------- | --------------------------- | ---------------------------------- |
| Ana Bilgisayar | `transaction-v1.raydium.io` | `transaction-v1-devnet.raydium.io` |
| Protokol       | HTTPS                       | HTTPS                              |

## Hata Kodları

Yaygın hata mesajları:

| Kod                       | Anlamı                                                     |
| ------------------------- | ---------------------------------------------------------- |
| `REQ_SLIPPAGE_BPS_ERROR`  | Slippage geçersiz veya aralık dışı                         |
| `REQ_INPUT_MINT_ERROR`    | Giriş mint adresi geçersiz                                 |
| `REQ_OUTPUT_MINT_ERROR`   | Çıkış mint adresi geçersiz                                 |
| `REQ_AMOUNT_ERROR`        | Miktar geçerli bir sayı değil                              |
| `REQ_TX_VERSION_ERROR`    | txVersion V0 veya LEGACY olmalıdır                         |
| `REQ_WALLET_ERROR`        | Cüzdan adresi geçersiz                                     |
| `REQ_INPUT_ACCOUT_ERROR`  | Giriş token hesabı eksik veya geçersiz                     |
| `REQ_OUTPUT_ACCOUT_ERROR` | Çıkış token hesabı eksik veya geçersiz                     |
| `UNKNOWN_ERROR`           | Sunucu tarafı hatası; istek parametrelerinizi kontrol edin |

## Ayrıca Bakınız

* [OpenAPI Şartnamesi](/tr/api-reference/openapi/route-api-v2.yaml)
* [Toplayıcı Entegrasyon Kılavuzu](/tr/integration-guides/aggregator)
