Розробка solver для intent-based протоколів під ключ

Розробка solver для intent-based протоколів Користувач intent-based протоколу не вказує точний маршрут свопу, а підписує мету: «отримати не менше 3000 USDC за 1 ETH до завтрашнього ранку». Виконання лягає на solver — off-chain агента, який за секунди знаходить найкращий шлях через десятки DEX, вр

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

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

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

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

Розробка solver для intent-based протоколів

Користувач intent-based протоколу не вказує точний маршрут свопу, а підписує мету: «отримати не менше 3000 USDC за 1 ETH до завтрашнього ранку». Виконання лягає на solver — off-chain агента, який за секунди знаходить найкращий шлях через десятки DEX, враховуючи ліквідність, комісії та конкурентні ставки інших solver-ів. Помилка в маршрутизації або затримка в 200 мс — і ордер іде конкуренту.

Ми розробляємо кастомні solver-и під протоколи CoW Protocol, UniswapX, 1inch Fusion та ERC-7683 (cross-chain intents) — стандарт, описаний у EIP-7683. Наприклад, для одного проекту на UniswapX ми реалізували приватний RFQ-канал з маркет-мейкерами, що підняло win rate з 5% до 18%, а середній surplus виріс на 30%. Це дозволило клієнту зайняти друге місце за обсягом серед 45 solver-ів на протоколі.

Розробка solver-а включає проектування архітектури, написання ядра на Rust з паралельними запитами до 15+ джерел ліквідності, тестування на forked mainnet і деплой settlement контрактів. Середня затримка обробки ордера становить 250 мс, а win rate після першого тижня оптимізації досягає 10-15%. Ми гарантуємо прозорість метрик і SLA по uptime 99.9%.

Як працює solver і в чому складність?

Solver отримує підписаний EIP-712 ордер, паралельно опитує пули ліквідності (Uniswap V3, Curve, Balancer), агрегатори (1inch, 0x) та приватні RFQ-канали. Потім за 10–15 секунд (для CoW Protocol batch auction) або без жорсткого дедлайну (для UniswapX) він формує settlement-транзакцію. Конкуренція змушує оптимізувати кожен крок: ми використовуємо Rust з tokio для паралельних RPC (latency ~150 мс на джерело), кеш стану пулів через WebSocket та in-process EVM-симулятор revm для перевірки маршрутів без зайвих on-chain викликів.

Чому batch auction вимагає високої продуктивності?

У CoW Protocol auction window — 30 секунд, з яких на обчислення залишається 10–15 секунд. За цей час треба опитати десятки DEX, розрахувати split routing, симулювати транзакції та сформувати settlement. Ми використовуємо Rust з tokio async runtime — це дозволяє паралельний RPC до джерел за 100–200ms. Кеш стану пулів (reserves/sqrtPrice) через WebSocket subscriptions дає latency мікросекунди замість мілісекунд. In-process EVM симулятор (revm) перевіряє маршрути без on-chain викликів.

UniswapX: архітектура та механізм виконання

UniswapX використовує Dutch auction: заповнювач (filler/solver) може виконати ордер в будь-який момент до закінчення часу. Початкова ціна вигідна користувачу, поступово зсувається на користь solver-а. Перший solver, який виконує ордер при прийнятному співвідношенні, виграє.

Структура ордера UniswapX (ExclusiveFillerOrder):

interface ExclusiveFillerOrder { info: { reactor: Address swapper: Address nonce: bigint deadline: bigint additionalValidationContract: Address additionalValidationData: Hex } exclusiveFiller: Address exclusivityOverrideBps: number input: { token: Address amount: bigint } outputs: Array<{ token: Address startAmount: bigint endAmount: bigint recipient: Address }> } 

Solver отримує input.amount від користувача, повинен повернути мінімум currentOutput (значення між startAmount і endAmount залежно від timestamp).

Reactor контракт і settlement

UniswapX Reactor — це on-chain контракт, який верифікує підпис користувача, перевіряє currentOutput за часом і керує transfer-ами. Solver викликає execute(order, signature, fillData). Ключовий момент: solver отримує input токени на початку виконання і повинен повернути output токени до кінця тієї ж транзакції. Між отриманням і поверненням solver може використовувати будь-які on-chain протоколи — це і є простір для оптимізації.

Пошук оптимального шляху виконання

Задача solver-а — максимізувати surplus при заданих input/output. Surplus = actualOutput - minRequiredOutput. Кращий surplus → вища ймовірність виграти auction у batch-системах.

Routing через декілька DEX

Базовий підхід — пошук найкращої ціни через агрегатор. Паралельний запит до 10+ DEX з таймаутом 500 мс на джерело. Вибирається найкращий з тих, що відповіли. У production ми опитуємо понад 15 джерел, включаючи Uniswap V3, Curve, Aerodrome, Balancer, та агрегатори 1inch, 0x.

