Genel Bakış
Metis, Jupiter’ın düşük seviyeli takas yönlendirme motorudur. Bir takas işleminin her boyutunu ayrıntılı biçimde kontrol etmeyi mümkün kılar: rota seçimi, talimat oluşturma, öncelik ücretleri, hesaplama birimi limitleri, kayma toleransı ve yayın. Jupiter Ultra’nın aksine Metis, bunları kendiniz yönetmenizi gerektirir — buna karşılık CPI, özel talimatlar veya belirli bir işlem yayın stratejisine ihtiyaç duyan entegrasyonlar için maksimum esneklik sunar. Metis’i şu durumlarda kullanın:- Kendi zincir üstü programınızla CPI (Çapraz Program Çağrısı)
- Takasın etrafında özel talimat oluşturma
- Öncelik ücretleri, hesaplama birimleri ve kayma toleransı üzerinde tam kontrol
- Kendi RPC’niz veya Jito yayını
- Kayma toleransını, ücretleri veya yayını yönetmeden uçtan uca yürütme istiyorsanız
- Yalnızca Ultra aracılığıyla kullanılabilen Gerçek Zamanlı Kayma Tahmincisine (RTSE) ihtiyacınız varsa
Metis Swap API erişimi, düğüm uç noktanızdaki
/jup yolu önekiyle OrbitFlare Özel Düğümler üzerinde mevcuttur. Barındırılan Jupiter API için https://api.jup.ag/swap/v1/... adresini x-api-key’inizle kullanın.Nasıl Çalışır
Teklif Alın
En iyi rotayı Metis yönlendirme motorundan almak için giriş mint, çıkış mint, miktar ve kayma toleransıyla
GET /swap/v1/quote çağrısı yapın.Takas İşlemi Oluşturun
Teklif yanıtını
POST /swap/v1/swap adresine gönderin. API, isteğe bağlı öncelik ücreti tahmini, dinamik hesaplama birimi limitleri ve dinamik kayma toleransıyla imzalanmaya hazır serileştirilmiş bir işlem döndürür.Adım 1 — Teklif Alın
Uç Nokta:GET /swap/v1/quote
Gerekli Parametreler
| Parametre | Açıklama |
|---|---|
inputMint | Giriş tokeninin mint adresi (örn. SOL için So11111111111111111111111111111111111111112) |
outputMint | Çıkış tokeninin mint adresi (örn. USDC için EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v) |
amount | Ondalıklardan önce giriş tokenlerinin ham tam sayı miktarı (SOL için lamport, diğerleri için atom birimi) |
slippageBps | Baz puanlarla maksimum kayma toleransı (örn. 50 = %0,5) |
Örnek — 1 SOL’u USDC’ye Teklif Et
Örnek Yanıt
Ek Teklif Seçenekleri
restrictIntermediateTokens
restrictIntermediateTokens
Yönlendirmenin yalnızca yüksek likiditeye sahip ara tokenlar üzerinden geçmesini sağlamak için
true olarak ayarlayın. Bu, likidite yetersizliğinden kaynaklanan yönlendirme hatalarını azaltır ve fiyata küçük potansiyel maliyet karşılığında rota kararlılığını iyileştirir.onlyDirectRoutes
onlyDirectRoutes
Yönlendirmeyi tek bir piyasayla kısıtlamak için
true olarak ayarlayın (çoklu atlama yok). Doğrudan rota yoksa teklif döndürmez. Olumsuz fiyatlar verebilir — dikkatli kullanın.maxAccounts
maxAccounts
İç takas talimatlarındaki toplam hesap sayısını sınırlar. Kendi talimatlarınız için yer bırakmanız gerektiğinde kullanışlıdır. Önerilen minimum
64’tür. Çok düşük ayarlamak, daha fazla hesap gerektiren DEX’leri düşürür (örn. Meteora DLMM 47’ye kadar gerektirir).platformFeeBps
platformFeeBps
feeAccount’unuza kredilendirilecek takasa bir ücret ekleyin. Takas isteğinde feeAccount ile birleştirin.Adım 2 — Takas İşlemi Oluşturun
Uç Nokta:POST /swap/v1/swap
Adım 1’den alınan teklif yanıtını kullanıcının genel anahtarıyla birlikte iletin. API, imzalanmaya ve gönderilmeye hazır serileştirilmiş base64 işlemi döndürür.
Yerleşim Optimizasyonlarıyla İşlem Oluşturun
Örnek Yanıt
Öncelik Ücreti Seviyeleri
priorityLevel | Yüzdelik | Kullanım Senaryosu |
|---|---|---|
medium | 25. | Düşük yoğunluk, zaman açısından kritik olmayan |
high | 50. | Standart alım satım koşulları |
veryHigh | 75. | Rekabetçi koşullar, MEV, zaman açısından kritik takaslar |
maxLamports’u güvenlik sınırı olarak ayarlayın:
Bunun Yerine Takas Talimatlarını Kullanma
Takası kendi talimatlarınızla oluşturmanız gerekiyorsa/swap/v1/swap yerine /swap/v1/swap-instructions kullanın. Aynı parametreleri alır ancak serileştirilmiş işlem yerine ayrı talimat nesneleri döndürür:
Adım 3 — Takas İşlemini Gönderin
Seri Dışı Bırakın, İmzalayın ve Serileştirin
YanıttakiswapTransaction alanı base64 kodludur. VersionedTransaction olarak seri dışı bırakın, imzalayın, ardından göndermek için tekrar binary’e dönüştürün:
İşlemi Gönderin
| Seçenek | Açıklama |
|---|---|
maxRetries | Vazgeçmeden önce maksimum yeniden deneme sayısı. Atlanırsa RPC, blok hash süresi dolana kadar yeniden dener. |
skipPreflight | Göndermeden önce imza doğrulamasını ve simülasyonu atlayın. Hıza duyarlı takaslar için true önerilir. |
İşlemi Onaylayın
Jito Aracılığıyla Yayın
Daha hızlı dahil edilme ve MEV koruması için Jito kullanmak istiyorsanızprioritizationFeeLamports’u Jito bahşişiyle değiştirin ve bir Jito RPC uç noktasına gönderin:
Gelişmiş
Dinamik Kayma Toleransı
Dinamik Kayma Toleransı
Takas isteğinde
dynamicSlippage: true etkinleştirin. Backend işlemi simüle eder ve uygun bir kayma toleransı değerini tahmin etmek için token kategorisine dayalı buluşsal yöntemler uygular.Not: Dinamik Kayma Toleransı geliştirmesi durdurulmuştur. Üretim kullanımı için Jupiter, Gerçek Zamanlı Kayma Tahmincisi (RTSE) içeren Ultra Swap API’sini önermektedir — önemli ölçüde daha doğru ve reaktif bir sistem.CPI (Çapraz Program Çağrısı)
CPI (Çapraz Program Çağrısı)
Ocak 2025 itibarıyla CPI aracılığıyla Jupiter Swap, zincir üstü program entegrasyonu için önerilen yöntemdir. Programınıza Ardından talimat işleyicinizden paylaşılan hesaplar rotasını çağırın. Tam referans uygulama için Jupiter CPI örneğine bakın.
jupiter-cpi crate’ini ekleyin:Flash Fill (Eski)
Flash Fill (Eski)
Flash Fill, Sürümlü İşlemleri ve Adres Arama Tablolarını kullanan CPI hesap boyutu sınırlamaları için önceki bir geçici çözümdü. Solana ana ağında Gevşetilmiş CPI kısıtlamaları yayınlandığından bu yana artık önerilmemektedir. Geçmiş referans için sol-swap-flash-fill’e bakın.
DEX Hesabı Gereksinimleri
DEX Hesabı Gereksinimleri
maxAccounts kullanırken, DEX başına tahmini hesap sayıları şunlardır (ALT’lar mevcut olduğunda min, olmadığında maks geçerlidir):| DEX | Maks. Hesap | Min. Hesap |
|---|---|---|
| Meteora DLMM | 47 | 19 |
| Meteora | 45 | 18 |
| Raydium | 45 | 18 |
| Raydium CLMM | 45 | 19 |
| Moonshot | 37 | 15 |
| Raydium CPMM | 37 | 14 |
| Pumpfun AMM | 42 | 17 |
| Pumpfun Bonding Curve | 40 | 16 |
| Orca Whirlpool | 30 | 12 |
| Obric | 30 | 12 |
| Solfi | 22 | 9 |
| Sanctum | 80 | 80 |
| Sanctum Infinity | 80 | 80 |
maxAccounts’u çok düşük ayarlamak, DEX’leri sessizce yönlendirmeden düşürür. Mümkün olduğunca yüksek tutun ve yalnızca işleminiz 1232 bayt boyut sınırını aşarsa azaltın.Gereksinimler ve Kaynaklar
OrbitFlare aracılığıyla Metis Swap API erişimi yalnızca Özel Düğümler üzerinde mevcuttur. API, özel düğüm uç noktanızdaki/jup yolu aracılığıyla veya doğrudan Jupiter API anahtarıyla https://api.jup.ag/swap/v1/... adresinden erişilebilir.
Resmi Metis Belgeleri
Tüm Metis uç noktaları, parametreler ve yanıt şemaları için eksiksiz API referansı.
Metis Binary (GitHub)
Yönlendirme motorunu kendi altyapınızda çalıştırmak için Jupiter’ın kendi kendine barındırılabilir Metis binary’si.
Jito Paket Simülasyonu
Gönderimden önce özel düğümünüzde Jito MEV paketlerini simüle edin ve doğrulayın.
Özel Düğümler
Metis Swap API erişimi dahil sınırsız RPS’li izole Solana altyapısı konuşlandırın.