Разработка форка Uniswap для кастомного DEX

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1 услугВсе 1306 услуг
Разработка форка Uniswap для кастомного DEX
Сложная
от 1 недели до 3 месяцев
Часто задаваемые вопросы
Направления блокчейн-разработки
Этапы блокчейн-разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1221
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1163
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    855
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1060
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    828

Разработка форка Uniswap для кастомного DEX

Форк Uniswap — это не «скопировать репозиторий и поменять название». Это серьёзная инженерная работа: разобраться в инвариантах AMM, решить какие параметры менять и почему, написать новые тесты для изменённой математики, пройти аудит. Команды, которые просто клонировали Uniswap v2 в 2021 году без понимания механик, получили протоколы с price manipulation уязвимостями через flash loan и дренированные пулы.

Uniswap v2 vs v3: что именно форкать

Выбор версии определяет сложность и возможности:

Параметр Uniswap v2 Uniswap v3
Архитектура Простая, x*y=k Concentrated liquidity, ticks
Кастомизация Легко изменить fee Сложно, много математики
Аудит форка 2-4 недели 4-12 недель
Готовых форков Сотни (PancakeSwap, SushiSwap) Меньше (Pancake v3, Camelot)
Gas per swap ~120k ~150-200k
Capital efficiency Низкая Высокая

Для большинства новых DEX рекомендуем стартовать с v2-архитектурой с кастомными fee tiers. Concentrated liquidity (v3) оправдана, если есть понимание того, как LP-провайдеры будут управлять позициями, и готовность к более сложному аудиту.

Что обычно меняют в форке

Структура комиссий

В Uniswap v2 fee зафиксировано на 0.3%, из которых 0.05% идёт в протокол (protocol fee, если включён). В форке можно:

  • Изменить базовый fee (например, 0.1% для стейблкоин-пар, 1% для экзотических токенов)
  • Добавить динамический fee в зависимости от волатильности (требует оракул или TWAP)
  • Направить protocol fee в казну DAO, стейкинг, или на buyback токена
  • Добавить реферальные fee: часть комиссии идёт рефереру (нужен маппинг referrer → адрес)

Токен-специфические ограничения

Часто нужны пары только между одобрёнными токенами (permissioned factory), или ограничение на создание пулов без multisig-подтверждения. Добавляется через mapping(address => bool) public allowedTokens и модификатор в createPair.

Ценовые оракулы и TWAP

Uniswap v2 хранит кумулятивные цены для TWAP — это встроено в _update(). Форк может добавить более частые snapshots или интеграцию с Chainlink для защиты от manipulation. Проблема оригинального TWAP: при малом liquidity пула короткие периоды TWAP (~5 минут) уязвимы к price manipulation через крупные свапы.

Главная опасность форков: математика инварианта

Flash loan атаки через нарушение инварианта

Uniswap v2 проверяет инвариант после всех операций в транзакции:

require(balance0Adjusted * balance1Adjusted >= uint(_reserve0) * uint(_reserve1) * 1000**2);

Ошибка в форках: изменение логики fee ломает этот расчёт. Если balance0Adjusted считается неправильно при нестандартном fee — атакующий может дренировать пул через серию flash swap → swap back транзакций, каждая из которых проходит проверку, но суммарно забирает liquidity.

Мы видели этот баг в трёх форках на BSC в 2022-2023 годах. Потери: $1.2M, $800k, $3.5M.

При любом изменении fee-логики обязательны invariant-based fuzz тесты в Foundry: Echidna или Foundry's vm.assume с сотнями тысяч случайных параметров. Инвариант: k_after >= k_before * (1 - fee).

Fee-on-transfer токены

Если DEX ориентирован на токены с tax (fee-on-transfer), стандартный Uniswap v2 не работает корректно: контракт ожидает получить amountIn токенов, но получает amountIn * (1 - tax). Нужна версия функций swapExactTokensForTokensSupportingFeeOnTransferTokens — она в Uniswap уже есть, но в минималистичных форках её часто выкидывают, что ломает совместимость с популярными BSC-токенами.

Стек и процесс

Разработка контрактов — Foundry для всего: тесты, деплой, fuzzing. Базируемся на официальном репозитории Uniswap v2-core + v2-periphery как submodule, чтобы ясно видеть diff. Изменения минимальные и сфокусированные — не переписываем то, что работает.

Тесты. Для форка минимальный набор:

  • Создание пары, добавление/удаление ликвидности
  • Свапы в обе стороны с проверкой инварианта
  • Flash swap с корректным и некорректным возвратом
  • Fee расчёт для нестандартных значений
  • Fuzz тесты на инвариант с 100k+ итераций
  • Fork тест на mainnet: реальные токены, реальные балансы через vm.createFork

Frontend. Адаптируем Uniswap Interface (open-source) или строим с нуля на React + wagmi + viem. Uniswap SDK v3 совместим с v2-форками при правильной конфигурации chain и factory address.

Роутер агрегации. Если нужен мультихоп routing через собственные пулы + внешние DEX — интегрируем 1inch Aggregation Protocol или пишем собственный роутер. Это важно для UX: пользователь не должен вручную искать маршрут.

Деплой и запуск

Сначала testnet (Sepolia, опционально собственная dev-сеть через Anvil). Затем аудит — обязательно перед mainnet деплоем с реальным TVL. После аудита: mainnet deploy через forge script с multisig (Gnosis Safe) для ownership factory-контракта.

Сроки зависят от сложности кастомизации: v2-форк с изменёнными fee тiers — 1-2 недели разработки + 2-4 недели аудит. Полноценный v3-форк с кастомным UI — от 2 месяцев. Для продакшн-протокола аудит внешней командой не опционален.

Стоимость обсуждается после анализа требований и выбранной версии.