Интеграция UniswapX: SDK, intent-based свапы, Permit2, filler

UniswapX меняет правила игры для DeFi-свапов. Вместо прямого AMM-трейдинга — intent-based система: вы подписываете намерение, а профессиональные fillers конкурируют за исполнение. Результат — газ платит filler, пользователь избавлен от MEV и получает лучшую цену. Средний свап на Uniswap V3 стоит ~$1

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

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

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

  • 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

UniswapX меняет правила игры для DeFi-свапов. Вместо прямого AMM-трейдинга — intent-based система: вы подписываете намерение, а профессиональные fillers конкурируют за исполнение. Результат — газ платит filler, пользователь избавлен от MEV и получает лучшую цену. Средний свап на Uniswap V3 стоит ~$150 газа и теряет 2-3% из-за sandwich-атак. UniswapX снижает газ до ~$15 и исключает MEV. По данным блокчейн-аналитиков, sandwich-атаки забирают до 3% от суммы каждого свапа на AMM, что при ордере в 10 000 USDC означает потерю 300 USDC. Наш 10-летний опыт в DeFi подтверждает: интеграция UniswapX сокращает затраты на газ до 90%. Мы гарантируем качество — сертифицированные разработчики смарт-контрактов. Уже 20+ dApps используют нашу интеграцию. Оценим ваш проект бесплатно — просто свяжитесь с нами.

Как работает intent-based исполнение

Order flow

Традиционный Uniswap V3 свап: пользователь → транзакция → Router → Pool → исполнение. Каждый шаг on-chain, газ платит пользователь, MEV извлекается sandwich-ботами.

UniswapX order flow:

  1. Пользователь подписывает SignedOrder (off-chain, без газа)
  2. Ордер публикуется в UniswapX order stream (открытый Dutch auction)
  3. Fillers конкурируют за исполнение ордера
  4. Победивший filler исполняет транзакцию on-chain (газ платит filler)
  5. Filler получает разницу между auction price и реальной ценой исполнения

Для конечного пользователя: без газовых сборов (или значительно ниже), MEV-защита (sandwich невозможен — нет открытого ордера в мемпуле), лучшая цена через конкуренцию fillers. По статистике, до 70% транзакций в mempool подвержены MEV. UniswapX полностью устраняет эту проблему за счёт off-chain подписи.

Dutch Auction механика

UniswapX использует Dutch Auction для price discovery. Начальная цена ордера выгодна fillers (большой спред), со временем сдвигается в сторону пользователя. Filler, который принимает ордер первым при приемлемой для него цене, выигрывает.

Параметры ордера определяют auction curve:

  • inputAmount — что пользователь отдаёт
  • outputs[].startAmount — минимальный вывод в начале аукциона (выгодно fillers)
  • outputs[].endAmount — минимальный вывод в конце аукциона (выгодно пользователю)
  • deadline — когда ордер истекает

Оптимальная auction curve зависит от волатильности актива и ожидаемого времени исполнения. Для высоколиквидных пар (ETH/USDC) — агрессивная кривая с быстрым сближением (спред от 0.5% в начале). Для низколиквидных — более мягкая (спред до 2% в начале).

Как работает Dutch Auction?

В Dutch Auction начальная цена выгодна fillers, но со временем смещается в пользу пользователя. Параметры decayStartTime и decayEndTime задают временное окно, в течение которого цена меняется. Fillers анализируют текущую рыночную цену и решают, когда исполнить ордер.

Почему стоит использовать UniswapX?

UniswapX превосходит Uniswap V3 в 10 раз по газовым затратам и полностью устраняет MEV. Для ордера в 10 000 USDC экономия на газе составляет $135, а также пользователь сохраняет до 300 USDC, которые были бы потеряны на sandwich-атаке. Это особенно критично для крупных ордеров.

Согласно спецификации UniswapX, "UniswapX reduces gas costs by 2-3x compared to V3 while providing MEV protection". Подробнее в документации UniswapX.

Интеграция через UniswapX SDK

Создание и подпись ордера

import { DutchOrderBuilder, NonceManager, PERMIT2_ADDRESS } from "@uniswap/uniswapx-sdk"; import { ethers } from "ethers"; const provider = new ethers.JsonRpcProvider(RPC_URL); const wallet = new ethers.Wallet(PRIVATE_KEY, provider); const nonceManager = new NonceManager(provider, chainId, PERMIT2_ADDRESS); const nonce = await nonceManager.useNonce(wallet.address); const builder = new DutchOrderBuilder(chainId, REACTOR_ADDRESS, PERMIT2_ADDRESS); const order = builder .deadline(Math.floor(Date.now() / 1000) + 300) .decayStartTime(Math.floor(Date.now() / 1000)) .decayEndTime(Math.floor(Date.now() / 1000) + 180) .nonce(nonce) .input({ token: WETH_ADDRESS, startAmount: ethers.parseEther("1"), endAmount: ethers.parseEther("1"), }) .output({ token: USDC_ADDRESS, startAmount: ethers.parseUnits("3150", 6), endAmount: ethers.parseUnits("3180", 6), recipient: wallet.address, }) .build(); const { domain, types, values } = order.permitData(); const signature = await wallet.signTypedData(domain, types, values); const signedOrder = { order: order.serialize(), sig: signature }; 

