Разработка White-label крипто-обменника под ключ

Запуск обменника с нуля упирается в сроки и риски на старте. Мы разрабатываем white-label криптообменник под ключ: разворачиваем готовое ядро, настраиваем резервы, ликвидность и маршрутизацию, передаём сервис в эксплуатацию. Запуск занимает недели, а не месяцы, и вы получаете платформу, которая держит пиковую нагрузку.
Часто задаваемые вопросы

Почему white-label криптообменник теряет заявки при пиковой нагрузке

White-label криптообменник — то есть готовый обменник под ключ — обычно собран из коробочного ядра, панели оператора и одного-двух источников ликвидности. При спокойном потоке это работает: котировка приходит, заявка фиксируется, выплата уходит. Пиковая нагрузка на обменник — волатильность рынка, листинг, всплеск в чате — меняет картину за минуты.

Первое узкое место обменника — рассинхрон котировок и резервов. Курс фиксируется в момент создания заявки, а фактическая сделка у поставщика проходит несколькими секундами позже: если цена ушла, разницу закрывает либо маржа, либо отказ клиенту. Резервы проверяются отдельно от создания заявки, поэтому две параллельные заявки могут опереться на один и тот же остаток горячего кошелька.

Второй слой отказов — зависшие заявки при отказе внешнего поставщика ликвидности. Один источник отдаёт ошибку, второй держит курс хуже, третий не проходит по лимиту — и заявка остаётся в статусе «в обработке» без владельца. Клиент видит её в интерфейсе, оператор — в панели, но ни автоотмены, ни возврата в очередь не срабатывает: логика переходов статусов в коробке не рассчитана на частичный отказ.

Каждая такая заявка превращается в ручной разбор: сверить транзакции, найти потерянный ответ поставщика, решить — дождаться, отменить или выплатить по внутреннему курсу. На потоке это уже не инцидент, а постоянный режим поддержки, который съедает маржу и репутацию. Разбираем, как это закрывается.

Что даёт готовое ядро: резервы, ликвидность, скорость запуска

Готовое ядро обменника — это не шаблон интерфейса, а рабочий контур: приём заявки, проверка адреса на риски, расчёт курса, блокировка средств и выплата. Мы разворачиваем его на вашей инфраструктуре и адаптируем под ваш бренд — команда не тратит месяцы на логику, которая уже отработана на живом потоке.

Маршрутизация заявок и работа с резервами

Ядро ведёт таблицу резервов по каждому направлению и знает фактический остаток у каждого поставщика ликвидности. Заявка идёт по приоритету: сначала покрытие из собственного резерва, затем внешний канал с лучшей ценой и достаточным объёмом. Котировки обновляются через оракулы вроде Chainlink, но ядро сверяет их с собственной оценкой и на расхождении выше заданного порога приостанавливает выплату — цена не уходит в минус на устаревших данных.

Устойчивость к отказу внешнего канала

У каждого канала ликвидности свой лимит и время ответа, поэтому сбой одного поставщика не останавливает сервис. Ядро проверяет доступность каналов и при отказе переводит новые заявки на резервные, а уже принятые доводит до выплаты по ранее зафиксированному курсу. Повторные запросы на выплату отсекаются по идентификатору операции — двойное списание исключено.

Проверенное ядро меняет срок запуска: вместо месяцев разработки — недели на настройку, интеграцию и приёмку. Резервы, маршрутизация и защита от отказов приходят готовыми, а дорабатываете вы то, что отличает ваш сервис.

Форматы запуска white-label криптообменника и их ограничения

Форматы запуска обменника различаются по трём вещам: где хранятся средства клиентов, кто отвечает за исполнение сделки и сколько стоит поддержка. Ниже — четыре схемы, между которыми реально выбирают при запуске white-label криптообменника.

Кастодиальная и некастодиальная модель

Вариант Когда подходит Ограничения
Кастодиальный сервис Массовый розничный поток, быстрые ввод и вывод, простой интерфейс Ключи и средства на стороне сервиса — выше требования к защите, нужны резервы ликвидности
Некастодиальный обмен Аудитория, которая не доверяет площадке и держит ключи сама Сделка собирается на стороне пользователя: больше шагов, часть аудитории отсеивается
Обмен между пользователями Нужен поток без своего резерва, работа с локальными способами оплаты Сервис сводит стороны, но сделку не гарантирует — нужны споры, рейтинги, заморозка заявок
Брокерская модель обмена Обороты небольшие или спрос неровный Спред зависит от контрагента, часть маржи уходит партнёру

Когда брокерская схема выгоднее собственного матчинга

