Інтеграція з Nexus Mutual
DeFi-протоколи втрачають коште користувачів через експлойти регулярно: Euler Finance — $197M, Beanstalk — $182M, Wintermute — $160M. Страхування on-chain перестало бути маркетинговою опцією та стало гігієнічним мінімумом для протоколів з TVL вище $1M. Nexus Mutual — єдиний зрілий децентралізований страховщик з реальними виплатами та прозорим underwriting pool. Інтеграція — не три строчки коду; це робота з нетривіальним API, кастомними продуктами покрття та on-chain governance.
Як влаштовано покрття Nexus Mutual
Nexus Mutual працює на базі mutual model: NXM-холдери є андеррайтерами та несуть ризик виплат. Покрття видається у вигляді Cover NFT (ERC-721) з параметрами: сума, валюта (ETH/DAI), період (30–365 днів), тип продукту.
З версії v2 (2023) структура змінилася принципово. З'явилися StakingPool — окремі пулы андеррайтерів під конкретні протоколи, та Products — налаштовувані параметри покрття. Це відкрило можливість для інтеграції прямо у UI протоколу: користувач страхує свою позицію, не уходячи на nexusmutual.io.
Типи покрття, доступні через API
Protocol Cover — покрття smart contract ризику конкретного протоколу. Виплачується при успішному on-chain голосуванні про визнання інциденту. Найбільш затребуваний тип.
Custody Cover — покрття ризику кастодіана (централізована біржа, кастодіальний гаманець). Актуально для yield-агрегаторів, які тримають коште на CEX.
EtherPosition Cover — покрття ризику ETH 2.0 staking через Lido, Rocket Pool та інші liquid staking протоколи.
Технічні деталі інтеграції
Cover Broker контракт
Пряма інтеграція йде через Cover Broker паттерн. Nexus Mutual надає інтерфейс ICover з функцією buyCover. Викликати його напрямки з UI без посередника неудобно — потрібно формувати CoverData структуру, передавати poolAllocationRequests. Cover Broker абстрагує це.
struct BuyCoverParams {
uint24 coverId; // 0 для нового покрття
address owner;
uint24 productId; // ID продукту в Nexus
uint8 coverAsset; // 0=ETH, 1=DAI
uint96 amount; // сума покрття
uint32 period; // у секундах
uint256 maxPremiumInAsset;
uint8 paymentAsset;
uint256 commissionRatio; // до 25% комісії брокеру
address commissionDestination;
bytes ipfsData;
}
Поле commissionRatio дозволяє протоколу заробляти на страхуванні своїх же користувачів — до 25% від премії йде у commissionDestination. Це реальна revenue stream, яку більшість інтеграторів ігнорує.
Отримання котировки (quote)
Котировка запитується через off-chain API Nexus Mutual (https://api.nexusmutual.io/v2), а не on-chain. Эндпоінт /quote приймає productId, period, coverAmount, coverAsset та повертає premiumInNXM, premiumInAsset та список poolAllocations — який StakingPool покриває яку долю ризику.
Ці poolAllocations потрібно передати в buyCover транзакцію. Якщо дані застарілі (> 10 хвилин), транзакція ревертується з CoverAmountNotAvailable. Типова помилка при інтеграції — кешувати котировку довше 5–7 хвилин.
Перевірка активного покрття on-chain
Після покупки користувач отримує Cover NFT на свій адрес. Для відображення статусу страховки в UI протоколу — запит до ICoverViewer:
function coverData(uint256 coverId) external view returns (CoverData memory);
Повертає productId, coverAsset, amountPaidOut, gracePeriod. Поле gracePeriod важливе: навіть після закінчення періоду покрття користувач може подати заявку на виплату у течение grace period (зазвичай 35 днів) якщо інцидент сталася до закінчення.
Процес роботи
Аналіза (0.5 дня): визначаємо тип покрття (Protocol/Custody/EtherPosition), список StakingPool з достатньою ємністю під ваш протокол, productId у системі Nexus.
Розробка Cover Broker контракту (1 день): обертка над ICover, перевірки параметрів, события для індексації.
Бэкенд-сервіс котировок (0.5 дня): кеш з TTL 5 хвилин, повтор при CoverAmountNotAvailable, fallback при недоступності API.
UI-компонент (1 день): форма страхування з вибором суми/періоду, відображення активних покриттів через ICoverViewer, уведомлення про закінчення.
Тестування (0.5 дня): fork-тесты на Ethereum mainnet через Foundry, перевірка граничних випадків (нульова ємність пулу, максимальний період).
Всього: 2–3 дні. Строки збільшуються якщо потрібна кастомна логіка розподілу премії або інтеграція з кількома типами покрття одночасно. Вартість рассчитується індивідуально.