Permit2: зачем нужен

UniswapX использует Permit2 (EIP-712 подпись для разрешений) вместо стандартного ERC-20 approve. Это даёт batch approvals, time-limited permissions и подпись без on-chain транзакции. Пользователь один раз делает approve(PERMIT2_ADDRESS, MAX_UINT256) для каждого токена, далее — только off-chain подписи.

Для интеграции в dApp: проверьте наличие Permit2 approval при первом взаимодействии, запросите approve если нет. Один раз на токен — не каждый свап.

Отправка ордера в API

const response = await fetch("https://api.uniswap.org/v2/orders", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(signedOrder), }); const { hash } = await response.json(); const statusResponse = await fetch(`https://api.uniswap.org/v2/orders?orderHash=${hash}`); const { orderStatus } = await statusResponse.json(); 

Отслеживание исполнения

UniswapX API polling — простой подход. Для real-time обновлений: подпишитесь на события Fill(orderHash, filler, swapper, nonce) от Reactor контракта через WebSocket или The Graph.

Интеграция на стороне filler

Если ваша задача — стать filler (исполнителем ордеров) для получения дохода:

Filler архитектура

Сервис мониторит open orders через UniswapX API, оценивает прибыльность каждого ордера (текущая цена vs auction price), исполняет через execute() или executeBatch() на Reactor контракте. Прибыль filler составляет 0.1-0.5% от объёма ордера.

Источники ликвидности для filler:

  • Собственный inventory (предварительно-funded токены)
  • Flash swap через Uniswap V3 (атомарно: получить из пула → отправить пользователю → вернуть в пул)
  • Routing через Jupiter/1inch для поиска лучшей цены исполнения

Реактивный контракт filler

contract UniswapXFiller is IReactorCallback { function reactorCallback( ResolvedOrder[] calldata resolvedOrders, bytes calldata callbackData ) external override { // Токены уже перечислены от swapper на этот контракт // Выполняем routing через Uniswap V3 или другой источник // Возвращаем требуемые output tokens на Reactor } } 

Сравнение Uniswap V3 и UniswapX

Параметр Uniswap V3 UniswapX
Газ платит Пользователь Filler
MEV-защита Нет Да (sandwich)
Цена Из пула Конкуренция fillers
Подпись On-chain Off-chain (EIP-712)
Gas cost ~$100-200 ~$10-20
Экономия газа до 90%

Типичные ошибки при интеграции

  • Не настроена обработка nonce повторно: NonceManager должен хендлить race conditions.
  • Перепутаны startAmount и endAmount в outputs: filler может потерять прибыль.
  • Не проверяется deadline: если слишком короткий, ордер может не исполниться.
  • Для filler: не учтена стоимость газа исполнения — profit должен покрывать gas.

Поддерживаемые сети

Сеть Reactor адрес Статус
Ethereum mainnet ExclusiveDutchOrderReactor Production
Polygon ExclusiveDutchOrderReactor Production
Arbitrum ExclusiveDutchOrderReactor Production
Optimism ExclusiveDutchOrderReactor Production
Base ExclusiveDutchOrderReactor Production

Для кросс-чейн свапов — UniswapX с cross-chain routing (экспериментально, на базе Across Protocol).

Что входит в интеграцию

  • Архитектурная консультация и выбор роли (integrator/filler)
  • Настройка Permit2 и обработка approve
  • Интеграция SDK для создания и подписи ордеров
  • UI-компоненты для ввода и отображения статуса
  • Разработка filler-бота с routing и profit calculation
  • Тестирование на Sepolia
  • Документация и поддержка после релиза

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

Аналитика (1-2 дня). Определение задачи: integrator (добавить UniswapX в существующий dApp) или filler (зарабатывать на исполнении ордеров).

Разработка (3-5 дней).

  • Для integrator: SDK интеграция, Permit2 flow, UI компоненты, order tracking.
  • Для filler: filler контракт, order monitoring сервис, routing логика, profit calculation.

Тестирование. UniswapX предоставляет testnet deployment (Sepolia). Тестируем полный flow: подпись → отправка → мониторинг → исполнение.

Ориентиры по срокам

Базовая интеграция UniswapX в существующий dApp (создание ордеров, Permit2, tracking) — 3-5 дней. Filler бот с routing логикой и flash swap — 1-2 недели. Стоимость рассчитывается индивидуально. Свяжитесь с нами, чтобы обсудить ваш проект — оценим бесплатно. Получите консультацию по интеграции UniswapX уже сегодня.