Свой матчинг оправдан, когда поток заявок стабилен и перекрывает расходы на резервы, арбитраж и круглосуточное дежурство. Пока объём неровный, брокерская модель обмена закрывает сделки через внешних поставщиков: запуск занимает недели вместо месяцев, ликвидность доступна с первого дня. Обратная сторона — сервис наследует чужие лимиты и сбои, поэтому поставщиков подключают несколько и переключают между ними по остатку и цене.

Этапы внедрения: от аудита схемы до передачи в эксплуатацию

Внедрение white-label криптообменника — не установка готового продукта, а цепочка инженерных решений, где каждый следующий шаг опирается на результат предыдущего. Порядок работ у нас такой.

Аудит и проектирование схемы

  1. Аудит схемы обмена. Разбираем подключённые источники курсов и ликвидности, платёжные каналы и кошельки, сверяем, как считаются курсы, комиссии и резервы. Фиксируем узкие места: дублирование операций, ручные сверки, заявки без однозначного статуса.
  2. Проектирование потоков заявок и средств. Описываем состояния заявки, моменты списания и зачисления, поведение при частичном исполнении и возврате — становится видно, где средства застревают и в какой момент операция считается закрытой.
  3. Настройка ядра и лимитов. Параметры обмена, правила маршрутизации, лимиты на пару и на отдельную операцию, роли операторов, журнал операций и выгрузка для сверки.

Проверки на отказ и приёмка

  • Проверки на отказ. Обрываем источник курса, отзываем подтверждение транзакции, ставим канал в таймаут — смотрим, что видит пользователь и как система возвращается к согласованному балансу.
  • Нагрузочные прогоны. Подаём поток заявок выше расчётного: важно, чтобы система деградировала предсказуемо и без потери заявок.
  • Приёмочные проверки. Прогоняем сквозные сценарии по согласованному чек-листу: обмен, возврат, ручная корректировка, отчётность. Найденное закрываем до подписания.
  • Передача в эксплуатацию. Доступы, окружения, регламенты реагирования на инциденты, инструкции операторов и обучение смены.

Конфигурации, схемы маршрутизации и регламенты — что остаётся у вас

Передача обменника — не архив файлов, а рабочее состояние: ваша команда сама меняет лимиты, добавляет направление или отключает валюту. Артефакты ниже остаются у вас в репозитории и в системе сопровождения.

  • Конфигурация обменника — лимиты и комиссии по направлениям, список пар, правила округления, пороги ручной проверки; отдельными профилями под тестовый и боевой контур.
  • Схемы маршрутизации заявок — путь заявки от приёма до выплаты, точки подключения ликвидности и резерва, условия переключения источников при отклонении курса.
  • Политики доступа — матрица ролей с правами на правку курсов, маршрутов и вывод средств.
  • Регламенты реагирования — чек-листы на падение источника ликвидности, зависший депозит и расхождение балансов.
  • Документация по интеграциям — интерфейсы приёма заявок и статусов, форматы обмена, поведение при недоступности источника и повторных запросах.
  • Инструкции по развёртыванию — как поднять копию контура, где лежат резервные копии и за какое время возвращается приём заявок.

Политики доступа и разделение ролей

Права на вывод средств и правку маршрутов не совпадают у одного человека, критичные операции подтверждаются вторым сотрудником. Каждое изменение курса или лимита пишется в журнал с автором, поэтому доступ отзывается одной операцией при уходе сотрудника.

Регламенты реагирования и дежурства

Для каждого класса сбоя заданы уровень, время реакции и ответственный: отклонение курса — дежурный оператор, недоступность источника — инженер сопровождения. Разбор инцидента фиксирует причину и правку регламента, чтобы сбой не повторился.

Кейс: запуск сервиса обмена на готовом ядре — метрики до и после

Проект — запуск обменного сервиса под собственным брендом заказчика на готовом ядре сопоставления заявок (OpenDAX). Ядро подключили к трём каналам ликвидности, собрали кассовый учёт, антифрод и панель оператора, после чего держали нагрузку на реальном трафике. Ниже — метрики до старта и после стабилизации.

Что было до старта

В стартовой версии заявки шли в одну очередь без приоритетов: на пиках часть не получала подтверждение и зависала, доля потерянных заявок доходила до 8–12%. Клиент видел замерший статус, писал в поддержку, оператор разбирал случай вручную — на это уходила почти треть обращений. Отказ канала ликвидности останавливал обмен целиком: переключение делали руками, восстановление занимало 25–40 минут, заявки копились, а спред уходил в минус.

Что изменилось после запуска

Ядро перевели на идемпотентную обработку с ключами заявок, приоритетную очередь и повторы с затухающей задержкой. Доля потерянных заявок упала до 0,3–0,5%, пропускная способность выросла с 40 до 350 заявок в секунду без роста задержки. Ручные разборы сократились с трети обращений до 4–6%: учёт ведётся двойной записью, расхождения ловит автосверка, а проверка доступности каналов уводит трафик на резервный источник за 40–90 секунд. Отказ канала ликвидности перестал быть инцидентом для клиентов — они видят смену курса, но не остановку обмена.

