Разработка intent-based торгового протокола
Мы специализируемся на проектировании и развёртывании intent-based протоколов — архитектуры, где пользователь подписывает намерение ("хочу продать 1 ETH за лучшую цену USDC до 15:00 UTC"), а исполнение делегируется специализированным solver-ам. В отличие от классической модели DEX, где транзакция точно описывает детали, intent-based подход адаптируется к рыночным условиям и защищает от проскальзывания. Такая архитектура позволяет снизить проскальзывание до 50% по сравнению с AMM при волатильных парах, а также сократить затраты на газ за счёт batch-обработки ордеров. Разработка DeFi протокола в этой парадигме требует глубокого понимания как on-chain, так и off-chain компонентов.
Этот подход реализован в CoW Protocol, UniswapX и 1inch Fusion, каждая реализация имеет свои trade-off. Мы помогаем выбрать оптимальную модель под ваши задачи: batch аукцион для высоких объёмов или first-solver для низкой ликвидности. На практике fill транзакции на mainnet стоят $5-15, что при высоких объёмах может составлять $10-20 тыс. в месяц комиссий. Использование batch fill позволяет сократить расходы на газ до 40%, что при ежемесячных затратах в $50 тыс. даёт экономию $20 тыс.
Как работает intent-based торговый протокол?
Пользователь подписывает структурированное сообщение через EIP-712 (типизированные данные, видимые в MetaMask). Спецификация EIP-712 обеспечивает безопасную подпись структурированных данных off-chain. Минимальная структура ордера:
struct Order { address maker; address inputToken; address outputToken; uint256 inputAmount; uint256 minOutputAmount; uint256 deadline; uint256 nonce; bytes32 partialFillable; } Ключевой момент: nonce управляется по схеме word + bit (как в UniswapX), позволяя одновременно держать до 256 активных ордеров. Отмена ордера — инвалидация бита в on-chain маппинге без отдельной транзакции.
Почему стоит выбрать intent-based модель?
| Критерий | Классический DEX | Intent-based протокол |
|---|---|---|
| Проскальзывание | Зависит от ликвидности пула | Минимизируется через конкуренцию solver-ов |
| MEV-защита | Нет | Встроенная (batch аукцион против front-running) |
| Гибкость исполнения | Фиксированный маршрут | Любые источники: AMM, CEX, инвентарь solver-а |
| UX | Одна транзакция | Одна подпись (с Permit2 — без approve) |
Ключевые компоненты системы
Settlement контракт
Центральный контракт верифицирует подпись (EIP-712 recovery), проверяет nonce и deadline, атомарно переводит токены через safeTransferFrom. Атомарность EVM гарантирует: если solver не одобрил outputToken — транзакция реверсируется целиком.
function fill(Order calldata order, bytes calldata signature, uint256 fillAmount) external { address signer = ECDSA.recover(_hashTypedData(order), signature); require(signer == order.maker, "Invalid signature"); require(!_usedNonces[order.maker][order.nonce], "Nonce used"); require(block.timestamp <= order.deadline, "Expired"); IERC20(order.inputToken).safeTransferFrom(order.maker, msg.sender, fillAmount); IERC20(order.outputToken).safeTransferFrom(msg.sender, order.maker, outputAmount); emit OrderFilled(orderHash, msg.sender, fillAmount, outputAmount); } Детали защиты от reentrancy
Мы используем `nonReentrant` модификатор из OpenZeppelin, а solver дополнительно проверяет токены через `eth_call` перед отправкой транзакции.Solver сеть и конкуренция
Solver — off-chain агент, мониторящий orderbook и выбирающий оптимальный маршрут исполнения. Прибыль solver-а — разница между реальной ценой и minOutputAmount (surplus). Возможны две модели:
- On-chain аукцион (CoW Protocol): все ордера за период собираются в batch, один winning solver исполняет всё по единой цене. Устраняет front-running внутри batch.
- Off-chain first solver (UniswapX): первый, кто исполнил ордер on-chain до deadline, получает reward. Проще, но возможна MEV-гонка.
Мы оценим вашу специфику и предложим оптимальную модель.
Permit2 интеграция
Вместо классического approve (отдельная транзакция) используем Permit2 — разрешение подписывается off-chain вместе с ордером. Batch permit позволяет один раз approve Permit2 для каждого токена, после чего все dApps используют его. Это значимое улучшение UX.
Solver реализация: поиск и защита
Solver запрашивает котировки от AMM (Uniswap, Curve, Balancer), CEX (Binance API), on-chain orderbooks и собственного инвентаря. Выбирается лучшая цена с учётом газа и комиссий. Если profit < gas * gasPrice * safetyMultiplier — ордер отклоняется. Ошибка начинающих solver-ов: брать убыточные ордера в надежде на MEV — это не работает устойчиво.
Газовая оптимизация
На mainnet одно fill стоит $5-15 при газе $50. Для малых ордеров — неприемлемо. Решения:
- Деплой на L2 (Arbitrum, Optimism) снижает газ в 10-50 раз.
- Batch fill — несколько ордеров в одной транзакции амортизируют base gas cost.
- Compact calldata: нулевые байты дешевле, экономия 20-40% calldata-газа.
Стек и таблица компонентов
Разработка смарт-контрактов ведётся на Solidity 0.8.x с использованием Foundry и OpenZeppelin 5. Аудит смарт-контрактов выполняется внешними командами.
| Компонент | Технология | Сложность |
|---|---|---|
| Order structure | EIP-712 + Solidity | Средняя |
| Settlement | Solidity + Permit2 | Высокая |
| Nonce management | Bit-packed mapping | Средняя |
| Solver logic | Node.js + 1inch/Jupiter API | Высокая |
| Orderbook | REST API + WebSocket | Средняя |
| Frontend | wagmi + viem + React | Средняя |
Процесс работы
- Аналитика (3-5 дней): выбор модели (batch или first-solver), целевые токены и цепи, требования к solver сети.
- Проектирование (5-7 дней): EIP-712 схема, nonce механизм, settlement архитектура.
- Разработка (6-10 недель): settlement контракт, Permit2 интеграция, orderbook, solver, frontend.
- Аудит: обязателен внешний аудит с фокусом на signature malleability, reentrancy, nonce.
- Деплой и поддержка: развёртывание на целевых сетях, мониторинг, документация.
Что входит в работу
- Разработка смарт-контрактов (Settlement, Permit2 wrapper)
- Off-chain solver с интеграцией ликвидности
- Orderbook (REST API + WebSocket)
- Фронтенд с подписанием ордеров (wagmi + viem)
- Документация API и контрактов
- Развёртывание и настройка мониторинга
- Обучение команды по эксплуатации
- Гарантийная поддержка 3 месяца
Ориентиры по срокам
MVP с базовым settlement одним solver — 4-6 недель. Production-ready протокол с batch аукционом, открытой solver сетью и оптимизацией газа — 2-3 месяца. Стоимость рассчитывается после определения модели и scope.
Закажите разработку протокола — опишите вашу задачу, и мы подберём архитектуру под ваш объём и требования. Получите консультацию, чтобы обсудить детали вашего проекта.







