Kripto quant ekipleri ve DeFi analitik platformları için piyasa verisi, stratejinin omurgasıdır. Ancak bu veriyi tutarlı ve düşük gecikmeyle toplamak, sandığınızdan çok daha karmaşık olabilir. Merkezi borsalar (CEX) rate limit uygular, IP'leri coğrafi olarak engeller ve 429 hatalarını hızla 451'e dönüştürür. Zincir üstü veri ise farklı bir dünyadır — RPC sağlayıcılarla doğrudan erişilebilir, ancak veri bütünlüğü ve sıralama garantileri kendi zorluklarını barındırır.
Bu rehber, crypto market data scraping sürecinin iki temel katmanını —CEX borsa verisi ve on-chain veri— birbirinden ayırarak, her biri için doğru mimariyi ve proksi stratejisini açıklar.
Kripto Piyasa Verisi Kazıma Neden Karmaşık?
Kripto piyasaları 7/24 çalışır, ancak veri kaynakları aynı erişilebilirlikte değildir. Bir arbitraj stratejisi yürüten quant ekibi, Binance ve OKX arasında fiyat farklarını milisaniyeler içinde yakalamalıdır. Bir DeFi analitik platformu, funding rate'leri ve liquidation verilerini eksiksiz kaydetmelidir. Sorun şu ki:
- CEX'ler public API endpoint'larında agresif rate limiting uygular.
- Binance gibi borsalar belirli ülkelerin IP'lerini engeller (451 Unavailable For Legal Reasons).
- On-chain veri için proxy'ler genellikle gerekmez, ancak RPC throughput sınırları başka bir darboğaz yaratır.
- WebSocket bağlantıları düşer, yeniden bağlanma stratejileri gerekir.
Bu sorunları çözmek için veri kaynağına özel bir yaklaşım şarttır.
Hedef Veri Türleri: CEX ve Zincir Üstü
CEX (Merkezi Borsa) Verileri
Merkezi borsalardan toplanan veriler, trading stratejilerinin ve risk modellerinin temel girdileridir:
- Fiyat akışları (Price feeds): Binance, Coinbase, OKX, Bybit üzerinden gerçek zamanlı ve tarihsel fiyat verisi.
- Orderbook snapshot'ları: Derinlik verisi, bid-ask spread analizi, likidite profili.
- Funding rate'ler: Perpetual vadeli işlemlerde long-short dengesini gösteren periyodik ödeme oranları.
- Liquidation verileri: Zorunlu kapatma olayları, likidasyon hacimleri, cascade riski göstergeleri.
- Hacim ve open interest: Piyasa dinamiklerini anlamak için kritik metrikler.
Zincir Üstü (On-Chain) Verileri
Blokzincir doğrudan okunabilir, ancak ham veri anlamlı bilgiye dönüştürülmelidir:
- İşlem (transaction) verisi: Transferler, swap'lar, mint/burn olayları.
- Event log'ları: DEX swap event'leri, AMM havuz değişimleri, governance oylamaları.
- Smart contract state: Mevcut token bakiyeleri, staking durumu, DAO treasury.
- Block metadata: Gas fiyatları, blok üretim süreleri, validator bilgileri.
Zincir üstü veriye erişim genellikle RPC sağlayıcılar (Alchemy, Infura, QuickNode) veya özel indeksleyiciler (The Graph, Envio) üzerinden gerçekleşir. Bu katmanlar, proxy'ye çok az ihtiyaç duyar — ancak istisnalar vardır.
CEX Kazıma İçin Proksiler Neden Kritik?
Exchange API proxies, merkezi borsa verisi toplamak için neredeyse zorunludur. Nedenini inceleyelim.
IP Tabanlı Rate Limiting
Binance'in public REST API'si, kimliği doğrulanmamış isteklerde IP başına dakikada 1200 request sınırı uygular. Bu, tek bir IP ile tüm market verisini çekmeye çalıştığınızda hızla yetersiz kalır. Orderbook snapshot'ları, kline verisi, funding rate'ler ve ticker bilgisi için ayrı endpoint'ler çağırdığınızda, bu limit dakikalar içinde tükenir.
OKX ve Bybit benzer şekilde IP bazlı limitler uygular. Coinbase ise daha konservatif bir yaklaşım benimser. Çözüm, residential proxy rotasyonu ile istek yükünü birden fazla IP'ye dağıtmaktır.
Coğrafi Kısıtlamalar ve 451 Hataları
Binance, ABD IP'lerinden gelen erişimi engeller. Binance.US ise yalnızca ABD IP'lerini kabul eder. Bu, tek bir veri toplama hattından her iki platformu da izleyen ekipler için ciddi bir engeldir. Binance proxy kullanımı, bu coğrafi kısıtlamaları aşmak için yaygın bir yöntemdir.
Sorun sadece 403 Forbidden ile sınırlı kalmaz. Agresif erişim denemelerinde 429 Too Many Requests hızla 451 Unavailable For Legal Reasons'e dönüşebilir. 451 kodu, borsanın sizi yalnızca rate limit aşımından değil, hukuki nedenlerle engellediğini gösterir — ve bu engeli kaldırmak çok daha zordur.
Pratik kural: CEX public endpoint'larına doğrudan sunucu IP'nizle yoğun istek göndermek, IP'nizin kalıcı olarak kara listeye alınmasına neden olabilir. Residential proxy rotasyonu, hem rate limit yönetimi hem de coğrafi erişim için kritik bir güvenlik katmanı sağlar.
Zincir Üstü Veri: RPC Sağlayıcılar Genellikle Yeterli
On-chain veri toplamak için proxy'ler genellikle gerekmez. Neden? Çünkü RPC sağlayıcılar (Alchemy, Infura, QuickNode) kimlik doğrulama ve API anahtarı tabanlı erişim sunar. Rate limit'ler API anahtarınıza bağlıdır, IP adresinize değil.
Ancak bazı durumlarda proxy kullanımı faydalı olabilir:
- Throughput artışı: Birden fazla RPC sağlayıcıya paralel istek gönderirken, her sağlayıcının kendi rate limit'i vardır. Farklı IP'lerden gelen istekler, sağlayıcı tarafında daha yüksek toplam throughput sağlayabilir.
- Coğrafi latency optimizasyonu: Belirli bir bölgedeki RPC node'larına daha düşük gecikmeyle erişmek için o bölgedeki proxy'leri kullanabilirsiniz.
- Redundancy: Bir RPC sağlayıcı hizmet dışı kalırsa, yedek sağlayıcıya geçişte IP tutarlılığı sağlamak için sticky session proxy kullanılabilir.
Genel olarak, on-chain veri toplama mimarisinde öncelik RPC sağlayıcı seçimi ve yapılandırması olmalıdır. Proxy'ler, bu mimarinin üzerine eklenen bir optimizasyon katmanıdır.
Mimari: WebSocket Öncelikli, REST Yedekli
Gerçek zamanlı kripto verisi için mimari seçimi, gecikme ve veri bütünlüğü arasında bir denge gerektirir.
WebSocket ile Gerçek Zamanlı Veri
Binance, OKX, Bybit ve Coinbase hepsi public WebSocket endpoint'leri sunar. WebSocket bağlantıları, REST'e kıyasla çok daha düşük gecikme ve daha az bant genişliği tüketimi sağlar. Bir quant stratejisi için WebSocket-first yaklaşımı zorunludur.
Ancak WebSocket bağlantıları için proxy kullanımı dikkat gerektirir. Sticky session (IP tutarlılığı) şarttır — çünkü her yeni bağlantıda IP değişirse, borsa bağlantıyı kopar ve yeniden bağlanma gecikmesi oluşur.
REST API ile Proksi Rotasyonu
Tarihsel veri, orderbook derinlik snapshot'ları ve funding rate sorgulamaları için REST API kullanılır. Bu endpoint'lerde her istek bağımsızdır, dolayısıyla per-request IP rotasyonu mümkündür. Residential proxy havuzundan dönen IP'lerle, rate limit'i IP başına dağıtmış olursunuz.
Mimari öneri:
- Gerçek zamanlı fiyat ve trade verisi → WebSocket + sticky session proxy
- Orderbook snapshot, funding rate, tarihsel kline → REST + rotasyonlu residential proxy
- On-chain event log'ları → RPC sağlayıcı (proxy isteğe bağlı)
- On-chain tarihsel veri → İndeksleyici (The Graph vb.) + RPC
Gecikme (Latency) Hususları
Kripto arbitraj ve market-making stratejileri için her milisaniye önemlidir. Proxy seçiminde gecikme, maliyet kadar kritik bir faktördür.
Borsa Lokasyonu ve Proxy Bölgesi Eşleşmesi
- Binance (AWS ap-northeast-1, Tokyo): Doğu Asya lokasyonlu proxy'ler en düşük gecikmeyi sunar. Japonya, Singapur, Güney Kore lokasyonları tercih edilmelidir.
- Coinbase (AWS us-east-1, Virginia): ABD Doğu Yakası proxy'leri idealdir. New York, Virginia lokasyonları milisaniyeler içinde yanıt alır.
- OKX (AWS ap-southeast-1, Singapur): Güneydoğu Asya proxy'leri en iyi seçimdir.
- Bybit (AWS ap-southeast-1, Singapur): OKX ile benzer bölge tercihleri.
ABD merkezli bir trading ekibi, Binance verisini Singapur proxy'si üzerinden çekerken; Asya merkezli bir ekip, Coinbase verisini ABD Doğu Yakası proxy'si üzerinden çekmelidir. Yanlış bölge seçimi, tek yönlü gecikmede 50-200ms fark yaratabilir — bu da arbitraj fırsatlarını kaçırmanıza neden olur.
Latency optimizasyonu: ProxyHat'ın konum bazlı yönlendirmesi ileuser-country-SG(Singapur) veyauser-country-US(ABD) parametrelerini kullanarak, borsa sunucusuna en yakın proxy lokasyonunu seçebilirsiniz.
Düzenleyici ve Etik Değerlendirme
Kripto veri toplama, teknik zorlukların ötesinde düzenleyici bir alan vardır. Aşağıdaki hususları göz önünde bulundurun:
Borsa Hizmet Şartları (ToS)
Çoğu CEX, hizmet şartlarında scraping'i açıkça yasaklar veya sınırlar. Binance'in ToS'u, API kullanımını belirli hız sınırlarıyla koşullandırır. Bu sınırları aşmak için proxy rotasyonu kullanmak, ToS ihlali anlamına gelebilir.
Ancak pratikte, public API endpoint'larından makul hızda veri çekmek, borsanın tolere ettiği bir kullanım modelidir. Agresif scraping, IP bloklama ve hesap askıya alma riskini artırır.
Coğrafi Kısıtlamalar ve Yerel Hukuk
Binance'in ABD IP'lerini engellemesi, ABD menşeli SEC düzenlemelerine uyum içindir. ABD'den Binance'e erişmek için VPN veya proxy kullanmak, ToS ihlali olduğu gibi, ABD menkul kıymetler hukuku kapsamında da risk oluşturabilir. Benzer şekilde, FCA (İngiltere) kısıtlamaları altındaki borsalara erişim, yerel düzenleyici çerçevede değerlendirilmelidir.
Öneri: Coğrafi kısıtlamaları aşmak, düzenleyici uyumluluk riski taşıyabilir. Erişmek istediğiniz borsanın hukuki durumunu ve kendi yargı alanınızın kurallarını mutlaka değerlendirin. ProxyHat, teknik araçları sağlar — hukuki uyumluluk sizin sorumluluğunuzdadır.
SEC, MiFID II ve Piyasa Verisi Lisansları
Toplanan veriyi ticari bir ürün olarak yeniden satmayı planlıyorsanız, piyasa verisi lisans gereksinimlerini inceleyin. MiFID II kapsamında, AB'de finansal enstrüman fiyatlarının yayımlanması belirli lisanslar gerektirebilir. SEC düzenlemeleri kapsamında ABD menkul kıymetleri için benzer kurallar geçerlidir.
Uygulama Örnekleri
Binance REST API ile Proxy Rotasyonu
Aşağıdaki Python örneği, Binance ticker verisini residential proxy üzerinden çeker:
import requests
# ProxyHat residential proxy - Singapur lokasyonu (Binance'e yakın)
proxy_url = "http://user-country-SG:PASSWORD@gate.proxyhat.com:8080"
proxies = {
"http": proxy_url,
"https": proxy_url,
}
def get_binance_ticker(symbol: str = "BTCUSDT"):
url = "https://api.binance.com/api/v3/ticker/price"
params = {"symbol": symbol}
try:
resp = requests.get(url, params=params, proxies=proxies, timeout=10)
resp.raise_for_status()
return resp.json()
except requests.exceptions.HTTPError as e:
if resp.status_code == 429:
print("Rate limit aşıldı. Proxy rotasyonu artırın.")
elif resp.status_code == 451:
print("Coğrafi engelleme. Proxy lokasyonunu değiştirin.")
raise
print(get_binance_ticker("ETHUSDT"))
Orderbook Snapshot ve Funding Rate Toplama
curl ile orderbook derinliği ve funding rate çekme:
# Binance orderbook snapshot - ABD proxy ile (Coinbase verisi için)
curl -x "http://user-country-US:PASSWORD@gate.proxyhat.com:8080" \
"https://api.binance.com/api/v3/depth?symbol=BTCUSDT&limit=100"
# OKX funding rate - Singapur proxy ile
curl -x "http://user-country-SG:PASSWORD@gate.proxyhat.com:8080" \
"https://www.okx.com/api/v5/public/funding-rate?instId=BTC-USDT-SWAP"
# Bybit orderbook - Japonya proxy ile
curl -x "http://user-country-JP:PASSWORD@gate.proxyhat.com:8080" \
"https://api.bybit.com/v5/market/orderbook?category=linear&symbol=BTCUSDT&limit=50"
WebSocket ile Gerçek Zamanlı Veri (Sticky Session)
WebSocket bağlantıları için IP tutarlılığı şarttır. ProxyHat'ta session parametresi ile sticky session oluşturun:
import asyncio
import websockets
import json
# Sticky session proxy - aynı IP'yi korur
proxy = "http://user-country-SG-session-ws1:PASSWORD@gate.proxyhat.com:8080"
async def stream_binance_trades(symbol: str = "btcusdt"):
ws_url = f"wss://stream.binance.com:9443/ws/{symbol}@trade"
# websockets kütüphanesi ile proxy kullanımı
async with websockets.connect(
ws_url,
proxy=proxy,
ping_interval=20,
ping_timeout=10
) as ws:
while True:
msg = await ws.recv()
data = json.loads(msg)
print(f"Trade: {data['p']} @ {data['q']} | Time: {data['T']}")
asyncio.run(stream_binance_trades())
Node.js ile Çoklu Borsa Veri Toplama
Farklı borsalardan paralel veri çekme ve zaman damgası bütünlüğünü sağlama:
const axios = require('axios');
const { HttpsProxyAgent } = require('https-proxy-agent');
// Borsa-lokasyon eşleşmeli proxy'ler
const proxies = {
binance: new HttpsProxyAgent('http://user-country-SG:PASSWORD@gate.proxyhat.com:8080'),
coinbase: new HttpsProxyAgent('http://user-country-US:PASSWORD@gate.proxyhat.com:8080'),
okx: new HttpsProxyAgent('http://user-country-SG:PASSWORD@gate.proxyhat.com:8080'),
};
async function fetchOrderbooks() {
const timestamp = Date.now();
const requests = [
axios.get('https://api.binance.com/api/v3/depth?symbol=BTCUSDT&limit=20',
{ proxy: proxies.binance, timeout: 5000 }),
axios.get('https://api.exchange.coinbase.com/products/BTC-USD/book?level=2',
{ proxy: proxies.coinbase, timeout: 5000 }),
axios.get('https://www.okx.com/api/v5/market/books?instId=BTC-USDT',
{ proxy: proxies.okx, timeout: 5000 }),
];
const results = await Promise.allSettled(requests);
const snapshot = {
timestamp_ms: timestamp,
binance: results[0].status === 'fulfilled' ? results[0].value.data : null,
coinbase: results[1].status === 'fulfilled' ? results[1].value.data : null,
okx: results[2].status === 'fulfilled' ? results[2].value.data : null,
};
return snapshot;
}
fetchOrderbooks().then(console.log);
Karşılaştırma Tablosu
Aşağıdaki tablo, CEX scraping ve on-chain veri toplama yaklaşımlarını karşılaştırmaktadır:
| Özellik | CEX REST Scraping | CEX WebSocket | On-Chain RPC | On-Chain İndeksleyici |
|---|---|---|---|---|
| Proxy Gereksinimi | Yüksek (rotasyon) | Orta (sticky session) | Düşük (isteğe bağlı) | Çok düşük |
| Rate Limit Riski | Yüksek | dDüşük (bağlantı başına) | Orta (API anahtarı bazlı) | Düşük |
| Coğrafi Kısıtlama | Yüksek (Binance, OKX) | Yüksek | Yok | Yok |
| Veri Bütünlüğü | Zaman damgası gerekli | Sekans numarası var | Block hash ile doğrulanır | İndeksleyiciye bağlı |
| Gecikme (Latency) | 100-500ms | 1-50ms | 50-200ms | 200ms+ |
| Uygun Proxy Tipi | Residential (rotasyonlu) | Residential (sticky) | Datacenter (düşük latency) | Genellikle gerekmez |
| Düzenleyici Risk | Orta-Yüksek | Orta-Yüksek | Düşük | Düşük |
Temel Çıkarımlar
- CEX ve on-chain veri ayrı mimariler gerektirir: Merkezi borsa verisi için proxy'ler neredeyse zorunludur; on-chain veri için RPC sağlayıcılar yeterlidir.
- WebSocket-first yaklaşım benimseyin: Gerçek zamanlı veri için WebSocket + sticky session proxy; tarihsel ve snapshot verisi için REST + rotasyonlu proxy kullanın.
- Proxy lokasyonu gecikmeyi belirler: Borsa sunucusuna en yakın bölgedeki proxy'leri seçin — Singapur OKX/Binance için, ABD Doğu Yakası Coinbase için.
- 429'dan 451'ye geçiş riskini yönetin: Agresif scraping, IP'nizin kalıcı olarak engellenmesine neden olabilir. Rate limit'i proxy rotasyonu ile dağıtın.
- Düzenleyici uyumluluğu ihmal etmeyin: Coğrafi kısıtlamaları aşmak, borsa ToS ihlali ve yerel hukuk riski taşıyabilir. Ticari veri yeniden satışı için lisans gereksinimlerini kontrol edin.
- Veri bütünlüğünü garanti edin: Zaman damgaları, sekans numaraları ve block hash'leri ile veri sıralamasını doğrulayın — özellikle çoklu kaynaktan veri birleştirirken.
Kripto piyasa verisi toplama mimarinizi kurarken, web scraping kullanım senaryolarımızı ve esnek fiyatlandırma seçeneklerimizi inceleyebilirsiniz. ProxyHat'ın küresel lokasyon ağı, Singapur, ABD Doğu Yakası ve Japonya gibi kritik borsa bölgelerinde düşük gecikmeli residential proxy erişimi sunar.
SSS
Binance'e erişirken 451 hatası alıyorum, ne yapmalıyım?
451 Unavailable For Legal Reasons hatası, IP'nizin coğrafi olarak engellendiğini gösterir. Binance, ABD IP'lerini engeller. Farklı bir ülkedeki residential proxy kullanarak bu engeli aşabilirsiniz — ancak bunun Binance hizmet şartlarını ihlal edebileceğini ve yerel düzenleyici riskler taşıyabileceğini unutmayın.
On-chain veri toplamak için proxy gerekir mi?
Genellikle hayır. RPC sağlayıcılar (Alchemy, Infura, QuickNode) API anahtarı tabanlı erişim sunar ve rate limit'ler IP'ye değil, anahtara bağlıdır. Ancak yüksek throughput gereksinimlerinde veya coğrafi latency optimizasyonunda proxy kullanımı faydalı olabilir.
WebSocket bağlantılarında hangi proxy stratejisi kullanılmalıdır?
WebSocket bağlantıları için sticky session (IP tutarlılığı) şarttır. Her yeniden bağlanmada IP değişirse, borsa bağlantıyı sonlandırabilir. ProxyHat'ta session parametresi ile (örneğin user-session-abc123) tutarlı bir IP atayabilirsiniz.
Kripto veri scraping için residential mı datacenter proxy mü?
CEX scraping için residential proxy tercih edilmelidir — borsalar datacenter IP'lerini daha kolay tespit eder ve engeller. On-chain RPC erişimi için ise datacenter proxy'ler, düşük gecikme avantajı sunabilir. Kullanım senaryonuza göre seçim yapın.
Birden fazla borsadan aynı anda veri çekerken zaman senkronizasyonu nasıl sağlanır?
Her veri noktasına istemci tarafında yüksek çözünürlüklü zaman damgası (milisaniye veya mikrosaniye) ekleyin. Borsa sunucularının zaman referanslarını karşılaştırarak clock drift'i tespit edin. NTP senkronizasyonu ve borsa server time endpoint'lerini kullanarak zaman farkını kalibre edin.






