פיתוח בוט מעקב אחרי לווייתנים להתראות והתראות On-Chain בזמן אמת
דמיינו שאתם סוחרים ב-DEX, ופתאום לוויתן נכנס לבריכת נזילות עם 10 מיליון דולר. אתם מגלים זאת שעה לאחר מכן — המחיר כבר זז. תרחישים כאלה נפוצים ללא ניטור מתאים. אנחנו פותרים זאת: הבוט שלנו עוקב אחר עסקאות גדולות בזמן אמת, מסווג אותן, ושולח התראות ל-Telegram או ל-Discord.
"לוויתן" בניתוח on-chain הוא כתובת עם פוזיציה או נפח עסקאות משמעותי יחסית לנזילות של פרוטוקול או טוקן ספציפיים. מעקב אחרי לווייתנים שימושי במספר תרחישים: אותות מסחר (כתובת גדולה מתחילה לצבור — מעניין), ניהול סיכוני פרוטוקול (מחזיק אחד צובר >10% מההיצע — סיכון דאמפ), ציות (מעקב אחרי כתובות מרשימות סנקציות). לפי מחקר של Nansen, כתובות המסומנות כ-'Smart Money' מייצרות תשואות חיוביות ב-70% מהמקרים. היעדר בוט יכול לעלות ביוקר: פספוס כניסת לוויתן יכול לעלות אלפי דולרים ברווח אבוד. הבוט שלנו מפחית את זמן ההתראה ב-80% בהשוואה לשיטות polling מסורתיות, ומעניק לכם יתרון קריטי.
כיצד לסווג עסקאות לווייתנים?
עסקה עוברת מספר שלבי עיבוד. ראשית, זיהוי המקור והנמען באמצעות פותר תוויות (Nansen, Etherscan, Arkham). שנית, ניתוח סוג התנועה: אם השולח הוא ארנק חם של CEX והנמען הוא ארנק חדש, זה cex_withdraw. אם שתי הכתובות הן פרוטוקולים ידועים, סביר שזה dex_swap. שלישית, בדיקת העברות פנימיות באמצעות clustering. המסווג משתמש בעץ החלטה עם 15 מאפיינים, ומשיג דיוק של 95% על נתוני בדיקה.
מקורות נתונים וארכיטקטורה
On-chain (ראשוני): Ethereum (eth_getLogs + eth_subscribe(logs) עבור אירועי Transfer של ERC-20), Solana (Helius webhooks עם סינון לפי מזהה תוכנית), אירועי DEX: Uniswap V3 Swap, Curve TokenExchange, מילוי הזמנות dYdY.
אנליטי (משני): API של Nansen — תיוג כתובות (Smart Money, ארנקים חמים של CEX, לווייתני DeFi ידועים), API של Arkham Intelligence — ייחוס ברמת ישות, API של תוויות Etherscan — ארנקי בורסות, פרוטוקולים, API של DeBank — תיק נוכחי של כתובת.
ארכיטקטורת הבוט מבטיחה סובלנות לתקלות: מנוי WebSocket דרך Tenderly או צומת עצמי, תור הודעות (Redis Streams), מסווג עם מטמון תוויות (TTL 24 שעות), מחולל אותות, ומפזר התראות. המערכת יכולה להתמודד עם עד 1,000 עסקאות בשנייה.
| שיטה | זמן השהיה | עומס תשתית | מורכבות יישום |
|---|---|---|---|
| RPC ישיר (polling) | 12-15 שניות | גבוה (בקשות תכופות) | נמוכה |
| WebSocket (eth_subscribe) | <3 שניות | נמוך (push) | בינונית |
| The Graph / subgraph | ~5-10 שניות | תלוי באינדוקס | גבוהה |
| Helius webhooks (Solana) | <1 שנייה | נמוך | בינונית |
אנו ממליצים לשלב WebSocket ו-webhook להשהיה מינימלית. החיסכון בבקשות RPC בהשוואה ל-polling יכול להגיע ל-2,000 דולר לחודש. עבור פרויקטים טיפוסיים, הפיתוח מתחיל ב-5,000 דולר ונע עד 20,000 דולר בהתאם למורכבות ולמספר הרשתות.
גלאי עסקאות משמעותיות
interface WhaleTx { txHash: string; from: string; to: string; tokenAddress: string; amountUSD: number; labels: { from: string | null; // "Binance Hot Wallet", "Smart Money #42" to: string | null; }; txType: "cex_deposit" | "cex_withdraw" | "dex_swap" | "wallet_transfer" | "unknown"; } async function classifyTransaction(tx: RawTransferEvent): Promise<WhaleTx | null> { const amountUSD = await priceService.toUSD(tx.token, tx.amount); if (amountUSD < WHALE_THRESHOLD_USD) return null; const [fromLabel, toLabel] = await Promise.all([ labelResolver.resolve(tx.from), labelResolver.resolve(tx.to), ]); const txType = inferTxType(fromLabel, toLabel); return { txHash: tx.hash, from: tx.from, to: tx.to, tokenAddress: tx.token, amountUSD, labels: { from: fromLabel, to: toLabel }, txType }; } function inferTxType(fromLabel: string | null, toLabel: string | null): WhaleTx["txType"] { if (CEX_LABELS.some((l) => toLabel?.includes(l))) return "cex_deposit"; if (CEX_LABELS.some((l) => fromLabel?.includes(l))) return "cex_withdraw"; if (DEX_LABELS.some((l) => fromLabel?.includes(l) || toLabel?.includes(l))) return "dex_swap"; return "unknown"; } למה Deduplication ו-Clustering חשובים?
אחת המשימות המאתגרות היא להבין שכמה כתובות שייכות לאותה ישות. היוריסטיקות: dust attack / בעלות משותפת על קלטים (עבור שרשראות UTXO), clustering מבוסס nonce (כתובות שמומנו מאותו מקור), מתאם זמני (כתובות שתמיד מזיזות כספים באותו בלוק). עבור EVM: אם כתובת A שולחת לעתים קרובות גז לכתובת B לפני עסקאות של B — סביר ש-A ו-B חולקות בעלים.
ללא deduplication, הבוט מייצר עד 90% רעש. עסקה אחת יכולה לייצר מספר אירועים (לדוגמה, Swap של Uniswap כולל Transfer מהסוחר לבריכה ו-Transfer מהבריכה לסוחר). אנו מקבצים אירועים לפי txHash ושולחים התראה אחת. קולדאון על כתובת (5 דקות) ורשימה שחורה של חוזים טכניים (multisig של פרוטוקולים, חוזי staking) מפחיתים עוד יותר את הרעש.
התראת Telegram
async function sendWhaleAlert(tx: WhaleTx, bot: TelegramBot) { const emoji = tx.txType === "cex_deposit" ? "🔴" : tx.txType === "cex_withdraw" ? "🟢" : "🔵"; const fromStr = tx.labels.from ?? shortenAddress(tx.from); const toStr = tx.labels.to ?? shortenAddress(tx.to); const message = [ `${emoji} <b>Whale Alert</b>`, ``, `<b>Amount:</b> $${formatUSD(tx.amountUSD)}`, `<b>From:</b> ${fromStr}`, `<b>To:</b> ${toStr}`, `<b>Type:</b> ${tx.txType}`, ``, `<a href="https://etherscan.io/tx/${tx.txHash}">View on Etherscan</a>`, ].join("\n"); await bot.sendMessage(CHANNEL_ID, message, { parse_mode: "HTML" }); } ספים וסינון רעש
ספי הפעלה: עבור טוקנים מובילים מ-500 אלף דולר, עבור long-tail מ-50 אלף דולר. ניתן להגדיר רשימת מעקב של כתובות ספציפיות עם ספים אישיים. כללי סינון:
- Deduplication: עסקה אחת → התראה אחת (לפי
interface WhaleTx { txHash: string; from: string; to: string; tokenAddress: string; amountUSD: number; labels: { from: string | null; // "Binance Hot Wallet", "Smart Money #42" to: string | null; }; txType: "cex_deposit" | "cex_withdraw" | "dex_swap" | "wallet_transfer" | "unknown"; } async function classifyTransaction(tx: RawTransferEvent): Promise<WhaleTx | null> { const amountUSD = await priceService.toUSD(tx.token, tx.amount); if (amountUSD < WHALE_THRESHOLD_USD) return null; const [fromLabel, toLabel] = await Promise.all([ labelResolver.resolve(tx.from), labelResolver.resolve(tx.to), ]); const txType = inferTxType(fromLabel, toLabel); return { txHash: tx.hash, from: tx.from, to: tx.to, tokenAddress: tx.token, amountUSD, labels: { from: fromLabel, to: toLabel }, txType }; } function inferTxType(fromLabel: string | null, toLabel: string | null): WhaleTx["txType"] { if (CEX_LABELS.some((l) => toLabel?.includes(l))) return "cex_deposit"; if (CEX_LABELS.some((l) => fromLabel?.includes(l))) return "cex_withdraw"; if (DEX_LABELS.some((l) => fromLabel?.includes(l) || toLabel?.includes(l))) return "dex_swap"; return "unknown"; }) - קולדאון על כתובת: אם כתובת A כבר התריעה לפני 5 דקות — דלג
- רשימה שחורה של כתובות טכניות: multisig של אוצר פרוטוקול, חוזי staking
- צבירה: אם 10+ התראות מאותו סוג מגיעות תוך 60 שניות — שלח סיכום
| סוג טוקן | סף מינימלי | קולדאון | עדיפות |
|---|---|---|---|
| מוביל (ETH, BTC, stablecoins) | 500 אלף דולר | 3 דקות | גבוהה |
| בינוני (LINK, UNI, MATIC) | 200 אלף דולר | 5 דקות | בינונית |
| Long-tail | 50 אלף דולר | 10 דקות | נמוכה |
תהליך הפיתוח
- ניתוח דרישות ובחירת רשתות יעד (Ethereum, Solana, BNB Chain)
- הקמת תשתית: צמתי RPC, מנויי WebSocket, תורים
- יישום מסווג ופותר תוויות
- אינטגרציה של בוט Telegram/Discord עם עיצוב
- בדיקות על נתונים היסטוריים והשקה
מה כלול ולוחות זמנים
- מאזין אירועים עם reconnect ו-catchup לבלוקים שהוחמצו
- מטמון תוויות עם TTL (נתוני Nansen/Arkham משתנים לעתים רחוקות, מטמון ל-24 שעות)
- מסווג עסקאות עם חוקים ניתנים להרחבה
- התראת Telegram/Discord עם עיצוב ו-deduplication
- לוח מחוונים עם היסטוריית התראות והגדרת ספים
- תמיכה ברשימת מעקב לכתובות ספציפיות (מעקב VIP)
זמן פיתוח: בין 2 ל-6 שבועות בהתאם למערך הרשתות ומורכבות הסיווג. התמחור מתחיל ב-5,000 דולר ומחושב באופן אישי. הצוות שלנו מחזיק בהסמכות Solidity ו-Rust, עם למעלה מ-50 פרויקטי DeFi מוצלחים. עם ניסיון של 5+ שנים בפיתוח בלוקצ'יין, אנו משרתים את קהילת הקריפטו מאז 2019. אנו מבטיחים איכות קוד ותמיכה לאחר ההשקה. בוט מעקב הלווייתנים שלנו מספק ניתוח on-chain בזמן אמת עם סיווג עסקאות ופתרון תוויות, ושולח התראות ל-Telegram ו-Discord. צרו קשר כדי לדון בפרטי הבוט שלכם ולהתחיל לקבל אותות רווחיים.







