פיתוח בוט טלגרם לניטור תיק קריפטו
תרחיש טיפוסי: סוחר מחזיק נכסים הפזורים על פני 5–10 רשתות – בבריכות נזילות של Uniswap, בסטייקינג של Lido, בהלוואות של Aave. כדי להעריך חשיפה כוללת וסיכוני פירוק, הוא צריך לפתוח 6 טאבים ולאסוף נתונים ידנית. הבוט שלנו אוסף נתונים מכל הרשתות בזמן אמת: הוא מציג תיק מאוחד, התראות הניתנות להתאמה אישית, ואירועים קריטיים. הפתרון מחזיר את עצמו תוך שבוע אם הוא מונע אפילו פירוק אחד מעל 1000$ – זה החיסכון שמדווחים המשתמשים שלנו. בנוסף, הבוט שלנו מחליף שירותי ניטור בתשלום שעולים עד 100$ לחודש – אתה מקבל את אותם נתונים ללא מנוי חודשי. לצוות שלנו יש ניסיון של 5+ שנים בפיתוח בלוקצ'יין וביצע 50+ פרויקטי ניטור. צור קשר – נבדוק את הבוט על הארנקים שלך בחינם ונראה לך איך הוא עובד.
בעיות שאנחנו פותרים
פיצול נתונים בין רשתות
כל רשת דורשת RPC נפרד או מפתח API. אנחנו מחברים את Ethereum, Polygon, Arbitrum, Optimism, Base ו-BNB Chain דרך Moralis Web3 API ליתרות טוקנים ו-DeBank API לפוזיציות DeFi. עבור Bitcoin ו-Solana, אנחנו משתמשים במתאמים נפרדים. כל הנתונים נאספים בצורה אסינכרונית באמצעות asyncio.gather. זמן התגובה של הבוט הוא פחות משתי שניות גם עם 50+ ארנקים.
עיכוב בהתראות מחירים
בדיקת מחירים כל 10 שניות היא יקרה ולא מדויקת. במקום זאת, אנחנו נרשמים לסטרימים של Binance ו-Bybit WebSocket (חינם) עבור 100 המטבעות המובילים. עבור אחרים, אנחנו משתמשים באירועי Chainlink price feed. שום תנועת מחיר לא מתפספסת: התראות מגיעות תוך 1–2 שניות. התראות WebSocket מהירות פי 10 מבדיקה כל 10 שניות.
ניטור Health Factor בפרוטוקולי הלוואות
ה-Health factor של Aave תלוי במחירי הבטוחה והחוב. אנחנו עוקבים אחריו דרך אירועי חוזה (Alchemy webhook) בכל שינוי, וכן בבדיקות תקופתיות על תנועות מחיר. אם ה-HF יורד מתחת ל-1.2, נשלחת התראה אוטומטית עם פעולות מומלצות.
איך להגדיר התראת Health Factor?
מדריך שלב-אחר-שלב לפקודה המובנית /addalert:
- בחר
health_factorמההצעות. - הזן את כתובת הארנק שכבר נוסף דרך
/addwallet. - הגדר סף, לדוגמה 1.2.
- בחר את הפרוטוקול (Aave V3, Compound V3). הבוט מזהה אוטומטית פוזיציות פעילות ומתחיל לנטר. כאשר ה-HF משתנה, הבוט שולח הודעה עם הערך הנוכחי וקישור ל-Etherscan.
ארכיטקטורת הבוט
Telegram Bot API (polling/webhook) ↓ Bot handler (aiogram 3.x, Python 3.11) ↓ Portfolio aggregator service ├── Price service (Binance WebSocket + CoinGecko REST) ├── Balance fetcher (Moralis Balance API / Alchemy Token API) ├── DeFi positions (DeBank API + прямые вызовы к Aave/Compound) └── Event listener (Alchemy webhooks для on-chain событий) ↓ Database (PostgreSQL + Redis cache) ├── user wallets (public addresses) ├── alert configurations └── cached portfolio snapshots (TTL: цены 30s, балансы 2-5 min) ↓ Alert scheduler (APScheduler cron + event-driven triggers) Redis הוא קריטי לקאשינג: כל בקשה של Telegram Bot API (polling/webhook) ↓ Bot handler (aiogram 3.x, Python 3.11) ↓ Portfolio aggregator service ├── Price service (Binance WebSocket + CoinGecko REST) ├── Balance fetcher (Moralis Balance API / Alchemy Token API) ├── DeFi positions (DeBank API + прямые вызовы к Aave/Compound) └── Event listener (Alchemy webhooks для on-chain событий) ↓ Database (PostgreSQL + Redis cache) ├── user wallets (public addresses) ├── alert configurations └── cached portfolio snapshots (TTL: цены 30s, балансы 2-5 min) ↓ Alert scheduler (APScheduler cron + event-driven triggers) לא פוגעת ב-API חיצוניים אלא שולפת נתונים מהקאש. זה מפחית עומס על שירותי צד שלישי ומאיץ תגובות פי 3–5.
השוואת מקורות נתונים
| מקור | סוג נתונים | עלות | מגבלות | זמן השהיה |
|---|---|---|---|---|
| Moralis Balance API | יתרות ERC-20 | עד 40 אלף בקשות ליום בחינם | 100 ארנקים לבקשה | ~1 שנייה |
| Alchemy Token API | יתרות ERC-20 | חינם (300M CU לחודש) | 3 בקשות בשנייה | ~0.5 שניות |
| DeBank API | פוזיציות DeFi | חינם (100 אלף בקשות ליום) | בקשה אחת בשנייה | ~2 שניות |
| Zerion API | פוזיציות DeFi | בתשלום (מ-49$ לחודש) | לפי תוכנית | ~1 שנייה |
| Binance WebSocket | מחירים | חינם | 1024 סטרימים | זמן אמת |
| Chainlink price feed | מחירים על-רשת | חינם (דרך נוד) | ~0.05$ לבקשה | ~בלוק אחד |
בחירה ב-Moralis ו-Alchemy על פני Zerion בתשלום חוסכת עד 50$ לחודש על חיבורי נתונים.
סוגי התראות
| סוג התראה | דוגמת הגדרה | זמן השהיה |
|---|---|---|
| שינוי מחיר | BTC -5% בשעה אחת | 1-2 שניות |
| Health factor | Aave HF < 1.2 | ~בלוק אחד |
| עסקה גדולה | > 100 אלף$ מהארנק | זמן אמת |
| תנועת לוויתן | כתובת מרשימת מעקב שלחה > 50 אלף$ | זמן אמת |
| טוקן חדש | ERC-20 לא ידוע הגיע לארנק | 1-2 שניות |
איך אנחנו עושים את זה: סטאק ויישום
סטאק: Python 3.11 + aiogram 3.x + asyncio. עבור כל משתמש אנחנו שומרים רשימת ארנקים ב-PostgreSQL (שאילתה אחת לכל פקודה). האגרגטור אוסף נתונים במקביל:
async def get_portfolio(wallets: list[str]) -> Portfolio: async with asyncio.TaskGroup() as tg: balance_task = tg.create_task(balance_fetcher.fetch_all(wallets)) defi_task = tg.create_task(defi_fetcher.fetch_all(wallets)) price_task = tg.create_task(price_service.fetch_prices()) return Portfolio(balances=balance_task.result(), positions=defi_task.result(), usd_values=price_task.result()) עיצוב פלט – HTML עם אימוג'ים, טבלאות, קישורי Etherscan. דוגמה:
/portfolio Ваш портфель (обновлено 2 сек назад): **Ethereum** ETH: 2.345 ($7,850) ↗ 1.2% USDC: 15,000.00 ($15,000) ▸ 0% Aave: депозит 10 ETH, долг 5,000 USDC, Health Factor: 1.45 **Polygon** MATIC: 5000 ($4,200) ↗ 3.1% Uniswap V3: MATIC/USDC (0.05%) — $2,300 למה אבטחה היא במרכז?
הבוט עובד רק עם כתובות ציבוריות. המשתמש אף פעם לא מזין מפתחות פרטיים או ביטויי גיבוי. במהלך ההתחברות אנחנו מצהירים במפורש: 'אין נתונים פרטיים.' אם הבוט מזהה ניסיון להזין טקסט הדומה למפתח פרטי (64 תווים הקסדצימליים או 12/24 מילים) – הפקודה מתעלמת, והמשתמש מקבל אזהרה. כתובות נשמרות בעמודה מוצפנת ב-PostgreSQL. להגבלת קצב – הגבלת קצב ברמת aiogram: לא יותר מ-30 פקודות לדקה למשתמש.
בכל שלב, אנחנו משתמשים בפתרונות מוכחים: לדוגמה, תיעוד Chainlink עבור price feeds או חוזי Aave הרשמיים עבור HF. זה מבטיח אמינות, מגובה במאות ביקורות.
תהליך עבודה להזמנה
- ניתוח – דנים באילו רשתות, פרוטוקולים, התראות נדרשות. 2. עיצוב ארכיטקטורה – בחירת מקורות נתונים, ספקים, קאשינג. 3. יישום הבוט – Python/aiogram, אינטגרציית Telegram Bot API, חיבורי API ו-WebSocket. 4. בדיקות – בדיקות יחידה על מטפלי פקודות, בדיקות אינטגרציה עם מוקי API, בדיקת עומס עם 100+ ארנקים. 5. פריסה – על Railway, Fly.io, או VPS משלך עם Docker. אנחנו מספקים תיעוד והוראות תפעול.
מה כלול
- בסיס: פקודות
/portfolio,async def get_portfolio(wallets: list[str]) -> Portfolio: async with asyncio.TaskGroup() as tg: balance_task = tg.create_task(balance_fetcher.fetch_all(wallets)) defi_task = tg.create_task(defi_fetcher.fetch_all(wallets)) price_task = tg.create_task(price_service.fetch_prices()) return Portfolio(balances=balance_task.result(), positions=defi_task.result(), usd_values=price_task.result()),/portfolio Ваш портфель (обновлено 2 сек назад): **Ethereum** ETH: 2.345 ($7,850) ↗ 1.2% USDC: 15,000.00 ($15,000) ▸ 0% Aave: депозит 10 ETH, долг 5,000 USDC, Health Factor: 1.45 **Polygon** MATIC: 5000 ($4,200) ↗ 3.1% Uniswap V3: MATIC/USDC (0.05%) — $2,300,/addwallet. - התראות למחיר, health factor, עסקאות גדולות.
- תמיכה בכל רשתות ה-EVM (Bitcoin/Solana – אופציונלי).
- קאשינג Redis לתגובה מהירה.
- תיעוד אדמין ופריסה.
- אחריות לתפקוד ושינויים תוך חודש מהמסירה.
לוח זמנים משוער
גרסה בסיסית – בין 2 ל-3 ימי עסקים. גרסה מורחבת עם פוזיציות DeFi ו-WebSocket – בין 5 ל-10 ימים. העלות מחושבת באופן אישי לאחר ניתוח דרישות. צור קשר כדי לדון בתרחיש שלך – נבחר את הארכיטקטורה האופטימלית. הזמן את בוט הטלגרם שלך לניטור תיק קריפטו – קבל ייעוץ למקרה שלך.
קוד לדוגמה לפקודת /portfolio (גרסה מלאה)
@router.message(Command("portfolio")) async def portfolio_command(message: Message): user = await get_user(message.from_user.id) if not user.wallets: await message.answer("Сначала добавьте кошелёк командой /addwallet 0x...") return async with asyncio.TaskGroup() as tg: pf = tg.create_task(aggregator.get_portfolio(user.wallets)) prices = tg.create_task(price_service.get_all_prices()) portfolio = pf.result() text = format_portfolio(portfolio, prices.result()) await message.answer(text, parse_mode="HTML") הזמן את בוט הטלגרם שלך לניטור תיק קריפטו – קבל ייעוץ למקרה שלך.







