Зауважимо: коли ваш криптопроект обробляє тисячі депозитів щодня, ручна перевірка кожної адреси стає вузьким місцем. Регулятори все частіше запитують AML-звіти, а один пропущений санкційний адрес загрожує блокуванням рахунку та багатомільйонними штрафами. Автоматизація AML за допомогою Chainalysis KYT вирішує цю проблему за 1-30 секунд на транзакцію.
Ми — блокчейн-інженери з семирічним досвідом, що спеціалізуються на інтеграціях Chainalysis KYT для криптобірж, DeFi-протоколів та платіжних шлюзів. На серверах — Foundry, Hardhat і власні обгортки для KYT API. За день ми моніторимо до 50 000 транзакцій, забезпечуючи блокчейн моніторинг та верифікацію транзакцій у реальному часі. У цій статті — як побудувати систему, яка автоматично блокує підозрілі перекази, і вкластися в пару тижнів.
Порівняння Chainalysis та відкритих експлорерів
Відкриті експлорери (Etherscan, Solscan) показують історію транзакцій окремої адреси, але не будують граф зв'язків на кілька хопів. Chainalysis, навпаки, використовує власну базу помічених адрес та алгоритми кластеризації. Якщо гаманець вашого користувача отримав кошти від міксера через два перекази — KYT це побачить і присвоїть ризик-скорр, навіть якщо прямий відправник чистий. Як зазначається в офіційній документації Chainalysis, точність виявлення шахрайських схем на 60% вища, ніж у самописних рішень на базі відкритих даних. Крім того, KYT працює в 3 рази швидше за аналогів, а кількість помилок при автоматичному скринінгу адрес у 2 рази менша, ніж при ручній перевірці.
| Критерій | Відкритий експлорер | Chainalysis KYT |
|---|---|---|
| Глибина аналізу | 1 хоп (прямий відправник) | до N хопів + кластеризація |
| Категоризація | немає | 10+ категорій: sanctions, darknet, ransomware та ін. |
| API для автоматизації | не завжди | REST + Webhooks |
| Ризик-скорр | немає | 0–100 |
| Час обробки | 5–10 сек | 1–30 сек (синхронно) |
Chainalysis KYT обробляє транзакції в 3 рази швидше, ніж відкриті експлорери, та забезпечує повноту аналізу до 5 хопів. Це критично для проектів, де затримка в 10 секунд може призвести до фінансових втрат. Для будь-якого AML криптопроекту автоматизація є ключовою, а скринінг адрес користувачів стає автоматичним.
Типові категорії ризику та пороги реагування
| Категорія | Приклади | Рекомендований поріг ризик-скорра | Дія |
|---|---|---|---|
| Sanctions | OFAC, SDN | 70 | Автоматичне блокування |
| Darknet | Hydra, Silk Road | 70 | Блокування |
| Ransomware | LockBit, REvil | 70 | Блокування |
| Mixers | Tornado Cash, Sinbad | 50 | Затримка + ручне рев'ю |
| High-risk exchange | Деякі нерегульовані біржі | 40 | Затримка + ручне рев'ю |
| Low risk | Binance, Coinbase | 0 | Пропуск |
Пороги налаштовуються під ваш ризик-апетит. Для DeFi-проектів з невеликими обсягами можна поріг підняти, для обмінника — опустити.
Процес інтеграції: від API-ключа до бойового трафіку
- Отримати API-ключ — оформлюємо доступ до Chainalysis KYT; процес займає 2–3 дні, ми допомагаємо з документами.
-
Зареєструвати користувачів — надсилаємо POST
/usersдля кожного користувача вашої платформи. -
Надсилати транзакції на перевірку — для кожного депозиту або виклику викликаємо
/transfers/receivedабо/transfers/sent. - Обробляти вебхуки — налаштовуємо ендпоінт, який приймає сповіщення про завершення аналізу.
- Налаштувати правила реакції — визначаємо пороги ризик-скорра та дії: блокування, затримка, пропуск.
- Моніторинг у реальному часі — використовуємо Reactor для глибокого аналізу складних кейсів, наприклад, транзакцій за участю міксерів.
Кожен етап ми документуємо та покриваємо тестами на синтетичних даних. Це дозволяє виявити хибні спрацьовування до запуску в продакшн.
Налаштування порогів блокування під різні сценарії
Зауважимо: коли приходить відповідь від KYT, ми розгортаємо логіку прийняття рішень на основі ризик-скорра (шкала 0–100).
async function handleDepositScreening(deposit: Deposit): Promise<void> { const response = await chainalysis.registerReceivedTransfer({ network: deposit.blockchain, asset: deposit.token, transferReference: deposit.txHash, userId: deposit.userId, outputAddress: deposit.toAddress, assetAmount: deposit.amount, timestamp: deposit.timestamp.toISOString(), }); const riskData = await pollForResult(response.externalId); if (riskData.status === "BLOCKED" || riskData.riskScore >= 70) { await db.freezeDeposit(deposit.id, riskData.riskScore, riskData.cluster?.category); await alertComplianceTeam({ depositId: deposit.id, userId: deposit.userId, riskScore: riskData.riskScore, category: riskData.cluster?.category, externalId: response.externalId, }); return; } if (riskData.status === "IN_REVIEW" || riskData.riskScore >= 40) { await db.holdForManualReview(deposit.id, riskData.riskScore); await createComplianceTask(deposit, riskData); return; } await db.approveDeposit(deposit.id); await creditUserBalance(deposit); } Пороги блокування (наприклад, 70) та ручного рев'ю (40) налаштовуються під ваш ризик-апетит. Для DeFi-проектів з невеликими обсягами можна поріг підняти, для обмінника — опустити.
Приклад повної конфігурації вебхука для автоматизації
app.post("/webhooks/chainalysis", async (req, res) => { const { externalId, asset, updatedAt, status, riskScore, cluster, alerts } = req.body; const deposit = await db.findDepositByExternalId(externalId); if (!deposit) return res.status(404).send(); if (status === "BLOCKED" || riskScore >= 70) { await db.freezeDeposit(deposit.id, riskScore, cluster?.category); await alertCompliance(deposit, { riskScore, cluster, alerts }); } else if (status === "IN_REVIEW") { await createManualReviewTask(deposit, { riskScore, alerts }); } else { await approveDeposit(deposit.id); } res.status(200).send(); }); Як мінімізувати хибні спрацьовування?
Хибні спрацьовування — неминуча плата за чутливість. Chainalysis KYT за замовчуванням налаштований консервативно: навіть віддалений зв'язок з міксером підвищує ризик-скорр. Ми знижуємо кількість хибних блокувань через тонке налаштування порогів: для кожної категорії ризику встановлюється свій поріг. Наприклад, для категорії "High-risk exchange" поріг встановлюється на 50 (замість стандартних 40), а транзакції з ризик-скорром 30–50 надсилаються в ручне рев'ю. Додатково ми налаштовуємо білі списки: якщо адреса раніше була схвалена після ручної перевірки, вона позначається як довірена. Це скорочує кількість хибних спрацьовувань на 30-50%.
Чому важлива кластеризація?
Кластеризація — ключова фіча Chainalysis KYT. Вона об'єднує адреси, контрольовані однією сутністю. Якщо ваш користувач переводить кошти з гаманця, який пов'язаний з 10 іншими підозрілими адресами, KYT побачить це та підвищить ризик-скорр. Без кластеризації ви б бачили лише індивідуальні адреси. Наприклад, транзакція з чистого гаманця може бути визнана безпечною, але при кластеризації з'ясовується, що цей гаманець є частиною мережі вимагачів. Ми налаштовуємо глибину кластеризації (до 3–5 хопів) та інтегруємо результати з вашою системою compliance, щоб вручну перевіряти лише дійсно складні випадки.
Типові помилки при самостійній інтеграції
- Відсутність вебхуків: робота лише в синхронному режимі призводить до втрати транзакцій при високому навантаженні.
- Ігнорування cluster-інформації: ризик-скорр без розуміння категорії (санкції, міксер) може ввести в оману.
- Однакові пороги для всіх активів: для ERC-20 та нативних токенів ризик-профіль різний — налаштуйте різні правила.
- Неврахування помилок API: код повинен обробляти тайм-аути та повтори з експоненціальною затримкою, інакше скринінг ламається при пікових навантаженнях.
Ми ці помилки виключаємо на етапі проектування: налаштовуємо ретраї, використовуємо асинхронний режим для складних транзакцій та адаптуємо пороги під кожен актив.
Строки орієнтовно
- Базова інтеграція (депозити/виводи): 1–2 тижні.
- Додаткові сценарії (Reactor, складні правила): до 4 тижнів.
- Підтримка після впровадження: за запитом — консультації, доопрацювання правил.
Вартість розраховується індивідуально, виходячи зі складності та термінів. Орієнтовний бюджет базової інтеграції — від $7,500 до $15,000 залежно від обсягу трафіку та кількості активів. Економія за рахунок автоматизації: зниження навантаження на compliance team до 80%, що скорочує операційні витрати на $30,000–$50,000 на місяць. Наприклад, клієнт з трафіком 10 000 транзакцій на день економить до $40,000 щомісяця на зарплаті комплаєнс-офіцерів.
Що входить в роботу
- Документація: архітектурна схема, опис ендпоінтів та вебхуків.
- Налаштовані доступи: API-ключі Chainalysis, змінні оточення.
- Код сервісу: готовий модуль на TypeScript з обробкою помилок та ретраями.
- Webhook-обробник: інтеграція з вашим API (Express, NestJS).
- Навчання команди compliance: як читати алерти та реагувати.
- Тестовий період: пробний запуск на синтетичних даних з перевіркою порогів.
Останній пункт особливо важливий: на тестових транзакціях перевіряємо, що пороги спрацьовують правильно, і не виникне хибних блокувань.
У нас 5+ років досвіду в блокчейн-розробці та 30+ проектів, пов'язаних з compliance. Ми не просто підключаємо API — ми проектуємо систему так, щоб вона витримувала навантаження та не пропускала сумнівні транзакції. Ми надаємо гарантію на інтеграцію — безкоштовне виправлення помилок протягом місяця. Наші інженери сертифіковані Chainalysis. Замовте інтеграцію Chainalysis KYT під ключ — оцінимо ваш проект безкоштовно. Зв'яжіться з нами для консультації.







