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

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1Все 1305 услуг
Интеграция UniswapX: SDK, intent-based свапы, Permit2, filler
Средний
~3-5 дней
Часто задаваемые вопросы

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

Этапы блокчейн-разработки

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

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1358
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1250
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    956
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1188
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    646
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    929

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 уже сегодня.

Разработка DeFi-протоколов

Мы проектируем модульные DeFi-протоколы, в которых математика стейблкоинов, ликвидности и оракулов работает без сбоев. Mango Markets — краш-тест: атакующий манипулировал spot price через один аккаунт, взял кредит под завышенный collateral и вывел $114 млн. Оракул брал цену с единственного источника без TWAP. Не баг в коде — это архитектурное решение, которое стало уязвимостью. Наш опыт показывает: любой DeFi-протокол — это система ставок на то, что все компоненты, от расчётов до экономических стимулов, выстроены правильно одновременно.

Мы не пишем код под «если всё работает, не трогай». Мы моделируем стресс-сценарии: каскадные ликвидации, депег, флеш-кредиты. И только после этого — события, которые не сломают протокол.

Почему оракулы — критический компонент DeFi?

Большинство крупных взломов DeFi начинались с манипуляции оракулом. Разберём три слоя, которые мы используем в каждом проекте.

Spot price как оракул — не вариант. Uniswap v2 spot price можно сдвинуть flash loan за одну транзакцию. Цена в конце блока — единственное, что попадает в state, её и читает оракул. Схема атаки: занять через flash loan → купить актив в пул → цена поднялась → взять кредит под завышенный collateral → продать актив → вернуть flash loan. Одна транзакция.

TWAP как защита. Uniswap v3 observe() усредняет цену за период (30 минут). Манипуляция требует удерживать цену несколько блоков — это стоит дорого. Но TWAP медленно реагирует на легитимные изменения, что открывает окно для arbitrage на liquidation при резких движениях.

Chainlink Price Feeds — агрегация от множества data providers с медианой. Стандарт для lending. Проблема: heartbeat 1–24 часа и deviation threshold 0.5%. Если цена не двигается, фид может не обновляться сутки. В волатильном рынке — lag.

Оракул Механизм Защита от манипуляции Задержка
Chainlink Медиана от независимых провайдеров Высокая (децентрализация) До 24 ч при 0% движения
Uniswap v3 TWAP Средняя цена за N блоков Высокая (сложно удерживать) 30 мин — 1 ч
Pyth Network Cross-chain low-latency Средняя (зависимость от publisher) Секунды

В продакшене мы используем двухуровневую проверку: Chainlink aggregator + Uniswap v3 TWAP как верификатор. Если расхождение больше N% — транзакция отклоняется, система ставится на паузу.

Как защитить DeFi-протокол от flash loan атак?

Flash loan превращает любого пользователя в обладателя неограниченного капитала на одну транзакцию. Поэтому при проектировании контрактов мы предполагаем: доступ к неограниченному капиталу есть у всех. Это меняет threat model полностью.

Легитимные применения flash loan — arbitrage, liquidation, самоликвидация. Но протокол должен проверять, что заём не используется для манипуляции: оракул не должен читать цену из пула, который можно сдвинуть за одну транзакцию. Мы добавляем проверки на block.timestamp и минимальную глубину ликвидности.

Ключевые компоненты DeFi-архитектуры

Тип протокола Основная механика Главный риск
DEX (AMM) x*y=k или concentrated liquidity impermanent loss, oracle manipulation
Lending collateral ratio, liquidation bad debt при каскадных ликвидациях
Yield aggregator автокомпаундинг стратегий rug через strategy upgrade
Derivatives / Perps funding rate, mark price liquidation cascades, socialized losses
Liquid staking stETH-style rebasing depegging при mass unstake

AMM: от x*y=k до concentrated liquidity

Uniswap v2 использует x * y = k. LP-токены ERC-20 — каждый пул выпускает свой токен пропорционально доле. Проблема: ликвидность размазана по всей кривой, большая часть не используется.

