Інтеграція з Anchorage Digital

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Інтеграція з Anchorage Digital
Середній
~3-5 днів
Часті запитання

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

Етапи блокчейн-розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1306
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1218
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    920
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1147
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    610
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    885

Інтеграція з Anchorage Digital

Anchorage Digital — перший federally chartered крипто-банк у США (OCC charter, 2021). Для продуктів, що працюють з institutional клієнтами або вимагають банківського рівня кастодії, Anchorage — серйозний варіант. Не потрібно будувати власну кастодіальну інфраструктуру, отримувати окремі ліцензії на зберігання, договарюватися зі страховщиками — все це Anchorage бере на себе. Інтеграція через API дозволяє вбудувати institutional-grade custody прямо у ваш продукт.

Що дає інтеграція

Anchorage надає REST API для управління:

  • Custody — зберігання активів з апаратною ізоляцією ключів (HSM-based, не pure software)
  • Transactions — створення, підписання й broadcast on-chain транзакцій через кастодіальний pipeline
  • Staking — делегування для PoS активів (ETH, SOL, MATIC, ADA й інші) з reporting
  • Trading — OTC trading desk інтеграція
  • Governance — on-chain голосування від імені кастодійованих активів

API побудований на REST принципах, аутентифікація через JWT + API ключі. Sandbox середовище доступне для розробки.

Архітектура інтеграції

Аутентифікація й безпека

Anchorage використовує двохрівневу аутентифікацію: API ключ + підпис запиту. Кожен запит повинен бути підписаний приватним ключем, публічний аналог якого зареєстрований у системі:

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

Транзакції проходять через 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");
}

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

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,
  };
}

// Отримати адресу депозиту для поповнення
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 vaults, вывід через Transaction API з approval workflow, депозити через webhook сповіщення про вхідні транзакції.

Fund administrator — створення окремого vault для кожного фонду, staking через Anchorage Earn, reporting через Transaction history API.

Corporate treasury — управління treasury у кількох активах, автоматичні ребалансування через API, аудит trail для compliance.

Обмеження й що потрібно знати

Anchorage — не self-service. Інтеграція починається з enterprise sales процесу, KYB, підписання контракту. Sandbox доступен після initial approval. Pricing — за договоренням, як правило basis points від AUM + фіксована плата за транзакції.

Transaction finality залежить від approval policy: якщо налаштований manual approval, час від створення до виконання може становити години. Це потрібно враховувати в UX — користувач повинен розуміти що вывід не миттєвий.

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