Архитектура крипто-обменника: от MVP до enterprise
Крипто-обменник — это не просто платёжный шлюз. Архитектурно он проще биржи, но бизнес-логика требует точного управления ликвидностью, курсообразования и интеграции с платёжными системами. Неправильное управление маржой — частая причина убытков. Например, при обмене $50 комиссия сети может составлять до 10% от суммы, что съедает прибыль, если маржа не адаптивна. Мы решаем это с помощью tiers — чем больше сумма, тем ниже процент. Экономия для клиента — до 30% на мелких сделках. Мы создаём обменники под ключ: от MVP до enterprise-решений с собственной резервной системой. Наши инженеры — более 5 лет опыта в Ethereum и смежных блокчейнах, 30+ завершённых проектов. Гарантируем стабильность и соответствие требованиям регуляторов. При разработке мы учитываем такие нюансы, как сетевые комиссии, время подтверждения и волатильность. На одном из проектов мы столкнулись с ситуацией, когда фиксированная маржа делала 30% сделок убыточными — внедрение динамической маржи исправило это.
Почему стоит выбрать гибридную модель?
Агрегатор (без ликвидности) роутит заказы через партнёров — Changelly, ChangeNow. Быстрый старт, минимальные риски, но полная зависимость от внешних курсов и комиссий. Собственные резервы дают контроль над курсами и маржой, но требуют постоянного пополнения и мониторинга. Лучше всего — гибрид: мелкие сделки (до $1000) выполняются из собственного пула, крупные — через агрегаторы. Это снижает операционные риски и обеспечивает конкурентоспособные курсы. Мы рекомендуем именно этот подход для большинства проектов.
Как обеспечить безопасность средств в крипто-обменнике?
Безопасность на всех уровнях: от кода (формальная верификация смарт-контрактов) до инфраструктуры (cold wallets, мультисиг). Для мониторинга транзакций используем собственные решения с webhooks от Alchemy/QuickNode. Каждая транзакция проходит цепочку статусов: created → awaiting → confirming → exchanging → sending → finished. Время жизни котировки — 15 минут, чтобы избежать проскальзывания при волатильности. Дополнительно мы настраиваем мониторинг резервов в реальном времени: если остаток на hot wallet падает ниже порога, система автоматически пополняет его из cold storage через мультисиг-транзакцию. Это исключает зависание заказов и потерю клиентов.
Что такое динамическая маржа и зачем она нужна?
Фиксированная маржа — источник убытков при мелких сделках. Например, при обмене $100 с комиссией сети $3 и маржой 2% ($2) обменник получает убыток $1. Динамическая маржа решает это: для сумм до $100 маржа устанавливается 3%, до $1000 — 2%, до $10 000 — 1.5%, выше — 1%. Так обменник остаётся в плюсе, а клиент платит меньше на крупных суммах. Реализуется простым кодом:
def get_dynamic_markup(self, amount_usd: Decimal) -> Decimal: tiers = [ (Decimal('100'), Decimal('3.0')), # до $100 — 3% (Decimal('1000'), Decimal('2.0')), # до $1000 — 2% (Decimal('10000'), Decimal('1.5')), # до $10k — 1.5% (Decimal('inf'), Decimal('1.0')), # выше $10k — 1% ] for threshold, markup in tiers: if amount_usd <= threshold: return markup return tiers[-1][1] Процесс обмена
- Клиент указывает пару и сумму.
- Система генерирует депозитный адрес, фиксирует курс.
- После отправки клиентом средств запускается мониторинг блокчейна.
- После N подтверждений (конфигурируется) — конвертация и отправка результата клиенту.
- Оповещение с TxHash вывода.
Управление резервами
class ReserveManager: def reserve_for_exchange(self, currency: str, amount: Decimal) -> bool: """Резервируем сумму для выплаты клиенту""" available = self.get_available_reserve(currency) if available < amount: # Не хватает резервов — нужно пополнить self.trigger_reserve_topup(currency, amount) return False # Атомарно резервируем self.db.execute( "UPDATE reserves SET reserved = reserved + %s WHERE currency = %s", (amount, currency) ) return True def check_low_reserves(self): """Уведомление при низких резервах""" for currency, balance in self.get_all_reserves(): threshold = self.config.reserve_thresholds[currency] if balance < threshold: self.alerter.send(f"Low reserve: {currency} = {balance} (threshold: {threshold})") Сравнение моделей обменника
| Модель | Контроль курса | Риски | Скорость запуска |
|---|---|---|---|
| Агрегатор | Нет | Низкие | Быстрый |
| Собственные резервы | Полный | Высокие | Долгий |
| Гибрид | Частичный | Средние | Умеренный |
Влияние количества подтверждений на время обмена
| Монета | Кол-во подтверждений | Среднее время |
|---|---|---|
| Bitcoin | 3 | ~30 мин |
| Ethereum | 12 | ~5 мин |
| USDT (ERC-20) | 12 | ~5 мин |
| Solana | 1 | ~10 сек |
Типичные ошибки при разработке
- Неучтённые сетевые комиссии при мелких сделках: динамическая маржа решает.
- Отсутствие мониторинга резервов в реальном времени — приводит к зависанию заказов.
- Неправильная настройка времени жизни котировки: слишком долго — проскальзывание, слишком коротко — потеря клиентов.
Что входит в работу
- Аналитика и проектирование: выбор модели, расчёт маржи, интеграция с внешними API.
- Разработка back-end (Python/Go) и front-end (React/Next.js).
- Подключение KYC/AML (Sumsub/Veriff) — опционально.
- Интеграция с биржами (Binance, CoinGecko) для котировок.
- Настройка админ-панели для управления курсами, резервами и пользователями.
- Документация, обучение команды, поддержка после запуска.
Сроки разработки
- MVP (2–3 пары, без KYC): 6–8 недель
- Полноценный обменник (10+ пар, KYC, admin panel): 3–4 месяца
- Мобильное приложение: +2–3 месяца
Свяжитесь с нами для детальной консультации и оценки вашего проекта. Наши инженеры проанализируют требования и подготовят коммерческое предложение с учётом ваших задач. Получите консультацию, чтобы мы предложили оптимальную архитектуру и сроки.







