Neden Whale Takibi
Solana ağında büyük cüzdanlar (whale) belirli tokenlara girdiğinde genellikle fiyat hareketi oluyor. Bu cüzdanları gerçek zamanlı takip edip erken sinyal almak için EYECAZ PREDATOR'u geliştirdim.
v15.0 ile gelen özellikler: 9 aktif whale cüzdanı takibi, otomatik yeni whale keşfi, cluster detection (birden fazla cüzdanın koordineli hareket etmesi), token scoring ve Telegram entegrasyonu.
Sistem Mimarisi
Uygulama dört bağımsız modülden oluşuyor. Her biri ayrı async task olarak çalışıyor:
- whale_tracker: Bilinen cüzdanları periyodik poll eder
- whale_discovery: Yeni büyük cüzdan adaylarını tarar
- cluster_detect: Koordineli hareketleri tespit eder
- telegram_commander: Komut arayüzü ve alarm gönderimi
async def boot():
tasks = [
asyncio.create_task(whale_tracker_loop()),
asyncio.create_task(telegram_commander()),
]
if AUTO_DISCOVER:
tasks.append(asyncio.create_task(whale_discovery_loop()))
if CLUSTER_DETECT:
tasks.append(asyncio.create_task(cluster_detection_loop()))
await asyncio.gather(*tasks)
Helius API ile Gerçek Zamanlı İzleme
Helius Premium, Solana RPC'sine kıyasla çok daha zengin işlem verisi veriyor: swap detayları, token transferleri ve NFT hareketleri tek endpointte.
async def fetch_wallet_transactions(address: str, limit: int = 50):
url = f"https://api.helius.xyz/v0/addresses/{address}/transactions"
params = {
"api-key": HELIUS_API_KEY,
"limit": limit,
"type": "SWAP"
}
async with aiohttp.ClientSession() as session:
async with session.get(url, params=params) as resp:
if resp.status == 429:
# Rate limit: backoff ve retry
await asyncio.sleep(HELIUS_429_BACKOFF_SEC)
return []
return await resp.json()
Helius ücretsiz planda dakikada 10 istek var. Premium'da bu limit çok daha yüksek ama yine de concurrent request sayısını sınırlandırın. asyncio.Semaphore(3) ile concurrent Helius çağrısını 3 ile sınırladım.
Token Scoring Motoru
Her token için bir skor hesaplanıyor. Yüksek skor = daha fazla whale ilgisi.
def score_token(token_address: str, db: sqlite3.Connection) -> float:
# Son 24 saatte kaç farklı whale aldı?
buyers = db.execute("""
SELECT COUNT(DISTINCT wallet) FROM whale_swaps
WHERE token_out = ? AND timestamp > ? AND action = 'BUY'
""", (token_address, time.time() - 86400)).fetchone()[0]
# Toplam hacim (USD)
volume = db.execute("""
SELECT COALESCE(SUM(usd_value), 0) FROM whale_swaps
WHERE token_out = ? AND timestamp > ?
""", (token_address, time.time() - 86400)).fetchone()[0]
# Küme bonusu
cluster_bonus = 1.5 if is_clustered(token_address, db) else 1.0
score = (buyers * 25 + min(volume / 1000, 50)) * cluster_bonus
return round(score, 2)
Küme Tespiti
Cluster detection, birden fazla whale'in kısa sürede aynı tokena girip girmediğini tespit ediyor. Bu koordineli hareketin en güçlü sinyali.
Algoritma: Son 2 saat içinde 3+ farklı whale aynı tokena 10 dakika içinde girdiyse cluster alarmı tetikleniyor.
Telegram Alarm Sistemi
Bot hem alarm gönderiyor hem de komut alıyor. Temel komutlar:
- /status — Sistem durumu ve aktif whale sayısı
- /top — En yüksek skorlu tokenlar
- /add <adres> — Yeni whale ekle
- /pause — Tracker'ı durdur
FastAPI + WebSocket Dashboard
Tarayıcı tabanlı dashboard, WebSocket üzerinden gerçek zamanlı güncellemeler alıyor. Login sayfasında JWT ile oturum yönetimi var.
WebSocket bağlantısında 403 alıyorsanız, CORS origin ayarına dikkat edin. Geliştirme sırasında allow_origins=["*"] kullanın, production'da kısıtlayın.