Split routing

Якщо одного DEX недостатньо — розбиваємо ордер на частини. Для ордерів >500 ETH split routing на 2-3 частини знижує price impact з 3-5% до 1-2%.

Private liquidity (RFQ)

Окрім on-chain DEX, solver може мати доступ до приватних маркет-мейкерів через RFQ. Маркет-мейкер відповідає підписаною котируванням — якщо вона краща за on-chain маршрут, solver використовує її. CoW Protocol підтримує це через GPv2 interaction: solver включає signed quote від маркет-мейкера як частину settlement. В одному з кейсів RFQ-канал дав приріст surplus на 35% на ордерах >100 ETH.

Приклад коду для інтеграції RFQ
async function requestRFQ(order: Intent): Promise<SignedQuote> { const quote = await marketMaker.requestQuote({ tokenIn: order.input.token, tokenOut: order.output.token, amount: order.input.amount, deadline: order.deadline }) if (quote.amountOut > bestOnChainRoute.amountOut) { return quote // використовуємо RFQ } return null } 

CoW Protocol solver: batch auction механіка

У CoW Protocol batch auction відбувається так:

  1. Orderbook: користувачі підписують ордери (CoW Swap UI або напряму), ордери потрапляють у публічний orderbook API
  2. Auction call: кожні ~30 секунд CoW Protocol викликає /solve на зареєстрованих solver-ах
  3. Solver computation: solver отримує список ордерів у batch, знаходить оптимальний набір виконань (включаючи CoW — збіг зустрічних ордерів без DEX)
  4. Submission: solver надсилає рішення з calldata для on-chain settlement
  5. Winner selection: вибирається solver з найбільшим сумарним surplus для batch
  6. On-chain settlement: winning solver виконує транзакцію через GPv2Settlement контракт

CoW (Coincidence of Wants) — особливість: якщо в batch є ордер на продаж ETH за USDC і ордер на продаж USDC за ETH — solver може зіставити їх напряму. Немає DEX fee, немає price impact. Обидві сторони отримують кращу ціну.

Реєстрація solver-а в CoW Protocol

Solver повинен бути авторизований CoW DAO. Для участі в продакшн аукціонах потрібен внесений bond (DAO governance голосування). Для тестування — staging environment без bond. Ми супроводжуємо процес реєстрації, включаючи підготовку технічної документації та проходження аудиту контракту. Подробиці в офіційній документації CoW Protocol.

Порівняння UniswapX і CoW Protocol для solver-а

Параметр UniswapX (Dutch auction) CoW Protocol (batch auction)
Механізм конкуренції Перший, хто виконає при прийнятній ціні Пакетне рішення раз на ~30 сек, вибирається найкращий surplus
Час на обчислення Немає жорсткого дедлайну, але чим раніше — тим краще Жорсткі 30 сек, ефективний час 10-15 сек
CoW matching Не підтримує Підтримує, знижує потребу в DEX
RFQ Через exclusive filler Через signed quotes у settlement
Складність розробки Середня Висока (оптимізація під batch)
Типовий win rate після оптимізації 15-25% 10-20%
Середня економія на газі (проти звичайного свопу) 5-10% 10-20%

Що входить у роботу

  • Аналіз конкурентного середовища — оцінка поточних solver-ів, їх win rate, типові маршрути
  • Розробка solver-а для intent-based протоколів — код на Rust/Go, інтеграція з обраним протоколом, routing engine
  • Settlement контракти — за потреби кастомні (Solidity 0.8.24, Foundry тести)
  • Моніторинг та алерти — Prometheus метрики (win rate, avg surplus, latency), Grafana дашборд, Telegram сповіщення при падінні win rate нижче 5%
  • Реєстрація в mainnet — підготовка документації, проходження governance (для CoW), деплой
  • Підтримка після запуску — оптимізація стратегії, підключення нових DEX, оновлення при хардфорках

Орієнтири за термінами та економією

Базовий UniswapX filler з простим routing — 1 тиждень. Повноцінний CoW Protocol solver з CoW matching, split routing і RFQ — 3–4 тижні. Вартість розраховується індивідуально, але середня економія на транзакціях за рахунок оптимізації досягає 15-20% проти стандартних маршрутів. Ми маємо 5+ років досвіду та реалізували понад 50 проектів зі смарт-контрактів та DeFi інфраструктури.

Чому варто замовити кастомний solver?

Готовий solver не враховує специфіку ваших токенів, ліквідності та стратегії. Кастомний solver дозволяє налаштувати пріоритетні маршрути, приватні RFQ-канали, оптимізувати latency під ваш DEX-агрегатор і збільшити win rate в аукціонах. Отримайте консультацію — ми оцінимо ваш проект і запропонуємо рішення під ключ. Зв'яжіться з нами, щоб обговорити деталі.