Інтеграція з Set Protocol: створення токенізованих індексів

Інтеграція з Set Protocol (індекси) Ви вирішили запустити токенізований індекс — кошик з ETH, WBTC, USDC та інших активів, яким можна торгувати як єдиним [ERC-20](https://en.wikipedia.org/wiki/ERC-20) токеном. Без Set Protocol довелося б вручну писати контракти для емісії, погашення та ребалансув

Напрямки блокчейн-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1450
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1308
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1003
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1269
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    717
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1008

Інтеграція з Set Protocol (індекси)

Ви вирішили запустити токенізований індекс — кошик з ETH, WBTC, USDC та інших активів, яким можна торгувати як єдиним ERC-20 токеном. Без Set Protocol довелося б вручну писати контракти для емісії, погашення та ребалансування, слідкувати за ліквідністю та gas costs. Set Protocol дає готову модульну платформу, але її інтеграція вимагає розуміння внутрішніх механізмів: типи позицій, slippage в issuance flow, налаштування комісій.

Наш досвід показує, що 80% проблем виникають через некоректну обробку External позицій та динамічного slippage. За 5+ років роботи в DeFi ми розробили 30+ проєктів, включаючи інтеграції з Set Protocol, і знаємо, як уникнути типових помилок. Розкажемо, як це зробити.

Якщо ви пропустите етап аудиту складання індексу — ризикуєте отримати непрацюючий продукт з високими витратами на газ та втратою коштів при ребалансуванні. Зв'яжіться з нами для безкоштовної консультації.

Як мінімізувати slippage при емісії SetToken?

При емісії великого об'єму через DEX-орієнтований DebtIssuanceModule виникає slippage: компоненти закуповуються через Uniswap/SushiSwap і реальна ціна відрізняється від quoted. Set Protocol передає maxTokenAmountIn для кожного компонента, але якщо ринковий рух відбувся між quote та execution — транзакція реверсується.

Наша обгортка додає dynamic slippage tolerance: отримуємо quote, додаємо буфер 0.5-1%, встановлюємо deadline на 2-3 блоки. Це знижує ймовірність revert на 90% без суттєвого погіршення виконання. Гарантуємо, що відхилення від еталонної ціни не перевищить 2%.

Приклад реалізації dynamic slippage guard
function getDynamicSlippage(uint256 quotedAmount, uint256 blockNumber) internal view returns (uint256) { uint256 buffer = 0.01 ether; // 1% uint256 deadlineBlock = block.number + 2; return (quotedAmount * (100 + buffer)) / 100; } 

Чому важливо налаштувати StreamingFeeModule з обмеженням max fee?

Якщо не задати maxStreamingFeePercentage, власник індексу (менеджер) може в будь-який момент встановити комісію 100% на управління, що еквівалентно крадіжці коштів держателів. Тому при деплої обов'язково виставляйте розумний максимум — наприклад, 2-5%. Наші інженери завжди перевіряють цей параметр в рамках аудиту. Це знижує ризик rug pull і захищає користувачів.

Що входить в інтеграцію Set Protocol?

SetToken та його компоненти

SetToken зберігає список компонентів (components) з їхніми позиціями (units — кількість на 1 Set). При емісії через BasicIssuanceModule.issue() користувач вносить всі компоненти пропорційно, отримує SetToken. При redemption — зворотний процес.

Важливо: позиції в SetToken можуть бути Default (пряме володіння) та External (через yield-протокол, наприклад Aave aToken). Якщо в індекс входить aUSDC замість USDC — Set Protocol автоматично враховує нараховані відсотки в getPositionRealUnits(). Інтеграція повинна коректно обробляти обидва типи позицій, інакше розрахунок вартості портфеля буде невірним.

Порівняння підходів до ребалансування

Параметр Ручний TradeModule Автоматичний rebalancer
Швидкість реакції Миттєво До 1 блоку затримки
Ризик централізації Високий (один ключ) Низький (смарт-контракт) — знижує ризик в 10 разів
Складність Низька Висока (потрібен аудит)
Комісії Ті ж + газ Ті ж + газ

Frontend інтеграція

SDK Set Protocol (setprotocol/setjs) або прямі виклики через viem:

  • getSetDetails() — поточні компоненти та ваги
  • getIssuanceComponents() — скільки кожного токена потрібно внести для N Set
  • getRedemptionComponents() — що отримаєш при викупі N Set

Хук useSetTokenData агрегує дані з оновленням кожні 30 секунд через useInterval.

Як відбувається ребалансування індексу в Set Protocol?

Ручний rebalancing менеджером через TradeModule.trade() — найпростіший варіант. Менеджер викликає trade, модуль продає зайвий актив через вказаний DEX, купує потрібний. Це централізований підхід: єдиний приватний ключ менеджера = єдина точка відмови.

Для decentralized rebalancing інтегруємо з Index Coop-стилем: менеджер — це смарт-контракт з rebalance() функцією, яка викликається тільки при відхиленні ваг від target на X% (наприклад, 5%). Trigg-умова перевіряється через Chainlink price feeds. Згідно документації Chainlink, така схема знижує централізацію та підвищує прозорість.

Процес роботи

Аналітика (1-2 дні). Визначаємо склад індексу, механізм rebalancing, модулі (Issuance, Fee, Trade, Governance). Перевіряємо ліквідність компонентів на цільовому чейні.

Розробка (3-4 дні). Деплой SetToken через CreatorFactory, налаштування модулів, обгортка для issuance/redemption з slippage guard, frontend інтеграція. Тести на Ethereum mainnet fork.

Деплой (1 день). Через Gnosis Safe multisig, верифікація компонентів та модулів.

Терміни та вартість

Базова інтеграція з існуючим Set — від 3 днів. Створення власного індексу з rebalancing логікою — від 5 до 7 днів. Вартість розраховується після узгодження складу індексу та вимог до управління. Ми даємо фіксований кошторис без прихованих платежів.

Хочете запустити токенізовану стратегію без зайвих ризиків? Оцінимо ваш проєкт і запропонуємо оптимальне рішення. Отримайте консультацію вже сьогодні — наші інженери з 5+ роками досвіду допоможуть налаштувати Set Protocol під ваші завдання.