Ana içeriğe atla

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.

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 →

İş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:
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:
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)
  • txVersionV0 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:
{
  "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:
{
  "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ış:
// 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ı

MainnetDevnet
Ana Bilgisayartransaction-v1.raydium.iotransaction-v1-devnet.raydium.io
ProtokolHTTPSHTTPS

Hata Kodları

Yaygın hata mesajları:
KodAnlamı
REQ_SLIPPAGE_BPS_ERRORSlippage geçersiz veya aralık dışı
REQ_INPUT_MINT_ERRORGiriş mint adresi geçersiz
REQ_OUTPUT_MINT_ERRORÇıkış mint adresi geçersiz
REQ_AMOUNT_ERRORMiktar geçerli bir sayı değil
REQ_TX_VERSION_ERRORtxVersion V0 veya LEGACY olmalıdır
REQ_WALLET_ERRORCüzdan adresi geçersiz
REQ_INPUT_ACCOUT_ERRORGiriş token hesabı eksik veya geçersiz
REQ_OUTPUT_ACCOUT_ERRORÇıkış token hesabı eksik veya geçersiz
UNKNOWN_ERRORSunucu tarafı hatası; istek parametrelerinizi kontrol edin

Ayrıca Bakınız