Раздел 0 · Обзор

Криптоинтеграция — что нашли и что рекомендуем

ETNA добавляет торговлю криптой в Base / Pro / Mobile, встраивая стек стороннего брокера. Coinbase Prime CaaS — основной кандидат. Этот отчёт объединяет четыре блока исследования (возможности провайдера, UI-скоуп, рабочий прототип, риски и альтернативы) в один документ.

Рекомендуемый путь
Coinbase Prime
CaaS · суб-аккаунты · квалифицированное кастоди
Скоуп MVP
12 фич P0
6 фич P1 · 4 фичи P2 отложены
Окно интеграции
~14–18 недель
От контракта до MVP на одной платформе
Главный риск
Вендор-лок
Кастоди сложно мигрировать · продумать выход заранее
Главная рекомендация

Встроить Coinbase Prime CaaS с одним Prime-портфолио на каждого конечного клиента ETNA. Это укладывается в доменное ограничение (крипто = отдельный аккаунт, отдельный баланс, отдельный бэк-офис) и не заставляет ETNA брать на себя кастоди, KYC или маршрутизацию ордеров. С первого дня строим брокер-сайд абстракцию (интерфейс CryptoProvider), чтобы контракт-сёрфейс оставался переносимым на Kraken, Bitstamp или мульти-венью схему через Fireblocks в будущем.

★ Что нужно решить

Восемь открытых вопросов блокируют старт. Рекомендация по умолчанию выделена — где её нет, это развилка. Детальный контекст по каждому — в разделах 1–4.

Алекс
Какая платформа первая?
По умолчанию: Base Trader — минимальная поверхность, чистая сегрегация аккаунтов.
Алекс
Набор монет на запуске
Развилка: консервативный (BTC/ETH + 2–4) или широкий (как Webull, 70+). Для EU — без USDT.
Алекс
Подача комиссий
Развилка: только спред (Fidelity) или явная строка комиссии (IBKR).
Алекс
Язык микрокопии
По умолчанию: на запуске только английский, русский позже.
Евгений
Скоуп контракта с Coinbase
Развилка: закрытый цикл USD ↔ крипто или включить ончейн-переводы в MVP (отдельный комплаенс-трек).
Евгений
Покрытие MTL со стороны ETNA
Развилка: полностью полагаемся на лицензии Coinbase или ETNA удерживает отношения с клиентом.
Евгений
Один таск в Azure
Развилка: одна инициатива целиком или разбиваем по платформам.
Евгений
Кто владеет потоком фондирования
Развилка: внутренний перевод из брокерского кэша (Webull) или встроенный Coinbase Onramp.
Что охвачено
  • Продуктовые поверхности Coinbase, API, кастоди, KYC, комиссии, MiCA
  • UI-скоуп P0 → P2 с разделением по Base / Pro / Mobile
  • Интерактивный прототип (10 функциональных блоков с API-аннотациями)
  • Провайдер-независимая архитектура и матрица альтернатив
  • Тепловая карта рисков с ответственными за митигацию
Чего здесь намеренно нет
  • Кода бэкенда или дизайна схемы данных
  • Реальных данных клиентов / контрактов (всё иллюстративно)
  • Биллинга на стороне ETNA или прогноза выручки
  • Финального выбора платформы (Base / Pro / Mobile) — открытое решение
  • Условий контракта с Coinbase (на согласовании)
Раздел 1 · Coinbase

Coinbase — поверхности, API, план интеграции

У Coinbase есть три разные поверхности, на которых может строиться брокер: Exchange (институциональная площадка), Advanced Trade (ритейл-API) и Prime (CaaS с кастоди на уровне суб-аккаунтов). Prime — правильный выбор под ограничение ETNA «только UI, отдельный бэк-офис».

Сравнение продуктовых поверхностей

