Skip to content
haybinalimPublic

About

Smart-money wallet finder & tracker: filters bots and panic sellers, ranks early buyers, Telegram alerts

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Avımsın (avimsin) 🏹

CI Python 3.12+ License: MIT Ruff

EN: Avımsın finds the wallets that bought a coin early, filters out bots and panic sellers, ranks the remaining smart-money wallets by performance and sends a Telegram alert when they buy together above your threshold. Python · on-chain analytics.

Smart wallet bulucu ve takipçi. Bir coin'i erken alan cüzdanları bulur, bot cüzdanlarını ve kağıt-elyaf (panik satan) cüzdanları eler, kalan smart wallet listesini performansa göre sıralar ve belirlediğiniz eşikte toplu alım olduğunda Telegram'dan haber verir.

Repo adı avimsin — GitHub Türkçe karakter desteklemediği için; proje adı Avımsın.

Ekran Görüntüleri / Screenshots

Görüntüler sahte demo verisiyle alınmıştır: testlerdeki sahte EVM zinciri (tests/fake_evm.py) üzerinde gerçek scan → filter → score CLI'ları çalıştırıldı; adresler ve miktarlar uydurmadır, gerçek cüzdan veya RPC verisi değildir. EN: Captured with fake demo data (the test suite's fake EVM chain) — not real wallets.

Streamlit paneli — cüzdan durumu (temiz / bot / kaçak satış) ve smart wallet sıralaması:

Avımsın Streamlit paneli: 12 temiz, 5 bot, 3 kaçak satış cüzdanı ve skor, winrate, net akış sütunlarıyla smart wallet sıralama tablosu

CLI — avimsin-filter özeti ve avimsin-score sıralama tablosu:

Terminalde avimsin-filter özeti (20 cüzdan: 12 temiz, 5 bot, 3 hızlı çıkış) ve avimsin-score ile skorlanmış 10 cüzdanın sıralama tablosu

Mevcut doğruluk sınırı

Bu sürüm transfer tabanlı bir göstergedir: token girişi doğrulanmış satın alma, token çıkışı satış değildir. Dump kuralı ilk geçerli girişten başlayan pencerede pozitif çıkış/giriş miktarını karşılaştırır; fiyat ve zarar koşulu henüz yoktur. Skorun oranı ekonomik winrate, net token akışı finansal P&L değildir. Skor/karar kayıtları hâlâ cüzdan genelindedir; farklı coinlerde ortak cüzdan sonuçları birbirini etkileyebilir. Gerçek swap, maliyet ve coin bazlı sonuç modeli eksiktir.

score yalnız verdict=ok cüzdanları işler; yeniden çalıştırma bu coin'in alıcılarına ait eski skorları atomik yeniler (çıktısız/uygunsuz olanları kaldırır). Boş filtre geçmişi temiz sayılmaz. CLI token birimi gösterir; DB'deki net akış tam tokene yuvarlanır, panel hassasiyeti bu aşamada düzeltilmiş değildir.

watch yalnız seçilen zincirin açıkça etiketli coinlerini izler. Mint/burn, sıfır/negatif ve öz-transferler sayılmaz. Sinyal hâlâ tek poll penceresindedir; kalıcı cursor, teslimat kuyruğu ve tekrar bildirimi engeli henüz yoktur.

Vizyon

Örnek senaryo: popüler bir ağda (örn. Robinhood Chain) bir meme coin çok yükselir. Avımsın o coini ilk alan 50 cüzdanı bulur; içinden:

  • Botları tespit edip listeden çıkarır,
  • Aldıktan sonra zarardayken yarısından fazlasını satanları listeden çıkarır,
  • Zamanla ekleyeceğiniz kurallarla listeyi temiz tutar.

Kalan smart wallet'lar; trade sayısı, kazanma oranı, kazanma miktarı ve işlem sıklığı gibi kategorilerde sıralanır. Bu cüzdanlardan en az N tanesi (sizin belirleyeceğiniz eşik, ör. 3 veya 5) bir coin aldığında Telegram bildirimi gelir.

Yol Haritası