Uniswap v3 и позиции ERC-721: concentrated liquidity — LP предоставляет ликвидность в диапазоне [priceLow, priceHigh]. Capital efficiency до 4000x для стабильных пар. Но ERC-721 ломает vault-стратегии под ERC-20. Управление ranges — отдельная инженерная задача: позиция выходит из диапазона при движении цены, перестаёт зарабатывать fees, становится single-asset. Протоколы типа Arrakis Finance автоматически rebalance. Если строите vault поверх v3, нужен собственный range manager или интеграция с существующим.

Slippage в v3 рассчитывается через sqrtPriceX96 — 96-битная fixed-point математика. Ошибки на фронтенде приводят к расхождению между видимым и фактическим slippage.

Curve для пар с близкими ценами (stablecoin/stablecoin, stETH/ETH) использует инвариант, комбинирующий constant product и constant sum. Меньше slippage в диапазоне peg. Контракты на Vyper, код математически плотный, аудировать сложно.

Lending протоколы: collateral, liquidation, bad debt

LTV определяет максимальный кредит под collateral. Liquidation threshold — уровень ликвидации. Разница — буфер для liquidator. Типичный пример: LTV 75%, liquidation threshold 80%, bonus 5%. Если цена падает на 20%+, позиция открыта к ликвидации.

Каскадные ликвидации: много позиций ликвидируется одновременно → ликвидаторы продают collateral → цена падает → следующая волна. LUNA/UST 2022 — классический каскад.

Если collateral обесценивается быстрее ликвидации, протокол получает bad debt. Aave использует Safety Module (застейканный AAVE), Compound — reserves. Без backstop bad debt социализируется через dilution supply-токена или взаимозачёт.

Проектирование системы ликвидации требует моделирования стресс-сценариев: падение единственного liquidation bot, высокий gas, делистинг collateral.

Yield farming и incentive mechanics

Liquidity mining — раздача governance-токенов LP-провайдерам. Проблема mercenary capital: фармеры приходят, продают токены, уходят. TVL фиктивный.

Устойчивые механики: protocol-owned liquidity (Olympus bonding), veToken (CRV locked → boost + governance), locked staking с penalty. Ve-модель при неправильной реализации создаёт governance concentration. Нужен timelock на изменения gauge weights и лимиты на votingPower.

Что входит в нашу разработку DeFi-протоколов

  • Архитектурная документация: диаграммы взаимодействия контрактов, стресс-тесты ликвидаций, расчёты оракулов.
  • Реализация на Solidity 0.8.x с OpenZeppelin 5.x (AccessControl, ReentrancyGuard, Pausable, TimelockController) и Solmate для gas-optimised base contracts.
  • Foundry fork-тесты на реальном mainnet (Uniswap, Chainlink, Aave) — тесты до деплоя покрывают все сценарии.
  • Аудит: минимум два независимых аудитора для TVL от $1M. Code4rena или Sherlock для bug bounty.
  • Деплой с Gnosis Safe 3/5 multisig + timelock 48–72 часа.
  • Мониторинг через Tenderly (alerts, симуляции), OpenZeppelin Defender (automation), Forta (on-chain threat detection).
  • Поддержка после запуска: обновления, патчи, апгрейды через proxy.

Наши компетенции и опыт

Мы разрабатываем DeFi-протоколы с 2020 года — за это время реализовали 30+ проектов с общим TVL более $150 млн. Среди клиентов — протоколы в топ-20 по TVL на Ethereum, Arbitrum и Base. Команда сертифицированных разработчиков Solidity, прошедших аудиторские треки ConsenSys Diligence.

DeFi на Wikipedia — базовые принципы, которые мы применяем на практике.

Сроки

  • DEX с AMM (Uniswap v2 fork): 6–10 недель
  • Lending protocol (Aave-style, один collateral): 3–5 месяцев
  • Yield aggregator с несколькими стратегиями: 2–4 месяца
  • Полноценный DeFi-протокол с governance: 5–8 месяцев включая аудит

Стоимость рассчитывается индивидуально — свяжитесь для оценки вашего проекта.

Получите консультацию по архитектуре DeFi-протокола — мы проанализируем риски и предложим оптимальное решение.