Интеграция с Anchorage Digital: регулируемое хранение криптовалют

Выводите 500 ETH за 5 секунд — или ждите 2 часа, если vault требует ручного одобрения. Для обменников и фондов с сотнями тысяч клиентов разница между автоматической и ручной кастодией — это десятки миллионов долларов операционных издержек в год. Anchorage Digital — первый федерально лицензированный

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

Часто задаваемые вопросы

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

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1441
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    998
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1267
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    713
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1003

Выводите 500 ETH за 5 секунд — или ждите 2 часа, если vault требует ручного одобрения. Для обменников и фондов с сотнями тысяч клиентов разница между автоматической и ручной кастодией — это десятки миллионов долларов операционных издержек в год. Anchorage Digital — первый федерально лицензированный криптобанк (OCC charter) — сочетает аппаратную изоляцию ключей в HSM с REST API, который позволяет управлять выводами, стейкингом и голосованием. Собственное кастодиальное решение обходится в 10–100 раз дороже и занимает 6–12 месяцев. Мы выполняем интеграцию под ключ: от настройки API до онбординга клиентов, и экономим до 90% бюджета на кастодии.

Что даёт интеграция

Функция Описание
Custody Аппаратная изоляция ключей (HSM), не pure software
Transactions Создание, подписание и вещание on-chain транзакций через кастодиальный pipeline
Staking Делегирование для PoS активов (ETH, SOL, MATIC, ADA) с отчётностью
Trading OTC trading desk интеграция
Governance On-chain голосование от имени кастодированных активов

API построен по REST принципам, аутентификация через JWT + API ключи. Sandbox среда доступна для разработки. Скорость подтверждения транзакции: от нескольких секунд (автоматическая политика) до 1–2 часов (ручное подписание).

Почему Anchorage Digital — правильный выбор?

Anchorage сочетает банковское регулирование с технологичностью. В отличие от большинства кастодиальных решений, он не просто хранит ключи — он обеспечивает on-chain верификацию транзакций, стейкинг и управление губернатором. Это особенно важно для фондов, которые хотят отчитываться перед инвесторами о голосовании или получать доход от стейкинга. Архитектура на базе HSM исключает даже теоретический доступ к seed-фразам — все операции подписываются в защищённой среде. Интеграция с Anchorage в 10–100 раз дешевле самостоятельной кастодии, а экономия может достигать 90%.

Как работает аутентификация в Anchorage?

Anchorage использует двухуровневую аутентификацию: API ключ + подпись запроса. Каждый запрос должен быть подписан приватным ключом, публичный аналог которого зарегистрирован в системе. Используется алгоритм ECDSA P-256.

