Dexalot üzerine sürtünmesiz bir şekilde inşa edin — zincir içi karmaşıklığı soyutlayan ve tek bir istemcide ticaret, swap ve portföy yönetimine yönelik sorunsuz, üretim seviyesinde erişim sunan birleşik, asenkron-öncelikli bir SDK.
April 10, 2026 |
Eğer daha önce bir trading botu geliştirmeyi ya da on-chain bir borsa ile entegre olmayı denediyseniz, bunun ne kadar zor olduğunu biliyorsunuz. RPC endpoint’leri arasında gidip gelmek, nonce’ları yönetmek, işlemleri imzalamak, emir defterlerini (order book) ayrıştırmak, yeniden denemeleri (retries) ele almak — ve ilk emrinizi vermeden önce bunlar bitmiş olmalı. Omuzlarınızdaki bu yükü almak için Dexalot SDK'sını geliştirdik; böylece asıl önemli olana, yani trading mantığınıza odaklanabilirsiniz.
Bugün, topluluk için bunu açık kaynak yapıyoruz — hem Python hem de TypeScript'te.
Dexalot, merkezi limit emir defterini (CLOB) on-chain üzerinde çalıştıran merkezi limit emir defteri tabanlı bir merkezi olmayan borsadır. Likidite havuzu (liquidity pool) üzerinden swap yaptığınız AMM tabanlı DEX'lerin aksine Dexalot, geleneksel borsalar gibi alıcıları ve satıcıları eşleştirir — teklif (bids), talep (asks) ve gerçek bir emir defteri ile. Bu da yatırımcılara daha sıkı spread’ler, yürütme (execution) üzerinde daha fazla kontrol ve tanıdık bir deneyim sağlar.
Ancak on-chain bir CLOB ile programatik olarak etkileşim kurmak tarihsel olarak zorlu olmuştur. Kimlik doğrulamanız gerekir, cüzdan nonce’larını kopya işlemlere (duplicate transactions) yol açmamak için yönetmeniz gerekir, RPC sağlayıcısı arızalarını ele almanız gerekir ve blok zinciriyle ilgili özgün tuhaflıkları (quirks) takip etmelisiniz. Dexalot üzerinde bir şey inşa etmek isteyen her geliştirici, temelde aynı altyapıyı sıfırdan yeniden kuruyordu.
Dexalot SDK, bunların hepsini tek bir, temiz istemciye (client) paketler. Tek bir kurulum. Tek bir nesne (object). Trading, swap’lar, bakiyeler ve gerçek zamanlı piyasa verilerine tam erişim.
SDK, Dexalot protokolünün üç temel alanını kapsar ve hepsi tekleştirilmiş bir istemci aracılığıyla erişilebilir.
Emir Defteriyle Trading. Limit emir verin; emirleri tek tek ya da toplu şekilde iptal edin ve açık pozisyonlarınızı sorgulayın — hepsi basit yöntem çağrıları (method calls) üzerinden. SDK, arka planda on-chain işlem imzalamayı, nonce yönetimini ve gas tahminini halleder. Ayrıca batch işlemleri de destekler: tek bir işlem içinde birden fazla emir vermek, bir listeyi tek seferde iptal etmek veya eski emirlerinizin kaldırıldığı ve yeni emirlerin tek hamlede gönderildiği atomik iptal-et ve yerine-koy (atomic cancel-and-replace). Piyasa yapıcılar (market makers) ve aktif trader’lar için bu, daha az round-trip ve daha düşük gecikme (latency) anlamına gelir.
Basit Swap’lar. Her trade bir limit emir gerektirmez. SDK, bir teklif talebi (request-for-quote, RFQ) swap akışını içerir: gösterge niteliğindeki fiyatlamayı kontrol etmek için yumuşak (soft) bir quote alın, 30 saniyelik bir geçerlilik süresi penceresi içinde net (firm) bir quote'u kilitleyin ve execute edin — üç adım, emir defteri yönetimi gerekmez. Tek seferlik işlemler veya basit bir "token A'yı token B ile swap et" arayüzüne ihtiyaç duyan uygulamalar için idealdir.
Portföy ve Transferler. Portföyünüzdeki ve bağlı zincir cüzdanlarınızdaki bakiyelerinizi kontrol edin. Desteklenen zincirlerden token’ları Dexalot portföyünüze yatırın, geri çekin ve gas'ı yönetin — hepsi programatik olarak. Bir dashboard, portföy takipçisi (portfolio tracker) ya da otomatik yeniden dengeleme (rebalancing) sistemi geliştiriyorsanız, bu yöntemler ihtiyacınız olan her şeyi size verir.
DeFi olgunlaştıkça, "bir DEX'te manuel olarak işlem yapabiliyorum" ile "bir DEX'te üretim (production) sistemleri inşa edebilirim" arasındaki farkın gerçek fırsatın yaşandığı yer olduğu ortaya çıkıyor. Botlar, agregatörler (aggregators), portföy yöneticileri (portfolio managers), analitik platformlar — hepsi güvenilir programatik erişime ihtiyaç duyar. Bu SDK da tam olarak bunu sağlar.
Python ve TypeScript için yerel SDK'lar gönderiyoruz — kripto geliştirmesine hâkim olan iki dil. Python, nicel işlemcilerin, veri bilimcilerin ve bot geliştiricilerin yaşadığı yerdir. TypeScript ise ekosistemin çalıştığı pek çok alanda kullanılan web ön yüzlerini, Node.js servislerini ve serverless fonksiyonları destekler. İki SDK da aynı tasarım felsefesini paylaşıyor: önce async yaklaşımı, yerleşik hata yönetimi, tip güvenliği ve üretime hazır varsayılanlar. FastAPI tabanlı bir işlem (trading) servisi mi yazıyorsunuz yoksa Next.js portföy gösterge paneli mi, size birinci sınıf bir istemci (client) veriliyor — REST API'nin üstüne ince bir sargı (thin wrapper) değil.
Sadece birkaç API uç noktasını sarmalayıp “bitti” demedik. SDK, üretim iş yüklerini düşünerek tasarlandı ve öne çıkarılması gereken birkaç mimari tercih var.
Başından itibaren async. Her bir I/O işlemi asenkron. Python SDK'sı asyncio üzerine kurulu; TypeScript SDK ise yerel async/await ve Promises kullanır. İçeride gömülü biçimde hiçbir thread yok, hiçbir engelleyici (blocking) çağrı bulunmuyor. Bu da SDK'nın modern async framework'lerle uyumlu çalışmasını ve eşzamanlı (concurrent) işlemleri sürpriz olmadan yönetebilmesini sağlar. Birden fazla çifti (pairs) izleyen ve emirleri (orders) yöneten bir işlem servisi çalıştırıyorsanız, async opsiyonel değil — vazgeçilmez.
Sizi yormayan akıllı önbellekleme. SDK, borsa verilerinin gerçekte nasıl davrandığıyla eşleşen dört katmanlı bir önbellek (caching) sistemi kullanır. Dağıtım (deployment) yapılandırmaları gibi statik veriler neredeyse hiç değişmediği için bir saat boyunca önbelleklenir. Token ve işlem çifti (trading pair) meta verileri her 15 dakikada bir yenilenir. Bakiye verileri 10 saniye yaşar. Emir defteri (order book) anlık görüntüleri sadece bir saniye sonra geçerliliğini yitirir. Her katmanda makul varsayılanlar var; ancak her TTL'i (Time To Live) kullanım senaryonuza uyacak şekilde ayarlayabilirsiniz — ya da geliştirme sırasında önbelleği tamamen kapatabilirsiniz. Motorun içinde, sürü (stampede) koruması da bulunur: aynı anda on eşzamanlı istek, önbellekte olmayan aynı veriyi isterse, yalnızca biri onu gerçekten çeker. Diğerleri bu tek sonucun gelmesini bekler. Önbellek kaçırmalarında API'leri çökertme potansiyeli olan “thundering herd” problemine karşı bunu yapar.
Otomatik yeniden denemeler ve hız sınırlama. Ağ kesintileri (hiccups) olur. RPC sağlayıcıları çöker (down). SDK, üstel geri çekilme (exponential backoff) ile yapılandırılabilir yeniden deneme (retry) mantığı içerir — ilk başarısızlıkta pes etmeyecektir, ama aynı zamanda zor durumda kalan bir uç noktayı da spamlamaz. Hız sınırlama (rate limiting) de yerleşiktir; token-bucket yaklaşımı kullanılarak, server tarafı limitlerin içinde kalmanızı sağlar ve bunu düşünmeniz gerekmez.
RPC sağlayıcı failover (yedek devralma). Birincil RPC uç noktanız hata vermeye başlarsa, SDK otomatik olarak bir yedeğe geçer. Her chain için birden fazla sağlayıcı yapılandırabilir, başarısızlık eşiklerini belirleyebilir ve soğuma (cooldown) süreleri tanımlayabilirsiniz. Tüm sağlayıcılar devre dışı kalırsa, en son çalıştığı bilinen sağlayıcıya geri döner. Üretim sistemleri için bu tür bir dayanıklılık “olsa iyi olur” değil — gerekliliktir.
Varsayılan olarak güvenlik. Özel anahtarlar (private keys), cüzdan (wallet) hesabı oluşturulduktan hemen sonra yapılandırma (configuration) nesnesinden temizlenir. SDK, açıkça bu korumayı override etmedikçe şifrelenmemiş HTTP RPC uç noktalarını reddeder. Hata mesajları uygulamanıza ulaşmadan önce sanitize edilir; dosya yollarını, RPC URL'lerini ve altyapı detaylarını sızdırabilecek stack trace'leri kaldırır. Hatta hassas değerleri yerel olarak saklamak için şifreli bir secrets vault da bulunur — anahtarlarınız Fernet şifreleme kullanılarak “at rest” şifrelenir ve vault dosyasında yalnızca anahtar adları görünür.
Çağrılması gereken bir tasarım tercihi, SDK'nın hataları nasıl yönettiğidir. Beklenen hatalar için — bir ağ zaman aşımı, reddedilmiş bir emir, bir on-chain revert — özel durum (exception) fırlatmak yerine her işlem bir Result nesnesi döndürür. .success değerini kontrol edersiniz ve doğruysa veriniz .data içindedir. Yanlışsa, insan tarafından okunabilir bir hata mesajı .error içindedir.
Bunun küçük bir şey gibi görünebilirsiniz, ama pratikte büyük fark yaratır. Async kodda exception temelli hata yönetimi karmaşık ve anlaşılması zor olabilir. Result deseni arızaları açık ve öngörülebilir hale getirir. Trading bot'unuz 3 AM'de ağdaki küçük bir kesinti nedeniyle işlenmemiş bir exception yüzünden çökmeyecek — başarısız bir sonucu görecek ve bununla ilgili olarak mantığınızın gerektirdiği neyse onu yapacaktır.
Canlı piyasa verisine ihtiyaç duyan uygulamalar için SDK, opsiyonel bir WebSocket yöneticisi içerir. Belirli işlem çiftleri için emir defteri (order book) güncellemelerine abone olun ve asenkron geri çağırmalar (async callbacks) üzerinden event'ler alın. Bağlantı yeniden bağlanmayı otomatik olarak yönetir ve callback'ler asenkron çalışma zamanınıza doğal şekilde entegre olur — Python'da asyncio olsun ya da TypeScript'te Node.js event loop'u olsun. Bu özellikle, emir defterindeki değişikliklere gerçek zamanlı olarak tepki vermesi gereken market-making bot'ları için faydalıdır.
Python SDK PyPI üzerinde, TypeScript SDK ise npm üzerinde mevcuttur. İkisi birinden birini kurun, birkaç ortam değişkeni ayarlayın ve emir defterlerini okuyorsunuz. Eğer işlem yapmak istiyorsanız, imzalama anahtarınızı ekleyin — ya şifrelenmiş secrets vault üzerinden ya da bir signer nesnesini doğrudan vererek (ham anahtarınız hiçbir zaman bir config dosyasına dokunmasın diye ikincisini öneriyoruz).
Dokümantasyon; her ana iş akışı için kopyala-yapıştır örnekleri içeren bir kullanıcı kılavuzu, iç detayları anlamak isteyen katkıda bulunanlar için bir mimari genel bakış ve performansı ayarlamak için bir caching kılavuzu içerir. Tüm resmi görmek istiyorsanız oradan başlayın. Doğrudan koda atlamak isterseniz, başlangıç (getting-started) eğitimi kurulumdan ilk işleminize kadar olan süreci kapsar.
SDK tek başına bir ada değil. Geliştiricilerin zaten kullandığı daha geniş araç (tooling) ekosistemine uyacak şekilde tasarlanmıştır. async-first mimari, FastAPI ve Express gibi framework'lerle sorunsuz şekilde entegre olmasını sağlar. Yapılandırılmış JSON logging seçeneği, her satırda bir event üretir; zaman damgaları (timestamps) ve metadata alanlarıyla birlikte — Datadog, Loki, Grafana ya da takımınızın kullandığı herhangi bir log aggregator'a hazır. Konfigürasyon ortam değişkenleri, .env dosyaları veya constructor argümanları üzerinden akar; bu yüzden yerelde çalışıyor olsanız da Docker içinde çalışıyor olsanız da Kubernetes üzerinde çalışıyor olsanız da aynı şekilde çalışır.
Birden fazla ortamda çalışan takımlar için SDK, aynı süreç içinde hem testnet hem mainnet işlemlerini birlikte yönetir. Cache namespace'leri endpoint'e göre ayrılır; böylece bir testnet client'ı ile bir mainnet client birbirlerinin verilerini kirletmez. Ortamlar arasında geçiş yapmak için tek bir konfigürasyon değerini değiştirmeniz yeterlidir.
Bu sürüm; temel trading, swap ve portfolio işlemlerini kapsar. Topluluk geri bildirimlerine dayanarak SDK'yı genişletmek için aktif olarak çalışıyoruz. Görmek istediğiniz bir özellik varsa, repodaki bir issue'yu açın — ya da daha da iyisi bir pull request açın.
Geleneksel borsa altyapısının performansını ve hassasiyetini DeFi'ye taşımak için Dexalot'u inşa ettik. Python ve TypeScript SDK'larımız, bunu terminali ve bir fikri olan her geliştirici için erişilebilir hale getirmenin yoludur.
Hem Dexalot Python SDK hem de TypeScript SDK açık kaynaklıdır. Tam dokümantasyon, örnekler ve katkıda bulunma yönergeleri için depoları kontrol edin.
Python SDK | GitHub: github.com/Dexalot/dexalot-sdk-python
Python SDK | PyPi: pypi.org/project/dexalot-sdk
TypeScript SDK | GitHub: github.com/Dexalot/dexalot-sdk-typescript
TypeScript SDK | NPM: npmjs.com/package/@dexalot/dexalot-sdk
İyi ticaretler.