Faz İçerik Durum
0 Repo kurulumu, Python ortamı, mimari iskelet ✅
1 Veri katmanı: erken alıcılar + transfer/swap geçmişi (Robinhood Chain, EVM RPC) ✅ (erken alıcılar; swap geçmişi Faz 2'de)
2 Filtre motoru: bot tespiti, kaçak satış kuralları (büyüyebilir kural seti) ✅ (fiyat-bağımsız kurallar; P&L bazlı zenginleştirme Faz 3'te)
3 Skorlama & sıralama: kazanma oranı, P&L, işlem sıklığı ✅ (fiyat-bağımsız; USD P&L Faz 4+ta)
4 Streamlit paneli: smart wallet listesini tarayıcıda görüntüleme ✅ (uv run streamlit run dashboard/app.py)
6 Oracle Free VPS'e 7/24 dağıtım (systemd) + Solana ve diğer EVM ağları ⏳ (VPS paketi: deploy/ — kurulum deploy/README.md; Solana: --chain solana)

Mimari

src/avimsin/
├── chains/          # Ağ adaptörleri (evm_base.py, robinhood.py, ... solana.py)
├── collectors/      # Veri toplama: alıcılar, transferler, swap'lar
├── filters/         # Kurallar: bot tespiti, kaçak satış ... (büyüyebilir)
├── scoring/         # Skorlama: winrate, P&L, frekans
├── alerts/          # Telegram bildirimleri (eşik bazlı)
├── storage/         # SQLite kalıcılık
└── config.py        # .env'den ayar okuma
dashboard/           # Streamlit paneli (Faz 4)
data/                # SQLite veritabanı (git'e girmez)

Yeni ağ eklemek = chains/ klasörüne yeni bir adaptör dosyası eklemek. Kod ağ-bağımsız yazılır; EVM ağları ve Solana aynı arayüzü kullanır.

Kurulum (geliştirici makinesi)

cd ~/Projects/avimsin
uv sync                # Python 3.12 sanal ortamını kurar, bağımlılıkları yükler
uv run avimsin-rpc     # RPC uçlarını sıralı ölçer; aynı ağ içinde karşılaştırır
uv run avimsin-scan <token> --from-block <blok>   # erken alıcıları topla, SQLite'a yaz
uv run avimsin-filter <token>   # alıcıları bot/kaçak satış kurallarından geçir
uv run avimsin-score <token>    # temiz cüzdanları winrate/P&L/frekans ile sırala
uv run avimsin-watch          # sinyal izleyici (Telegram'a bildirir)
uv run pytest                 # test ağı (sahte EVM/Solana zincirleri, ağ yok)

scan/filter/score/watch komutları --chain robinhood|solana bayrağıyla zincir seçer (varsayılan robinhood); Solana ucu .env'de RPC_SOLANA_* ile verilir, verilmezse public devnet ucu kullanılır.

Kayıtlı zincir ile --chain uyuşmazsa scan/filter/score RPC sorgusundan önce durur. Zinciri bilinmeyen eski kayıtlarda --chain açıkça verilmelidir; başarılı işlemde kayıt tamamlanır. Watch bilinmeyen zincirli coinleri atlar.

RPC Stratejisi

avimsin-rpc, .env içindeki tüm RPC_<AD> uçlarını sıralı yoklar; paylaşılan public RPC kotası için paralel istek göndermez. RPC_SOLANA* adları Solana getGenesisHash/getSlot, diğer adlar (eski RPC_ALCHEMY, RPC_QUICKNODE dahil) EVM eth_chainId/eth_blockNumber ile ölçülür. Tablolar protokol ve ağ kimliğine (genesis hash / chain ID) göre ayrılır. En hızlı uç ve 2 blok/slot üzerindeki gerilik yalnız aynı ağ içinde raporlanır; ölçülen gecikme iki çağrının toplamıdır, tek seferlik bir gözlemdir.

Komut yalnız raporlar: otomatik en-hızlı seçimi veya failover yoktur. scan/filter/score/watch adaptörleri, ayar adları alfabetik sıralandığında seçilen zincirin robinhood veya solana önekiyle eşleşen ilk ucu kullanır. Eşleşme yoksa Robinhood public mainnet, Solana public devnet kullanılır. Örneğin RPC_SOLANA_A_MAINNET, RPC_SOLANA_Z_BACKUP'tan önce seçilir; ikinci uç otomatik yedek değildir. RPC_ALCHEMY gibi genel adlar kontrol komutunda ölçülür ama bu adaptörler tarafından seçilmez. Bir sağlayıcıyı kullanmak için doğru ağa ait URL'yi RPC_ROBINHOOD_ALCHEMY veya RPC_SOLANA_HELIUS gibi zincir önekli bir adla tanımlayın; seçimi değiştirmek için eşleşen ayarları düzenleyin. Üretimde Solana devnet yerine mainnet ucunu açıkça yapılandırın.

Solana istemcisi normal çağrılar ve tüm retry isteklerinde aynı asgari aralığı uygular. 429 için 8 ek deneme; transport/502/503/504 için toplam 3 hata bütçesi vardır. Hata türü değişince bütçeler sıfırlanmaz. Pacing paylaşılan kotanın hiç dolmayacağını garanti etmez; tükenen bütçe açık hata üretir.

getTransaction legacy/v0/v1 için maxSupportedTransactionVersion=1 ister (resmî sözleşme). tests/fixtures/solana_v1.json, mainnet slot 447606860'tan gerçek JSON-parsed yanıttır: aynı imza max=0 ile -32015, max=1 ile başarı vermiştir. Fixture testi token hareketini çözümler; bu, bütün Solana geçmişinin eksiksiz tarandığı veya gerçek ekonomik P&L hesaplandığı iddiası değildir.

Geliştirme Akışı

main branch'i korunur; doğrudan push kapalıdır. Her değişiklik:

git switch -c feat/yeni-ozellik   # 1. feature branch
# ... geliştir, commit'le ...
git push -u origin feat/yeni-ozellik
gh pr create                      # Pull Request aç
gh pr merge --squash --delete-branch

Lisans / License

MIT © haybinalim

About

Smart-money wallet finder & tracker: filters bots and panic sellers, ranks early buyers, Telegram alerts

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages