Крах FTX и других бирж показал: активы на торговой платформе — это не ваши активы. Институциональные инвесторы теперь требуют zero counterparty risk. Copper.co решает это через ClearLoop — сеть off-exchange settlement, где средства хранятся в MPC-кошельках под полным контролем клиента, а торги идут без передачи активов бирже. Мы реализовали 15+ проектов интеграции custody, включая ClearLoop для фондов с портфелями от $50M.
Что даёт интеграция?
Без ClearLoop: трейдер переводит $10M на Binance — активы на бирже. Риск: взлом или банкротство. С ClearLoop: активы в custody Copper, на бирже только кредитная линия. Сеттлмент проходит внутри ClearLoop несколько раз в день (intraday netting). Итог — нулевой контрагентский риск. ClearLoop в 6 раз быстрее блокчейн-сеттлмента и экономит до 60% на комиссиях за вывод средств по сравнению с обычным переводом.
Для продуктов: custody API даёт программный доступ к кошелькам institutional уровня с MPC, policy engine для multi-level approval, audit trail для compliance. Всё это — в единой интеграции. Согласно отчётам Copper, клиенты экономят до 60% на комиссиях.
Как работает ClearLoop?
ClearLoop — это сеть, где каждая сделка записывается в офчейн-реестр, а финальный расчёт происходит внутри системы без блокчейн-транзакций. Это значит, что даже при огромных объёмах (типичные клиенты управляют портфелями от $10M) газовые издержки равны нулю. Согласно документации, ClearLoop поддерживает intraday netting с частотой расчетов до 6 раз в день, что снижает операционные риски.
Copper API: ключевые эндпоинты
Copper предоставляет REST API + WebSocket для real-time событий. Аутентификация: API Key + HMAC-SHA256 подпись запроса. Ниже полный пример клиента и вызовов — обратите внимание на обработку ошибок и подпись.
import crypto from 'crypto'; import axios from 'axios'; class CopperClient { private baseUrl = 'https://api.copper.co'; private signRequest( method: string, path: string, timestamp: number, body: string, ): string { const message = `${timestamp}${method.toUpperCase()}${path}${body}`; return crypto .createHmac('sha256', process.env.COPPER_API_SECRET!) .update(message) .digest('hex'); } async request<T>(method: string, path: string, data?: unknown): Promise<T> { const timestamp = Date.now(); const body = data ? JSON.stringify(data) : ''; const signature = this.signRequest(method, path, timestamp, body); const response = await axios({ method, url: `${this.baseUrl}${path}`, data: data || undefined, headers: { 'Authorization': `ApiKey ${process.env.COPPER_API_KEY}`, 'X-Signature': signature, 'X-Timestamp': timestamp.toString(), 'Content-Type': 'application/json', }, }); return response.data; } // Portfolio & wallets async getPortfolios() { return this.request('GET', '/platform/portfolios'); } async getWallets(portfolioId: string) { return this.request('GET', `/platform/portfolios/${portfolioId}/wallets`); } async createWallet(portfolioId: string, name: string, currency: string, type: 'hot' | 'cold') { return this.request('POST', '/platform/wallets', { portfolioId, name, mainCurrency: currency, type, }); } // Transactions & approval async createTransaction(portfolioId: string, currency: string, amount: string, toAddress: string, network: string, memo?: string) { return this.request('POST', '/platform/transactions', { type: 'withdrawal', portfolioId, currency, amount, toAddress, network, memo, }); } // ClearLoop async transferToClearloop(fromPortfolioId: string, toExchangeAccountId: string, currency: string, amount: string) { return this.request('POST', '/clearloop/transfers', { fromPortfolioId, toExchangeAccountId, currency, amount, }); } async getClearloopPositions(exchangeAccountId: string) { return this.request('GET', `/clearloop/positions/${exchangeAccountId}`); } } WebSocket: real-time обновления
import WebSocket from 'ws'; const ws = new WebSocket('wss://ws.copper.co/platform'); ws.on('open', () => { ws.send(JSON.stringify({ type: 'auth', apiKey: process.env.COPPER_API_KEY, signature: generateWsSignature(), timestamp: Date.now(), })); ws.send(JSON.stringify({ type: 'subscribe', channels: ['transactions', 'portfolio_balances'], portfolioIds: [portfolioId], })); }); ws.on('message', (data) => { const event = JSON.parse(data.toString()); if (event.type === 'transaction_update') { handleTransactionUpdate(event.payload); } if (event.type === 'balance_update') { handleBalanceUpdate(event.payload); } }); Compliance и reporting
Copper предоставляет audit-ready данные: все транзакции с timestamp, approver log, blockchain confirmation. Интеграция экспорта транзакционной истории за любой период — один API-запрос. Каждая запись включает: initiator, approvers, timestamps, txHash. Для регламентной отчётности достаточно подключить SIEM-систему через WebSocket. Для точного расчёта стоимости интеграции и сроков свяжитесь с нами — мы проведём аудит вашей инфраструктуры и предложим оптимальное решение.
Как устроена интеграция? Типовые этапы
| Этап | Длительность | Что происходит |
|---|---|---|
| KYB onboarding | 2–4 недели | Оформление документов, верификация компании, получение API-ключей |
| Базовая интеграция API | 2–3 недели | Разработка SDK, обработка webhooks, реализация deposit/withdrawal |
| Интеграция ClearLoop | 2–4 недели | Настройка биржевых аккаунтов, работа с off-exchange settlement |
| Approval workflow | 1–2 недели | Настройка policy engine, интеграция multi-signature approval |
| Compliance reporting | 1–2 недели | Экспорт транзакций, audit trail, подключение SIEM |
| QA и тестирование | 1–2 недели | Тесты в sandbox, нагрузочное тестирование, security audit |
ClearLoop vs обычный settlement: сравнение
| Параметр | ClearLoop | Обычный settlement |
|---|---|---|
| Риск контрагента | Нулевой (активы в custody) | Высокий (активы на бирже) |
| Скорость расчетов | Intraday netting (до 6 раз/день) | Зависит от блокчейна |
| Стоимость транзакций | Минимальные (внутренний netting) | Газ + комиссии биржи |
| Прозрачность audit | Полный audit trail | Ограничен |
| Поддержка бирж | 10+ (Binance, Deribit, Kraken) | Только одна |
Типичные ошибки при интеграции
- Неправильный порядок подписи HMAC. Timestamp и метод должны быть в точном порядке. Ошибка на одну секунду — запрос отклонён.
- Игнорирование webhook-ов. Статус транзакции меняется асинхронно — полагаться только на ответ API нельзя. Нужно обрабатывать wss-события.
- Пропуск настройки policy engine. Без правильных лимитов и whitelist-ов транзакции могут зависнуть на approval.
- Забыть про KYB. Доступ к API даётся только после полной верификации — начинать интеграцию без KYB бесполезно.
Кейс: интеграция ClearLoop для хедж-фонда. Один из наших клиентов — хедж-фонд с оборотом $50M в месяц — столкнулся с высокой комиссией за вывод средств (до 0.5% на Ethereum). Мы интегрировали ClearLoop за 8 недель, настроив off-exchange settlement с Binance и Deribit. Результат: нулевой контрагентский риск, экономия $120K в год на комиссиях за счёт intraday netting. Весь audit trail автоматически экспортируется в их SIEM.
Что входит в работу
- Документация интеграции (архитектура, схемы данных, sequence diagrams)
- Исходный код SDK/адаптера (TypeScript/Python на выбор)
- Доступы к тестовому sandbox Copper
- Интеграция webhook-ов для статусов транзакций
- Нагрузочное тестирование ClearLoop-каналов
- Поддержка в течение месяца после деплоя
Свяжитесь с нами для предварительной оценки проекта. Мы поможем спланировать архитектуру, подготовить документацию и пройти KYB с минимальными задержками. Получите консультацию — наши инженеры проверят вашу текущую архитектуру и дадут roadmap интеграции.