Что делать, если часть компонентов у вас уже развёрнута?

Да, частично развёрнутый контур — обычный случай: нода уже поднята, приём платежей работает, проверка происхождения средств подключена. Мы не начинаем с нуля, а встраиваемся поверх и меняем только то, что не удержит целевую нагрузку или не даст контроля над операциями. По каждому компоненту решение принимаем по трём критериям: запас по нагрузке, наличие журнала событий и документированный интерфейс для связи.

Ниже — как обычно раскладываются узлы при такой доработке.

Компонент Как встраиваем Ограничения
Нода блокчейна Подключаемся к вашей через стандартный интерфейс, при отставании синхронизации ставим резервный узел Нужен запас ресурсов и второй узел для восстановления
Проверка происхождения средств Оставляем сервис, приводим ответы к единому формату и вешаем на все входящие операции Нужна история адресов, часть запросов уходит на ручную проверку
Антифрод обменника Надстраиваем правила поверх текущих журналов: лимиты, скорость выплат, повторяющиеся адреса Без журнала событий правила работают вслепую
Кастодиальное хранение ключей Переносим в изолированный контур с разделением прав и журналом операций Если ключи хранились в открытом виде — перевыпуск адресов и перевод средств
Платёжный шлюз Оставляем провайдера, добавляем второй канал и сверку статусов Не все провайдеры отдают уведомления о смене статуса — нужен опрос

Вложения сохраняются там, где компонент отдаёт события и поддаётся проверке, — обычно это нода и платёжный шлюз. Заменяем то, что нельзя проконтролировать: кастодиальное хранение ключей и антифрод почти всегда переносим в наш контур, потому что здесь цена ошибки максимальна. Внешнюю аналитику берём готовую — Chainalysis и аналоги закрывают проверку происхождения быстрее, чем собственные правила.

Перед работами делаем инвентаризацию: собираем конфигурации, схему потоков и список доступов. По ней фиксируем, что остаётся на месте, что переносим и что выводим из эксплуатации — до начала изменений, а не по ходу.

Инженерные сомнения перед запуском: лицензии, лимиты, доработки

Перед стартом обменника команда заказчика проверяет пять вещей: кому принадлежит ядро, можно ли править код своими силами, как платформа ведёт себя при исчерпании лимитов поставщика ликвидности, где хранятся ключи и как перенести накопленные данные.

Что входит в лицензию на ядро?

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

Можем ли дорабатывать обменник своими силами?

Передаём доступ к репозиторию и схему модулей. Ваши правки живут отдельной веткой, обновления ядра приходят поверх и не затирают код.

Что будет, если у поставщика закончится лимит?

Ядро работает с несколькими источниками, а маршрутизация выбирает доступный по цене и объёму. При исчерпании лимита заявка уходит на резервный источник, а если недоступны все — пользователь получает понятный отказ.

Где хранятся приватные ключи?

В изолированном модуле подписи, не в базе данных и не в конфигурационных файлах. Выводы проходят через роли сотрудников и суточные лимиты на отток.

Как переносится база и история операций?

Прогон на копии, сверка контрольных сумм по балансам и операциям, затем переключение в окно низкой нагрузки с готовым откатом на прежний контур.

Обсудим задачу — вернёмся со схемой, планом работ и оценкой

Чтобы оценка запуска обменника была предметной, а не «плюс-минус порядок», нам нужен от вас набор вводных. Собрать их можно в одном разговоре — этого достаточно, чтобы посчитать этапы, риски и объём работ.

  • потоки заявок: какие операции выводим в первую очередь, где остаётся ручной контроль, лимиты по суммам, сценарий при зависшей транзакции;
  • ограничения по юрисдикции: страны приёма клиентов, требования к подтверждению личности, нужен ли лицензируемый контур или работа через партнёрскую инфраструктуру;
  • требования к хранению ключей: горячий и холодный контур, кто держит доступ, разделение прав операторов, порядок восстановления;
  • каналы ликвидности: с кем уже есть договорённости, каких поставщиков добавляем, приоритет по объёму и качеству цены;
  • схема интеграций: с чем связываем систему — платёжные сервисы, проверка происхождения средств, кошельки, внутренний учёт;
  • передача проекта: кто администрирует обменник после запуска, нужен ли исходный код, доступы и обучение команды.

В ответ присылаем схему интеграций с границами ответственности, план работ по этапам с точками приёмки и оценку запуска обменника. Отдельно фиксируем формат передачи проекта: комплект кода, конфигурации инфраструктуры, политики доступа и документация.

Опишите задачу в свободной форме — вернёмся с оценкой и планом.

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

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

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1394
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1369
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    816
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1141