Поверхность Что это Подходит ETNA, потому что… Выбор
Coinbase Prime
Партнёрство по CaaS
Прайм-брокерский стек: smart order routing, кастоди через Coinbase Custody Trust Co. (NYDFS), финансирование, RFQ-блок, стейкинг. REST + FIX 5 + WebSocket. Иерархия: organization → entity → portfolio → wallet. Портфолио-суб-аккаунты дают каждому клиенту ETNA изолированный баланс и аудит-трейл. ETNA не держит кастоди; KYC остаётся за ETNA как брокером. Рекомендовано
Advanced Trade API
Преемник Pro
Ритейл-ориентированный REST + WebSocket поверх потребительских аккаунтов Coinbase. 550+ рынков. Опционально Coinbase Advanced Developer Program с долей от комиссии. Ниже барьер входа, но каждому конечному пользователю нужен собственный аккаунт Coinbase. Нет партнёрской иерархии суб-аккаунтов → ломает бэк-офисную сегрегацию ETNA. Только для прототипа
Coinbase Exchange
Институциональная площадка
Прямой торговый движок. REST + FIX 5 Order Entry + WebSocket Feed + FIX Market Data. FDIC pass-through по USD. Чистое исполнение. Подразумевает, что кастоди, KYC и сеттлмент ETNA реализует где-то ещё. Вне скоупа
Coinbase Onramp
Канал фиат → крипто
Хостед или headless-виджет для фиатного фондирования. Карта / банк / Apple Pay. KYC по покупке — на стороне Coinbase. Полезное дополнение для ноги фондирования в ритейл-флоу EU/US. Это не торговая поверхность. Дополнение
Embedded Wallets
Self-custody, MPC
Пользовательские кошельки через email / SMS / OAuth. Встроенный onramp, свопы, стейкинг. Self-custody ломает модель брокер + бэк-офис. Неподходящий инструмент в нашем случае. Отклонено
API-поверхность — что вызывает UI ETNAсправка · эндпоинты Coinbase
Торговля и ордера
POST/v1/portfolios/{id}/order
Отправка ордера · идемпотентность через client_order_id
POST/api/v3/brokerage/orders/preview
Превью полной цены (спред + комиссия)
GET/v1/portfolios/{id}/open_orders
POST/v1/portfolios/{id}/orders/{id}/cancel
FIX 5Order Entry Gateway · институциональный low-latency-путь
Аккаунты и позиции
GET/v1/portfolios
По одному на суб-аккаунт ETNA
GET/v1/portfolios/{id}/balances
GET/v1/portfolios/{id}/activities
Сверка для бэк-офиса
GET/v1/portfolios/{id}/fills
POST/v1/portfolios/{id}/wallets · trading / vault / onchain
Рыночные данные
GET/api/v3/brokerage/products/{id}/candles
Гранулярности 60s … 86400s · максимум 300/req
GET/api/v3/brokerage/best_bid_ask
WSticker · level2_batch · candles · market_trades
WSheartbeat · таймаут неактивности 60–90 с
Переводы и комплаенс
POST/withdrawals/crypto
Требует travel_rule_data в EU/SG
POST/address-book · whitelist обязателен в Travel Rule-юрисдикциях
WSuser · события по ордерам и балансу per-portfolio (JWT-авторизация)
GET/exchange/changes/changelog · подписка на изменения API

План интеграции — 5 фаз

Фаза 1
Недели 1–3
Контракт и онбординг
  • Заявка на CaaS · interest form
  • KYB-пакет (учредительные, бенефициары, AU-лист)
  • Выбор юр.лица: торговля — Coinbase Inc.; кастоди не-US — Coinbase Custody International (Ireland)
  • YubiKey для AU, видео-верификация
  • Бесплатная sandbox · согласование тарифа
Фаза 2
Недели 3–6
Адаптер провайдера
  • Сборка интерфейса CryptoProvider
  • Маппинг Prime REST + WS
  • Поток JWT-авторизации
  • Путь превью ордера
Фаза 3
Недели 5–10
UI · одна платформа
  • Сначала Base Trader (меньше поверхность)
  • Переключатель аккаунтов
  • Фичи P0 №1–12
  • Подключение прототипа v1.1
Фаза 4
Недели 9–12
Сверка
  • Зеркало регистра в бэк-офисе
  • Сверка activities и fills
  • Поля Travel Rule
  • Операционный плейбук
Фаза 5
Недели 12–18
Стабилизация и раскатка
  • UAT с пилотными клиентами
  • Комплаенс-раскрытия
  • UX для maintenance-окон
  • Запуск в проде
Операционный подвох (Coinbase Prime). OAuth-скоупы фиксируются при регистрации приложения и не расширяются позже без переавторизации каждого пользователя. Скоупы нужно продумать до запуска. API-ключи на уровне организации запрашиваются через primeops@coinbase.com. Миграция MiCA отменяет все открытые ордера в момент перехода — партнёрский код должен это обработать.
Официальная документациясправка · ссылки на доки
Раздел 1Б · Spencer Logic

Spencer Logic — FX/CFD-стек как опция для крипто-CFD

Spencer Logic — это back-office + WebTrader стек для FX/CFD-брокеров с MetaTrader-наследием. Крипто здесь — отдельный класс инструментов рядом с FOREX / Metal / CFD / Stocks (подтверждено в demo-трейдере), реализованный как margin/CFD, а не как спот с собственной кастоди. Опция актуальна, если ITG ок с CFD-моделью и готов принять trade-off «быстрый embed чужого WebTrader против собственного UI ETNA».

Что подтверждено в demo

