Реалізація AI-детекції rug pull / скам-токенів у мобільному додатку
DeFi-гаманець без захисту від скама—це додаток, який допомагає користувачам втрачати гроші зручніше. Rug pull, honeypot, mint backdoor—ці атаки відбуваються не тому що користувачі глупі, а тому що on-chain паттерни скам-токенів неочевидні без автоматизованого аналізу. Завдання: вбудувати у мобільний додаток детектор, який попереджає до транзакції.
Що детектує AI-модель та звідки беруться сигнали
Скам-токен має характерні on-chain та bytecode-паттерни. Сигнали діляться на три рівні:
Bytecode-аналіз смарт-контракту. Honeypot—класика: функція покупки працює, функція продажу завжди откатується (revert). У байткоді видно як асиметрія у ветвленні transfer/transferFrom. Mint backdoor—скрита функція з модифікатором onlyOwner, яка дозволяє емітувати нові токени та розбавити сапплай. Renounced ownership без lock liquidity—частий паттерн rug: власник спалює ключі, але ліквідність не заморожена.
On-chain метрики. Концентрація холдерів: якщо топ-10 адрес держать >60% supply при рыночній капіталізації <$1M—червоний прапорець. Liquidity lock: через Unicrypt або Team.Finance можна перевірити, заперта чи ліквідність та на скільки. Вік контракту та кількість транзакцій: контракт старіший трьох днів з >500 транзакціями статистично менш рискований.
Соціальні сигнали. Telegram з накрученими учасниками, Twitter без органічної активності, невідповідність між кількістю холдерів та активністю в соцмережах. Слабкий сигнал сам по собі, але в комбінації з on-chain метриками збільшує точність.
Архітектура детектора
Класифікатор працює на сервері—on-device ML тут невдалий: дані для інференсу беруться з blockchain RPC та зовнішніх API, які мобільний клієнт не може кешувати локально.
Pipeline на сервері:
Адреса контракту
→ Bytecode через eth_getCode (RPC)
→ Disassembly (evm-disasm / whatsabi)
→ Feature extraction (function selectors, transfer patterns, owner checks)
→ On-chain metrics (holders, liquidity lock, age) через Etherscan/Dexscreener API
→ ML classifier (gradient boosting / XGBoost) → risk_score [0.0 – 1.0]
→ Risk label: LOW / MEDIUM / HIGH / CRITICAL
XGBoost показує хороші результати на табличних фічах без необхідності переобучати при кожному апдейті—достатньо дообучити на нових прикладах скамів. Precision ~91%, recall ~88% на датасеті з ~120 000 токенів (із публічних баз GoPlus Security, Token Sniffer).
Альтернатива—GNN (Graph Neural Network) на графі транзакцій: виявляє wash trading та координовані pump-and-dump через аналіз connected components. Дорожче в навчанні та деплої, але точніше для складних схем.
Мобільний клієнт: інтеграція без блокуючого UX
Користувач вводить адресу токена або сканує QR—додаток повинен попередити до того, як він натиснути «Підтвердити».
// Android: Coroutines + Retrofit
viewModelScope.launch {
val result = tokenRiskRepository.analyze(contractAddress)
when (result.riskLabel) {
RiskLabel.CRITICAL -> showBlockingWarning(result)
RiskLabel.HIGH -> showWarningDialog(result)
RiskLabel.MEDIUM -> showInlineWarning(result)
RiskLabel.LOW -> proceed()
}
}
Критично важливо: CRITICAL та HIGH—показуємо попередження з конкретними причинами ("Функція sell заблокована в контракті", "Ліквідність не заморожена"), а не просто "Це скам". Користувач повинен зрозуміти, чому. UX-антипаттерн—блокуючий діалог на кожний токен: wolf crying effect знижує довіру до попереджень.
Кешування та офлайн-режим
Risk score кешуємо на 15 хвилин на клієнті та 1 годину на сервері—контракт не змінюється так швидко. Cache key—contractAddress + chainId. В офлайн-режимі показуємо останній кешований score з timestamp. Якщо кешу немає—попереджуємо користувача, що перевірка недоступна.
На iOS: URLCache з diskCapacity: 50 * 1024 * 1024. На Android: OkHttp CacheInterceptor з тією ж логікою. Це знижує кількість API-запитів та latency при повторному відвідуванні токена.
Підтримка кількох мереж
EVM-сумісні мережі (Ethereum, BSC, Polygon, Arbitrum, Base)—один і той же аналізатор bytecode. Різні лише RPC endpoints та способи отримання холдерів. Solana—інша VM (SBF), потрібен окремий парсер для SPL-токен акаунтів через @solana/web3.js / Helius API. TON (Tact/FunC)—своя архітектура, готових детекторів менше.
Етапи внедрення
Визначення підтримуваних мереж → збір датасету скам-токенів → feature engineering + навчання класифікатора → серверний деплой → мобільна інтеграція (API клієнт + кеш + UI попереджень) → A/B тест з користувачами → моніторинг precision/recall у продакшені → дообучення на нових скамах.
Терміни: інтеграція готового API (GoPlus Security, Token Sniffer) у мобільний клієнт—2–3 тижні. Власний детектор з навчанням та серверним деплоєм—6–10 тижнів. Вартість розраховується індивідуально.







