Розробка 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 відбувається так:
- Orderbook: користувачі підписують ордери (CoW Swap UI або напряму), ордери потрапляють у публічний orderbook API
- Auction call: кожні ~30 секунд CoW Protocol викликає /solve на зареєстрованих solver-ах
- Solver computation: solver отримує список ордерів у batch, знаходить оптимальний набір виконань (включаючи CoW — збіг зустрічних ордерів без DEX)
- Submission: solver надсилає рішення з calldata для on-chain settlement
- Winner selection: вибирається solver з найбільшим сумарним surplus для batch
- 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 в аукціонах. Отримайте консультацію — ми оцінимо ваш проект і запропонуємо рішення під ключ. Зв'яжіться з нами, щоб обговорити деталі.