import crypto from "crypto"; interface AnchorageRequestSigner { apiKeyId: string; privateKey: string; // PEM формат, ECDSA P-256 } function signRequest( signer: AnchorageRequestSigner, method: string, path: string, body: object | null, timestamp: number ): string { const bodyString = body ? JSON.stringify(body) : ""; const payload = `${timestamp}${method}${path}${bodyString}`; const sign = crypto.createSign("SHA256"); sign.update(payload); const signature = sign.sign(signer.privateKey, "base64"); return `Signature keyId="${signer.apiKeyId}",algorithm="ecdsa-p256",signature="${signature}"`; } async function anchorageRequest( signer: AnchorageRequestSigner, method: string, path: string, body?: object ): Promise<Response> { const timestamp = Math.floor(Date.now() / 1000); const authHeader = signRequest(signer, method, path, body ?? null, timestamp); return fetch(`https://api.anchorage.com${path}`, { method, headers: { "Content-Type": "application/json", "Api-Access-Key": signer.apiKeyId, "Authorization": authHeader, "X-Timestamp": String(timestamp), }, body: body ? JSON.stringify(body) : undefined, }); } 

Что такое approval workflow?

Транзакции в Anchorage проходят через configurable approval workflow. Это не просто "отправить и забыть" — в зависимости от настроек vault транзакция может требовать подтверждения от нескольких операторов, мобильного приложения Anchorage (out-of-band approval), или автоматически исполняться при соблюдении policy rules. Ниже пример создания и отслеживания транзакции:

interface CreateTransactionRequest { vaultId: string; assetType: string; // "ETHEREUM", "BITCOIN", "SOLANA" и т.д. destinationAddress: string; amount: string; // в базовых единицах (wei для ETH) note?: string; externalTxId?: string; // ваш внутренний ID для идемпотентности } async function createWithdrawal( signer: AnchorageRequestSigner, request: CreateTransactionRequest ): Promise<{ transactionId: string; status: string }> { const response = await anchorageRequest( signer, "POST", "/v2/transactions", request ); if (!response.ok) { const error = await response.json(); throw new Error(`Anchorage API error: ${error.message}`); } return response.json(); } // Polling статуса — транзакция проходит через PENDING_APPROVAL → APPROVED → BROADCASTING → DONE async function waitForTransaction( signer: AnchorageRequestSigner, transactionId: string, timeoutMs = 300_000 ): Promise<string> { const start = Date.now(); while (Date.now() - start < timeoutMs) { const response = await anchorageRequest( signer, "GET", `/v2/transactions/${transactionId}` ); const tx = await response.json(); if (tx.status === "DONE") return tx.txHash; if (["FAILED", "REJECTED"].includes(tx.status)) { throw new Error(`Transaction ${tx.status}: ${tx.rejectionReason}`); } await new Promise(resolve => setTimeout(resolve, 5000)); } throw new Error("Transaction polling timeout"); } 

Типичные ошибки при интеграции: необработанные таймауты при polling (используйте exponential backoff), несовпадение формата amounts (всегда строки в базовых единицах), отсутствие обработки webhook на депозиты (настройте callback URL).

Работа с балансами и адресами

Anchorage организует активы в vaults (логические хранилища) и wallets (адреса конкретных активов внутри vault). Для каждого клиента обычно создаётся отдельный vault:

// Получить баланс конкретного актива в vault async function getVaultBalance( signer: AnchorageRequestSigner, vaultId: string, assetType: string ): Promise<{ available: string; total: string }> { const response = await anchorageRequest( signer, "GET", `/v2/vaults/${vaultId}/assets/${assetType}` ); const asset = await response.json(); return { available: asset.availableBalance, total: asset.totalBalance, }; } // Получить deposit адрес для пополнения async function getDepositAddress( signer: AnchorageRequestSigner, vaultId: string, assetType: string ): Promise<string> { const response = await anchorageRequest( signer, "GET", `/v2/vaults/${vaultId}/assets/${assetType}/addresses` ); const data = await response.json(); return data.addresses[0].address; } 

Типичные сценарии интеграции

Сценарий Описание
Exchange / торговая платформа Кастодия средств пользователей в Anchorage vault, вывод через Transaction API с approval, депозиты через webhook
Fund administrator Отдельный vault на каждый фонд, staking через Anchorage Earn, отчётность через Transaction history API
Corporate treasury Управление казначейством в нескольких активах, авто-ребалансировки, аудит trail для compliance

Что входит в работу

  1. Аудит текущей инфраструктуры и требований к кастодии.
  2. Проектирование архитектуры: vaults, approval policies, активы.
  3. Настройка аутентификации (генерация ключей, ротация).
  4. Разработка интеграции: депозиты, вывод, стейкинг, отчётность.
  5. Тестирование в sandbox-среде.
  6. Развёртывание production-политик и разграничение доступа.
  7. Документация по API и onboarding вашей команды.
  8. Поддержка на этапе запуска и Q&A.

Ограничения и что нужно знать

Anchorage — не самообслуживание. Интеграция начинается с enterprise sales процесса, KYB, подписания договора. Sandbox доступен после initial approval. Pricing — по договорённости, как правило basis points от AUM + фиксированная плата за транзакции.

Transaction finality зависит от approval policy: если настроен manual approval, время от создания до исполнения может составлять часы. Это нужно учитывать в UX — пользователь должен понимать, что вывод не мгновенный.

Поддерживаемые активы постоянно расширяются, но экзотические L2 токены могут отсутствовать. Проверяйте актуальный список через эндпоинт /v2/assets перед проектированием.

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