AZ.

SomeSwap — DEX на Monad

Децентрализованная биржа с AMM, пулами ликвидности, лимитными ордерами и DCA на блокчейне Monad.

Next.jsTypeScriptSolidityEnvioRedisWebSocketUniswap SDK

Задача

Построить полноценную DEX-платформу на блокчейне Monad — с торговлей токенами, пулами ликвидности, лимитными ордерами и стратегией DCA. Платформа должна обрабатывать тысячи свопов и обеспечивать точные данные о ликвидности в реальном времени.

Моя роль

Fullstack-разработчик. Отвечал за backend-интеграцию через Envio — индексацию событий блокчейна и обработку данных пулов. Спроектировал систему воркеров, которые собирают информацию о пулах и обновляют её после каждого свопа: TVL, объёмы, APR, цены токенов.

Реализовал конвертацию токенов в доллары через цепочки ценовых пар, оптимизировал запросы к базе данных — среднее время отклика API составило 12 мс. Настроил Redis-кэширование для горячих данных и pub/sub для real-time обновлений на фронтенде.

Ключевые фичи

  • Swap с мультихоп-роутингом — автоматический поиск оптимального маршрута через несколько пулов, если прямая пара не существует
  • Liquidity Pools — добавление/удаление ликвидности, автообнаружение пар, настраиваемые комиссии
  • Pool Info с метриками — TVL, объём за 24ч, APR, количество холдеров в реальном времени
  • Лимитные ордера — отложенные сделки по целевой цене
  • DCA (Dollar-Cost Averaging) — автоматическое усреднение позиции по расписанию
  • Портфолио — отслеживание позиций и P&L пользователя
  • Брендбук — интерактивный дизайн-гайд с примерами компонентов

Результаты

  • TVL $178K — суммарная ликвидность в пулах
  • 15 000+ свопов за первый месяц после запуска
  • 50+ активных пулов с автоматическим обнаружением пар
  • 99.9% uptime бекенда — 0 критических инцидентов
  • < 200 мс — среднее время обработки свопа end-to-end
  • 12 мс — среднее время отклика API бекенда
SomeSwap — DEX на Monad — главный экран

Экраны проекта

SomeSwap — DEX на Monad — экран 2
SomeSwap — DEX на Monad — экран 3
SomeSwap — DEX на Monad — экран 4
SomeSwap — DEX на Monad — экран 5
SomeSwap — DEX на Monad — экран 6
SomeSwap — DEX на Monad — экран 7