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

Разработка solver для intent-based протоколов Пользователь intent-based протокола не указывает точный маршрут свопа, а подписывает цель: «получить не менее 3000 USDC за 1 ETH к завтрашнему утру». Исполнение ложится на solver — off-chain агента, который за секунды находит лучший путь через десятки

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

Часто задаваемые вопросы

Последние работы

  • 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
    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 в аукционах. Получите консультацию — мы оценим ваш проект и предложим решение под ключ. Свяжитесь с нами, чтобы обсудить детали.