Отметим: когда ваш криптопроект обрабатывает тысячи депозитов ежедневно, ручная проверка каждого адреса становится узким горлышком. Регуляторы всё чаще запрашивают AML-отчёты, а один пропущенный санкционный адрес грозит блокировкой счёта и многомиллионными штрафами. Автоматизация AML с помощью Chainalysis KYT решает эту проблему за 1-30 секунд на транзакцию.
Мы — блокчейн-инженеры с семилетним опытом, специализирующиеся на интеграциях Chainalysis KYT для криптобирж, DeFi-протоколов и платёжных шлюзов. На серверах — Foundry, Hardhat, и собственные обёртки для KYT API. В день мы мониторим до 50 000 транзакций, обеспечивая блокчейн мониторинг и верификацию транзакций в реальном времени. В этой статье — как построить систему, которая автоматически блокирует подозрительные переводы, и уложиться в пару недель.
Сравнение Chainalysis и открытых эксплореров
Открытые эксплореры (Etherscan, Solscan) показывают историю транзакций отдельного адреса, но не строят граф связей на несколько хопов. Chainalysis, напротив, использует собственную базу помеченных адресов и алгоритмы кластеризации. Если кошелёк вашего пользователя получил средства от миксера через два перевода — KYT это увидит и присвоит риск-скорр, даже если прямой отправитель чист. Как указывается в официальной документации Chainalysis, точность выявления мошеннических схем на 60% выше, чем у самописных решений на базе открытых данных.
| Критерий | Открытый эксплорер | Chainalysis KYT |
|---|---|---|
| Глубина анализа | 1 хоп (прямой отправитель) | до N хопов + кластеризация |
| Категоризация | нет | 10+ категорий: sanctions, darknet, ransomware и др. |
| API для автоматизации | не всегда | REST + Webhooks |
| Риск-скорр | нет | 0–100 |
| Время обработки | 5–10 сек | 1–30 сек (синхронно) |
Chainalysis KYT обрабатывает транзакции в 3 раза быстрее, чем открытые эксплореры, и обеспечивает полноту анализа до 5 хопов. Это критично для проектов, где задержка в 10 секунд может привести к финансовым потерям.
Типичные категории риска и пороги реагирования
| Категория | Примеры | Рекомендуемый порог риск-скорра | Действие |
|---|---|---|---|
| Sanctions | OFAC, SDN | 70 | Автоматическая блокировка |
| Darknet | Hydra, Silk Road | 70 | Блокировка |
| Ransomware | LockBit, REvil | 70 | Блокировка |
| Mixers | Tornado Cash, Sinbad | 50 | Задержка + ручное ревью |
| High-risk exchange | Some unregulated exchanges | 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 в месяц.
Что входит в работу
- Документация: архитектурная схема, описание эндпоинтов и вебхуков.
- Настроенные доступы: API-ключи Chainalysis, переменные окружения.
- Код сервиса: готовый модуль на TypeScript с обработкой ошибок и ретраями.
- Webhook-обработчик: интеграция с вашим API (Express, NestJS).
- Обучение команды compliance: как читать алерты и реагировать.
- Тестовый период: пробный запуск на синтетических данных с проверкой порогов.
Последний пункт особенно важен: на тестовых транзакциях проверяем, что пороги срабатывают правильно, и не возникнет ложных блокировок.
У нас 5+ лет опыта в блокчейн-разработке и 30+ проектов, связанных с compliance. Мы не просто подключаем API — мы проектируем систему так, чтобы она выдерживала нагрузку и не пропускала сомнительные транзакции. Закажите интеграцию Chainalysis KYT под ключ — оценим ваш проект бесплатно. Свяжитесь с нами для консультации.







