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

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Інтеграція з Set Protocol (індекси)
Середній
~3-5 днів
Часті запитання

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

Етапи блокчейн-розробки

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

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

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

Set Protocol — інфраструктура для токенізованих кошиків активів. В основі: SetToken — ERC-20, який представляє пропорційну долю в наборі активів. Власник 1 SetToken володіє, наприклад, 0.1 WETH + 0.05 WBTC + 50 USDC одночасно. Протокол управляє ребалансуванням, видачею та выкупом через модульну архітектуру. Інтеграція потрібна, коли проект хоче запропонувати користувачам готові портфельні стратегії: індекс DeFi top-10, 50/50 ETH/BTC, стратегія momentum trading — без необхідності будувати цей механізм з нуля.

Ключові контракти Set Protocol v2

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

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

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

Потік видачі та проскальзування

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

Наша обгортка додає динамічний допуск проскальзування: отримуємо quote, додаємо буфер 0,5-1%, встановлюємо дедлайн на 2-3 блоки. Це зменшує ймовірність revert без суттєвого гіршого виконання.

Що будується при інтеграції

Компонент управління індексом

Якщо клієнт хоче створити власний Set (не просто використовувати існуючий):

// Створення SetToken через SetTokenCreator
ISetTokenCreator(creator).create(
    components,      // адреси токенів
    units,           // позиції (18 decimals)
    modules,         // [BasicIssuanceModule, StreamingFeeModule, ...]
    manager,         // адреса менеджера (multisig або контракт управління)
    name,
    symbol
);

StreamingFeeModule — важливий елемент для монетизації: комісія управління списується раз на рік через розбавлення пропозиції. Налаштування: feeRecipient, maxStreamingFeePercentage (максимум), streamingFeePercentage (поточна). Без явного обмеження max fee менеджер може поднять комісію до 100% — rug pull через комісію.

Механізм ребалансування

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

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

Інтеграція frontend

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

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

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

Підтримувані ланцюги та обмеження

Ланцюг Set Protocol v2 Ліквідність компонентів Статус
Ethereum Так Висока Mainnet
Polygon Так Середня Mainnet
Optimism Обмежено Середня Експериментально
Arbitrum Немає native Не підтримується

Процес розробки

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

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

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

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