Поверхность Что увидели Источник Статус
WebTrader 5 (wt5)
Trader UI
SPA по адресу /wt5. Asset-class табы: All · FOREX_MAJORS · FOREX2 · Metal · CFD · Crypto · Stocks. Margin-модель: Balance / Equity / UPL / Used Margin / Free Margin / Margin Utilization / Liquidation Level. Логин spldemo101 · скриншот Подтверждено
Crypto-инструменты
CFD-style, USD-quoted
BTC/USD · ETH/USD · LTC/USD · XRP/USD · BCH/USD · BNB/USD · ADA/USD · SOL/USD · DOT/USD · UNI/USD — десять пар, все котируются к USD, со спредом, TP/SL, UPL, Used Margin (USD). Свечной чарт + лента бид/аск + ордер-тикет. Crypto-таб демо Подтверждено
BO API (Partner Portal)
v1.0.680-master · OpenAPI 3.1
~250 эндпоинтов. Auth = cookie-сессия (JSESSIONID) + опциональный 2FA. Время сервера — America/New_York. WebSocket-каналы: /api/notifications, /api/account-books, /api/ctier-books, /api/account-operations. Enum типа инструмента включает CRYPTO рядом с FOREX / METAL / CFD / CFD_STOCKS / COMMODITIES. swagger-ui Подтверждено
Embed-флоу
Whitelabel WebTrader
В BO API есть /api/trader/webtrader-auto-login + /api/public/whitelabel-config (имя бренда, темы, логотипы). Документированной отдельной «JS-widget SDK» в swagger не нашли — embed = iframe всего /wt5 с auto-login-ссылкой. swagger · public endpoints Частично
On-chain custody / withdraw
Спот, кошельки
В demo и swagger мы не нашли on-chain wallet-эндпоинтов, депозит/withdraw в крипту, addresses, network selection. /api/deposit/currencies и формы пополнения существуют, но Cryptocurrency указана как один из payment-method-ов, не как актив. Это согласуется с CFD-моделью. swagger search Не подтверждено
BO API — короткая карта эндпоинтов справка · Spencer Logic Partner Portal
Торговля и ордера · /api/wt/order/*
POST/api/wt/order/position/place/market-order
POST/api/wt/order/position/place/pending-order
POST/api/wt/order/position/modify · .../close · .../close/all
POST/api/wt/order/pending/cancel · .../cancel/all · .../modify
GET/api/wt/order/status · bulk-вариант есть
Аккаунты, портфель, позиции
GET/api/wt/portfolio/accounts · .../account-balance · .../all-active-account-balances
GET/api/wt/portfolio/open-positions · .../open-tickets · .../pending-orders
GET/api/trading-account/accounts · .../balance · .../positions · .../trading-history
GET/api/trader/positions · .../deals · .../pendings · .../summary-report
Инструменты и рыночные данные
GET/api/wt/instrument/all · полный список с asset-class
GET/api/trader/symbols
GET/api/market/prices
WS/api/account-books · ценовые книги по аккаунту
WS/api/ctier-books · по client-tier
WS/api/account-operations · live-апдейты по сделкам
Auth, embed, whitelabel
POST/api/login · /api/logout · cookie JSESSIONID
POST/api/a2f/* · TOTP-style 2FA (qr-code, set-auth-type, verify-key)
GET/api/trader/webtrader-auto-login · одноразовый login-токен для iframe
GET/api/public/whitelabel-config · бренд, темы (light/dark), favicon, логотипы
GET/api/public/app-theme.css · CSS-токены темы
GET/api/session-status · TTL сессии

Что Spencer Logic — это, а что не это

Чем является
  • Whitelabel-стек FX/CFD-брокера — back-office (Partner Portal) + клиентский WebTrader 5 (SPA) + MT4/MT5 интеграция (/api/mt/*, /api/mt4/mapping/*, /api/mt_groups/*).
  • Crypto = ещё один класс инструментов в той же margin-модели, что FOREX и Metal. UPL и комиссии — в USD.
  • IB-модель внутри (/api/ib-reports/*, /api/referral-program*) — рассчитан на каскад брокер → IB → клиент.
  • Доступ к торговле идёт через cookie-сессию пользователя (или auto-login-токен), не через ключ-секрет API.
Чем не является
  • Не нативная крипто-площадка. В demo нет on-chain wallet-эндпоинтов, депозита/withdraw монет, выбора сети — крипта здесь синтетика (CFD), а не спот с кастоди.
  • Не «адаптер на биржу» в нашем смысле. SL сам — провайдер; цены приходят из его LP-стека, не из конкретной биржи, к которой мы могли бы написать отдельный адаптер.
  • Не JS-widget SDK. Документированный embed — iframe всего WebTrader-а с auto-login-ссылкой и whitelabel-темой; точечно встроить «только график BTC» или «только тикет» из публичной доки нельзя.
  • Не партнёрская иерархия sub-accounts как у Coinbase Prime — есть IB / department / org-units, но не portfolio-like sub-accounts с изолированным balance per клиент ETNA в том же виде.

Сценарии стыковки с моделью ETNA

Сценарий Как выглядит Соответствие модели «ETNA = UI + адаптер на биржу» Оценка
A. Embed wt5 в Etna
iframe SL WebTrader + auto-login
Внутри крипто-таба ETNA встраивается iframe /wt5. Тема, лого подгружаются из whitelabel-config. ETNA не пишет крипто-UI — отдаёт его SL. Конфликт со скоупом. Etna перестаёт быть «только UI» — Etna становится «только обёрткой». Терят контроль над дизайн-системой, прототипом и UX, продуктовый дифференциатор размывается. Не подходит
B. SL как backend-провайдер
Свой UI ETNA поверх BO API
ETNA строит свой крипто-UI на нашем прототипе и вызывает /api/wt/* + WebSocket-каналы SL для котировок, ордеров и позиций. SL играет роль одного из провайдеров рядом с Coinbase. Близко к модели. SL встраивается как один «адаптер на биржу» — но это адаптер на CFD-агрегатор, а не на конкретную биржу. Сегрегация per-клиент — через trading-account / IB-иерархию SL, не через portfolio sub-accounts. Условно
C. Гибрид: SL для крипты + Coinbase Prime для спота Спот-крипта (с кастоди и on-chain withdraw) — через Coinbase Prime. Крипто-CFD (для маржинальных стратегий клиента) — через SL. Разные продуктовые поверхности. Возможен только если ITG явно хочет и CFD, и спот. Удваивает сложность бэк-офиса и compliance. Опционально

Spencer Logic vs Coinbase Prime — сравнение под наш кейс

Параметр Spencer Logic Coinbase Prime
Тип крипты Синтетика — CFD на BTC/ETH/LTC/XRP/BCH/BNB/ADA/SOL/DOT/UNI к USD (подтверждено в demo) Спот + custody через Coinbase Custody Trust Co. (NYDFS), 550+ рынков
Кастоди Не наблюдается on-chain custody в demo/API. Позиция = маржинальная запись. Полноценная регулируемая кастоди на уровне sub-аккаунтов
Auth-модель Cookie-сессия (JSESSIONID) + опциональный 2FA. Auto-login-токен для iframe. API-ключи + signed-requests (HMAC), FIX-сертификаты для прямого доступа
Поток котировок WebSocket account-books / ctier-books (LP-агрегированный) WebSocket ticker / level2_batch / candles / market_trades — биржевой стакан
Сегрегация клиента Trading account + IB-иерархия + org-units; нет portfolio-like sub-accounts «как у Prime» Portfolio sub-accounts с изолированным balance и аудит-трейлом per клиент
Депозит / вывод Bank Wire / Card / Skrill / Crypto-в-фиате как payment method — НЕТ on-chain crypto-вывода в API Wire / ACH / on-chain crypto через wallet API; вывод привязан к whitelisted-адресам
Регуляторная картинка FX/CFD-брокерская: CFD на крипту запрещены для ритейла в US, ограничены в EU/UK. Подходит под рынки, где CFD легальны. Регулируется как US trust + Coinbase Lux под MiCA; спотовая модель глобально приемлемее
Покрытие API ~250 эндпоинтов, OpenAPI 3.1, MT4/MT5-интеграция «из коробки» REST + FIX 5 (Order Entry + Market Data) + WS; deeper market/portfolio APIs
Embed iframe полного WebTrader + whitelabel theme (light/dark, logo) Нет «embeddable trader» — собираем свой UI с нуля поверх API
Эффект на оценку «1000 ч» Если идём embed wt5 — резко вниз (часы UI почти исчезают, остаётся обвязка). Если идём «свой UI поверх BO API» — порядок тот же, что для Coinbase, плюс время на адаптер CFD-семантики (margin, swap, групповые маркапы). Базовая оценка плана из «Раздела 1»: 5 фаз поверх Prime — без изменения

Что увидели в demo (screenshots)

Главный экран wt5 — FX-инструменты
Spencer Logic WebTrader 5 — FX market watch

Asset-class табы видны над списком: All · FOREX_MAJORS · FOREX2 · Metal · CFD · Crypto · Stocks. Сверху — портфельная панель с Balance / Equity / UPL / Used Margin / Free Margin / Margin Utilization / Liquidation Level.

Crypto-таб — 10 пар к USD
Spencer Logic WebTrader 5 — Crypto instruments tab

BTC / ETH / LTC / XRP / BCH / BNB / ADA / SOL / DOT / UNI — все к USD, со спредом, чарт + ордер-тикет с TP/SL и Used Margin в USD. Поведение и колонки совпадают с FX-табом → модель = CFD/margin, не спот.

Открытые вопросы (для ITG / Spencer Logic)

  1. CFD vs спот. Подтвердить: Spencer Logic поддерживает только крипто-CFD (синтетика, без on-chain custody), или есть отдельный спотовый стек, не видимый в demo-аккаунте? Это ключ к разговору с регулятором и к фиту в US/EU/UK.
  2. Происхождение котировок. Кто LP за крипто-парами в SL? Это аггрегатор (LMAX-style, B2C2, Cumberland) или их собственный warehouse? От ответа зависят spread, slippage и зависимость от одного контрагента.
  3. Доступ к BO API для брокера. Демо-логин (spldemo101) к BO API возвращает 401 — это trader-уровень. Какой scope получает брокер уровня ETNA на BO API? Видны ли rate limits / SLA?
  4. Embed-модель. Есть ли (вне публичной swagger-доки) компонентный SDK, чтобы встраивать отдельные элементы (chart / ticket / depth-of-book) в наш UI, а не iframe целиком? Иначе вариант B («свой UI поверх API») остаётся единственным «не-теряем-UI» путём.
  5. Сегрегация per клиент. Можно ли создавать суб-аккаунт ETNA с собственным balance и отчётностью, не плодя trading-account-ы вручную? Как реализуется аудит-трейл за квартал?
  6. Депозит/withdraw крипты. Если клиенту нужно вывести крипту on-chain — есть ли отдельный wallet-сервис SL, или вывод возможен только в фиат? (В demo и в публичной swagger-доке — нет.)
  7. Commerce. SaaS-модель Spencer Logic под whitelabel — фикс / per-trader / rev-share? Как это меняет наш оценочный фрейм «1000 ч vs SaaS» из переговоров с ITG?
Раздел 2 · Функциональные требования

Что должен уметь криптоинтерфейс ETNA

Двенадцать фич P0 формируют обязательный must-ship-набор. Шесть фич P1 закрывают паритет. Всё за пределами (продвинутые order ladder, OCO, лендинг, стейкинг) откладываем. Полный источник: docs/research/crypto-ui-scope.md.

P0 — обязательны к запуску

1
Отдельный контекст крипто-аккаунта со своим балансом и позициями
Доменный факт: модель sibling-аккаунтов. Так делают Robinhood, Schwab Crypto, Fidelity, Webull.
P0
2
Рыночные данные — последняя цена, изменение за 24 ч, базовый график, вотчлист
Минимум для price discovery. Coinbase WS ticker + candles.
P0
3
Ввод ордера — только market + limit
Универсальный минимум у всех референсных брокеров. Fidelity Crypto предлагает только эти два типа.
P0
4
Переключатель количества USD ⇄ монета в ордере
Крипто-специфичный UX. Паттерн Robinhood и Webull.
P0
5
Дробные единицы с точностью 8 знаков (минимум 1 сатоши)
Хранится с полной точностью, округление — только для отображения.
P0
6
Подтверждение ордера с полной ценой исполнения
Спред + комиссия раскрываются на каждом подтверждении. Регуляторное требование + доверие пользователя.
P0
7
Открытые ордера + история исполненных сделок
Нужно для сверки, разбора споров и налогов.
P0
8
Экран позиций — холдинги по каждой монете, средняя цена, нереализованный P/L
Ожидается паритет с поверхностью позиций stock-аккаунта.
P0
9
Переключатель аккаунтов — селектор в шапке, крипто ↔ stock
Как у Schwab, Fidelity, Webull. Окно ордера наследует активный аккаунт.
P0
10
Расписание 24/7 с баннером maintenance-окна
Без ограничения по market hours. Баннер показывает ближайшую паузу (суточное окно Coinbase).
P0
11
Символика — код монеты + парная котировка (BTC/USD)
Избежать неоднозначности BTC vs XBT vs BTCUSDT.
P0
12
Фондирование крипто-аккаунта из связанного брокерского кэша
Паттерн Webull — внутренний перевод между sibling-аккаунтами.
P0

Матрица отличий между платформами

Возможность Base Trader Pro Trader Mobile Примечания
Ордера market и limit P0 на всех платформах
Stop / stop-limit отложено v1.1 Pro-аудитория требует; Base/Mobile подождут
Глубина рынка / стакан Pro v2 Fidelity не делает; ladder у Robinhood только на mobile
OCO / бракет Pro v2 Откладываем везде
Регулярные покупки отложено отложено отложено Легко прикрутить после стабильного ввода ордера
Мульти-панельный график Pro переиспользует существующий чартинг-виджет
Переключатель аккаунтов (шапка) На Mobile — сегмент в верхней части экрана
Выбор маршрутизации только мульти-венью Скрыт при одной площадке
24/7 + maintenance-баннер Видимый, дисмиссабельный, локализованный по времени
UX-паттерны, специфичные для крипты
  • Точность. 8 знаков для BTC/ETH, 6 знаков для стейблов. Храним полную, показываем округлённую.
  • 24/7. Никакого UI «обычные часы / after-hours», унаследованного от акций.
  • TIF по умолчанию. Market = IOC, Limit = GTC. (В акциях дефолт — Day; в крипте такого нет.)
  • Комиссии. Полная цена исполнения на каждом подтверждении. Спред зашит у ритейла, явный у институционалов.
  • Символика. Пары coin/USD в ордере, голый код монеты — в вотчлисте.
Вне скоупа (отложено)
  • Стейкинг, лендинг, yield, NFT, DeFi
  • Маржа / плечо на крипте
  • OCO / бракет / trailing stop / iceberg / алгоритмы
  • Стакан / depth-of-market (только Pro v2)
  • Ончейн-переводы (отдельный комплаенс-трек — v2)
  • Выбор tax lot / harvesting UI
  • Cross-margin между крипто- и stock-аккаунтами
  • Мульти-язычность (на запуске только английский)
Раздел 3 · Прототип

Рабочий прототип (v1.1)

Общий веб-UI-прототип с 10 интерактивными блоками и инлайн-аннотациями API Coinbase. Один HTML-файл, без сборки и без бэкенда. Откройте действие ниже в новой вкладке или прокрутите вниз и используйте встроенный просмотр.

Интерактивные блоки
  • Переключатель аккаунтов (крипто ↔ акции)
  • Вотчлист · 4 тикера
  • График цены + панель интервалов
  • Вкладки Positions / Open / History
  • Окно ордера · превью
  • Модалка подтверждения
Переключатель API-аннотаций

На каждом функциональном блоке виден чип эндпоинта Coinbase (GET POST WS), кликабельный на канонический документ. Тоггл в шапке прячет их для чистого просмотра.

10 функциональных блоков · 34 аннотации
Чем он не является
  • Не отражает специфику Base / Pro / Mobile
  • Не подключён к Coinbase
  • Не продакшен-код
  • Только английский · только светлая тема
Crypto MVP · прототип v1.1
prototypes/crypto-mvp-v1/index.html · 99 KB · 10 блоков · 34 API-аннотации
Если прототип не отображается во фрейме (некоторые браузеры блокируют iframe для file://), воспользуйтесь кнопкой Открыть в новой вкладке.
Раздел 4 · Аналитика и риски

Риски, альтернативы и провайдер-независимая архитектура

Coinbase Prime — кандидат, но каждый UI-блок должен ходить через общий интерфейс CryptoProvider, чтобы контракт-сёрфейс можно было переключить на Kraken, Bitstamp или мульти-венью схему через Fireblocks без переписывания фронта ETNA.

Провайдер-независимая архитектура

Три слоя, одно направление зависимости: UI ETNA обращается к стабильному адаптеру, адаптер реализует маппинг на Coinbase Prime сегодня, альтернативные адаптеры добавляются позже. UI никогда напрямую не называет провайдера.

UI ETNA · 3 ПЛАТФОРМЫ АБСТРАКЦИЯ ПРОВАЙДЕРА АДАПТЕРЫ ПРОВАЙДЕРОВ Base Trader Веб · массовый пользователь Market + limit · переключатель USD/монета Переключатель аккаунтов Pro Trader Веб · активный трейдер + Stop / stop-limit + Мульти-панельный график Mobile iOS / Android Табы · slide-up окно ордера Сегмент в шапке экрана Интерфейс CryptoProvider Стабильный контракт · провайдер-нейтральные типы · идемпотентные операции auth() accounts() marketData() orders() transfers() webhooks() Все идентификаторы провайдер-нейтральны (portfolioId, productId, orderId) — Coinbase-специфика наверх не утекает KrakenAdapter Embed · 660 активов FIX 4.4 · REST · WS MiCA · суб-аккаунты В будущем CoinbaseAdapter Prime CaaS · 80+ активов FIX 5.0 · REST · WS NYDFS Trust · MiCA Основной BitstampAdapter «As-a-Service» REST · WS · FIX В будущем FireblocksAdapter Мульти-венью маршрутизация MPC-кастоди В будущем
Интерфейс CryptoProvider — код и обоснованиесправка · для инжиниринга
CryptoProvider — поверхность возможностей
// Провайдер-нейтральные типы — никаких Coinbase-форм
interface CryptoProvider {
  auth: {
    // возвращает короткоживущий JWT для WS · канал user
    issueSessionToken(portfolioId): Promise<Token>;
  };
  accounts: {
    listPortfolios(): Promise<Portfolio[]>;
    getBalances(portfolioId): Promise<Balance[]>;
    getActivities(portfolioId, range): Promise<Activity[]>;
  };
  marketData: {
    getCandles(productId, granularity): Promise<Candle[]>;
    getBestBidAsk(productId): Promise<BBO>;
    streamTicker(productIds, onTick): Subscription;
  };
  orders: {
    previewOrder(req): Promise<Preview>;
    submitOrder(req, idempotencyKey): Promise<Order>;
    cancelOrder(portfolioId, orderId): Promise<void>;
    listOpen(portfolioId): Promise<Order[]>;
    listHistorical(portfolioId, range): Promise<Order[]>;
  };
  transfers: {
    initiateWithdrawal(req, travelRuleData): Promise<Transfer>;
    listAddressBook(portfolioId): Promise<Address[]>;
  };
  webhooks: {
    subscribe(events, url): Promise<Sub>;
    verifySignature(req): boolean;
  };
}
Почему каждая возможность — отдельный слот
  • auth. У разных провайдеров разные форматы токенов — JWT, HMAC-подписанный REST, FIX SenderCompID. Прячем механизм.
  • accounts. У Coinbase это portfolios, у Kraken — subaccounts, у Fireblocks — vault accounts. Нормализуем в один термин.
  • marketData. WS-каналы отличаются по фан-ауту, батчингу, авторизации. Адаптер сам владеет логикой reconnect и heartbeat.
  • orders. Двухшаговая схема preview → submit обязательна для раскрытия комиссий. Если у провайдера нет нативного превью — адаптер строит синтетическое.
  • transfers. Travel Rule-данные зависят от юрисдикции, а не от провайдера. Адаптер собирает пейлоад.
  • webhooks. Адаптер валидирует HMAC-подписи и переводит события провайдера во внутреннюю шину событий ETNA.

Альтернативы — сравнительный обзор

Оценили пять кандидатов. Coinbase Prime остаётся рекомендацией; остальные существуют, чтобы архитектура не была дверью в одну сторону. Источники: страницы Kraken Institutional и Embed, Binance VIP institutional, dev-доки Fireblocks, Bitstamp-as-a-Service, Anchorage Digital.

Полная матрица: 6 провайдеров × 7 критериевсправка · развернуть таблицу
Провайдер Модель кастоди Регулирование API-поверхность Суб-аккаунты Комиссии / модель Готовность к MiCA
Coinbase Prime
Основной кандидат
Квалифицированное кастоди (Coinbase Custody Trust, NYDFS). Сегрегация, Article 8 UCC. Страховой пул + FDIC pass-through по USD. US · 45+ MTL, NYDFS Trust
EU · MiCA через CB Lux (июнь 2025)
UK · ожидается FCA
CA · MSB
REST · FIX 5 · WS
JWT-авторизация · 10/15 rps
Нативно
Портфолио на клиента
Спред + tiered maker/taker (40–0 bps maker, 60–5 bps taker по объёму за 30 дней). CaaS-прайсинг индивидуальный. Да · Lux
Kraken
Embed / Institutional
Интегрированное кастоди · ISO 27001 + SOC 2 Type 1. «Bankruptcy-remote». Нет траст-компании уровня NYDFS. EU · №1 по доле рынка, соответствует MiCA
US · MSB, покрытие по штатам
UK · зарегистрирован в FCA
190+ стран
REST · FIX 4.4 · WS
Subaccounts API · базовая задержка 2,5 мс
Нативно
Strategy- и client-суб-аккаунты
Спред + tiered maker/taker. Embed-прайсинг индивидуальный с партнёром. 660+ активов. Да · EU
Binance
VIP / Institutional
Кастоди через Ceffu (партнёр). Banking Triparty — опция эскроу залога в регулируемом банке. 20+ юрисдикций, глобальная лицензия ADGM (Абу-Даби). Нет US-ритейла. После MiCA EU-покрытие неровное. REST · WS · FIX (институциональный)
2 000+ пар
По тиру
Суб-аккаунты открываются от VIP 1+ ($300k/30 дней)
Tiered VIP, ниже при большем объёме за 30 дней. Институционалам — индивидуально. Ограниченно
Bitstamp
As-a-Service (принадлежит Robinhood)
Три тира · тир «Complete» включает KYC/AML и лицензирование на стороне Bitstamp — вариант с минимальной нагрузкой. US + 45+ лицензий в мире
EU · позиционируется под MiCA
UK · FCA
REST · WS · FIX · Open Banking API «Exchange Plus»
Сегрегированная отчётность по клиентам
Tiered; «Complete» — end-to-end-пакет. Да
Fireblocks
Кастоди + маршрутизация
MPC-self-custody · Fireblocks Trust (NYDFS, 2024) для квалифицированного кастоди. Сегрегированные или sweep-to-omnibus хранилища. NYDFS Trust · SOC 2 · ISO 27001
Мульти-юрисдикция через банки-партнёры
REST · WS · вебхуки
Не торговая площадка — слой подключения
Нативно
Vault-аккаунты на клиента
Комиссии за кастоди и операции · комиссии площадок — pass-through Через партнёров
Anchorage
Только кастоди · федеральный банк
OCC-чартированный банк цифровых активов (2021). Самая сильная регуляторная обёртка в США. US · федеральный чартер
EU · ограниченно
REST · только институционалам По клиенту
Сегрегированное квалифицированное кастоди
Кастоди + финансирование · институционалам индивидуально Нет
Как это читать. Coinbase Prime выигрывает по US-регуляторике (NYDFS Trust) и собранному CaaS-скоупу. Kraken Embed — сильнейший fallback в EU. Fireblocks — правильная «страховка под мульти-венью», если ETNA позже захочет маршрутизировать ордера между провайдерами без перехода платформы. У Binance высокая ликвидность, но уход из США и неровное покрытие EU после MiCA делают его слабым основным выбором для ETNA. Anchorage и Bitstamp-Complete полезны в узких сценариях (только институциональное кастоди; полностью упакованный комплаенс).

MiCA-реальность 2026 — что это значит для коин-юниверса в EU

Это конкретные ограничения, которые ETNA получит в EEA «бесплатно» вместе с Coinbase Prime / CB Lux — их нельзя обойти кодом, только выбором ассетов и юридической формой работы с клиентом.

USDT удалён из EU

Tether отказался от MiCA-комплаенса (требование 60% резервов в EU-банках). Делистинг: Coinbase Europe (12.2024), Crypto.com (01.2025), Binance EU (03.2025). ESMA: «sell-only» до 31.03.2025, дальше — конверсии.

Импликация: для EU-клиентов ETNA не должен предлагать USDT как торговую пару. Прототип уже использует USDC — правильно.

Лимиты на не-EUR EMT

USDC сохранил MiCA-комплаенс (Circle авторизован в EU), но для не-евро EMT, используемых как средство платежа, действует cap эмитента: 1 млн транзакций или €200 млн в день. Лимит — на эмитента, не на пользователя, но при системном превышении эмитент обязан остановить выпуск.

Импликация: если EU-объёмы вырастут — иметь резервный план на EURC (Circle, euro-deno) или Stasis EURS.

EBA · PSD2-дедлайн 01.03.2026

По мнению EBA (июнь 2025), переводы EMT «от имени клиента» и кастоди-операции с EMT могут квалифицироваться как платёжные услуги по PSD2. Переходный период — до 1 марта 2026. Дальше — нужна PSD2-лицензия или партнёрство с PSP.

Импликация: на сценарий «ETNA переводит USDC между клиентами» нужен лицензированный посредник — это решение к Q1 2026.

Связка с прототипом и UI-скоупом. Прототип уже показывает четыре пары: BTC/USD, ETH/USD, SOL/USD, USDC/USD — без USDT. При выходе на EU стоит добавить EURC/EUR в watchlist как локальную альтернативу и пересмотреть подачу комиссий: для EU клиентов USDC ≠ «дешёвый стейбл», а потенциальный объект EMT-лимита.

Дашборд рисков

Двенадцать существенных рисков на матрице «влияние × вероятность». Наведите на чип, чтобы увидеть владельца митигации и конкретное действие.

Принять / наблюдать
Митигировать
Высший приоритет
Владельцы митигаций — краткосправка · те же данные в подсказках heatmap
Риск Владелец Конкретное действие Статус
Вендор-лок Architecture Построить абстракцию CryptoProvider с первого дня. Никаких Coinbase-типов в UI и бэк-офисном слое. Спроектировано
Изменения API Engineering Подписка на changelog Coinbase. Закладывать инженерный ресурс каждые 12–18 месяцев на апгрейды (прецеденты: FIX 4.2 → 5, legacy → CDP-ключи). План
Концентрация кастоди Compliance Документировать плейбук ончейн-миграции по клиентам. Подложить мульти-венью через Fireblocks как страховку в v2. План
Пробелы Travel Rule Compliance UI вывода блокируется при отсутствии Travel Rule-данных. Whitelist адресной книги обязателен в TR-юрисдикциях (EU, SG, CA). План
Сбой провайдера Engineering Поллер статус-страницы. Баннер degraded-режима. Авто-пауза новых ордеров, если WS heartbeat падает > 30 с. Видимо для пользователя — никогда не молча. План
Раскрытие волатильности Product + Legal Модалка первой сделки с регуляторно-выверенным текстом. Для ордеров от $5k — дополнительное подтверждение «введите сумму». План
Replay при миграции MiCA Engineering Обработка события «все открытые ордера отменены в момент перехода». Пересоздание висящих ордеров после миграции с уведомлением пользователя. План
Ошибки fat-finger Product Превью перед отправкой. Дополнительное подтверждение для крупного ордера. Зачитка полной цены в модалке подтверждения. В прототипе
Решения вынесены наверх. Восемь открытых вопросов (4 для Алекса, 4 для Евгения) собраны в блоке ★ Что нужно решить в начале отчёта — каждый с рекомендацией по умолчанию или развилкой.