Інтеграція з Copper.co
Copper.co — institutional custody й prime brokerage платформа для цифрових активів. Основний продукт: ClearLoop — off-exchange settlement сіть, яка дозволяє інституціональним трейдерам тримати активи під custody Copper, торгувати на біржах (Binance, Deribit, Kraken й інших) без виводу коштів на біржу, й розраховуватися по сделкам без руху активів через blockchain. Для проектів, що працюють з institutional клієнтами або будують trading infrastructure, інтеграція з Copper.co вирішує критичну проблему counterparty risk.
Що дає інтеграція
Без ClearLoop: трейдер переводить $10M на Binance → тримає на біржі → торгує → виводить. Ризик: біржа взломана або банкрутує (FTX). З ClearLoop: активи у custody Copper → кредитна лінія на біржі → торгує → settlement через ClearLoop без руху активів. Counterparty risk зникає.
Для продуктів: custody API дає програмний доступ до кошельків institutional рівня з MPC (Copper використовує власний MPC), policy engine для transaction approval, й audit trail для compliance.
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;
}
}
Управління портфолія й кошельками
// Отримання всіх портфолія організації
const portfolios = await copper.request('GET', '/platform/portfolios');
// Список кошельків у портфолія
const wallets = await copper.request(
'GET',
`/platform/portfolios/${portfolioId}/wallets`,
);
// Створення нового кошелька (адрес генерується Copper MPC)
const wallet = await copper.request('POST', '/platform/wallets', {
portfolioId,
name: 'Trading Hot Wallet',
mainCurrency: 'ETH',
type: 'hot', // hot | cold
});
Транзакції й approval workflow
Copper підтримує мултирівневу approval politiku: транзакція створена → проходить черго approvers → виконується.
// Створення транзакції на вывід
const withdrawal = await copper.request('POST', '/platform/transactions', {
type: 'withdrawal',
portfolioId,
currency: 'USDC',
amount: '50000.00',
toAddress: destinationAddress,
network: 'ethereum',
memo: 'Settlement payout #1234',
});
// Status: pending_approval
// Webhook на зміну статусу транзакції
// POST /webhooks → налаштовується у Copper Dashboard
// Payload включає: transactionId, status, txHash (після broadcast)
Policy Engine: у Copper Dashboard налаштовується: ліміти по сумі, whitelist адрес, required approvers (M-of-N). Будь-яка транзакція вище порога вимагає ручного одобрення. Для автоматизації: Copper підтримує programmatic approval через API (для систем з внутрішнім approval workflow).
ClearLoop: off-exchange settlement
// Переводить коштів у ClearLoop loop (на біржу, без blockchain руху)
const loop = await copper.request('POST', '/clearloop/transfers', {
fromPortfolioId: custodyPortfolioId,
toExchangeAccountId: 'binance-account-123', // попередньо налаштований
currency: 'BTC',
amount: '1.5',
});
// Перевірка позицій на біржах через ClearLoop
const positions = await copper.request(
'GET',
`/clearloop/positions/${exchangeAccountId}`,
);
ClearLoop settlement відбувається кілька разів на день (intraday netting). Не потрібно рухати blockchain активи при кожній сделці — лише кінцеві позиції вирівнюються.
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') {
// transactionId, status, txHash, confirmations
handleTransactionUpdate(event.payload);
}
if (event.type === 'balance_update') {
// currency, available, pending
handleBalanceUpdate(event.payload);
}
});
Compliance й reporting інтеграція
Copper надає audit-ready дані: всі транзакції з timestamp, approver log, blockchain confirmation. Для compliance інтеграції:
// Експорт транзакційної історії для аудиту
const auditReport = await copper.request('GET', '/platform/transactions', {
params: {
portfolioId,
from: '2024-01-01T00:00:00Z',
to: '2024-12-31T23:59:59Z',
status: 'completed',
limit: 1000,
},
});
// Кожен запис включає: initiator, approvers, timestamps, txHash
Ориентири по інтеграції
Базова інтеграція (deposit/withdrawal API, webhook обробка): 2–3 тижні. Повна інтеграція з ClearLoop, custom approval workflow й compliance reporting: 6–10 тижнів.
Доступ до API надається після KYB процедури — закладайте 2–4 тижні на onboarding.







