Интеграция с BitGo
BitGo — один из старейших институциональных крипто-кастодианов (основан в 2013). Специализируется на multi-signature кошельках и является лицензированным кастодианом в США (qualified custodian под New York Banking Law). BitGo API позволяет строить продукты поверх их инфраструктуры хранения.
Архитектура BitGo кошельков
BitGo использует 2-of-3 multisig для Bitcoin и аналогичную схему для других активов. Три ключа:
- User key — хранится у клиента (или зашифрован паролем в BitGo)
- BitGo key — хранится на серверах BitGo в HSM
- Backup key — хранится у клиента офлайн (для восстановления)
Транзакция требует 2 из 3 ключей. Обычный флоу: user key подписывает → BitGo key подписывает (после прохождения policy checks).
BitGo API интеграция
import * as BitGoJS from "bitgo";
const bitgo = new BitGoJS.BitGo({
env: "prod", // или "test" для BitGo Express
accessToken: process.env.BITGO_ACCESS_TOKEN,
});
// Получение кошелька
const wallet = await bitgo
.coin("eth")
.wallets()
.get({ id: "WALLET_ID" });
// Получение адреса для депозита
const address = await wallet.createAddress();
console.log(`Deposit to: ${address.address}`);
// Отправка транзакции
const txRequest = await wallet.send({
address: "0xRecipient",
amount: "100000000000000000", // 0.1 ETH в wei
walletPassphrase: process.env.WALLET_PASSPHRASE,
comment: "Payment #123",
});
Policy Engine
BitGo Policy Engine позволяет настроить правила для транзакций:
// Whitelist адресов получателей
await wallet.createPolicy({
id: "whitelist-policy",
type: "allowanddeny",
condition: {
type: "destination",
add: ["0xApprovedAddress1", "0xApprovedAddress2"],
},
action: { type: "allow" },
});
// Дневной лимит
await wallet.createPolicy({
id: "daily-limit",
type: "velocityLimit",
condition: {
type: "velocity",
amount: 10000, // в USD
timeWindow: 86400, // 24 часа в секундах
groupBy: ["coin", "wallet"],
},
action: { type: "getApproval" },
});
Webhook уведомления
// Создание webhook для мониторинга депозитов
await bitgo.coin("eth").webhooks().add({
type: "transfer",
url: "https://yourapp.com/webhooks/bitgo",
label: "Deposit notifications",
listenToFailureStates: false,
});
// Обработчик webhook
app.post("/webhooks/bitgo", async (req, res) => {
const { type, wallet: walletId, transfer } = req.body;
if (type === "transfer" && transfer.type === "receive") {
await creditUserBalance(walletId, transfer.valueString, transfer.txid);
}
res.status(200).send("OK");
});
Когда выбирать BitGo
BitGo оптимален для: биржи и брокеры, которым нужен qualified custodian для регуляторных требований; компании в США с требованием SOC 2 Type II; проекты с большими объёмами Bitcoin (BitGo исторически сильнее в BTC multi-sig).
Fireblocks лучше для: мультичейн DeFi операций, быстрого деплоя без длительного onboarding, MPC вместо multisig.
Интеграция BitGo API — 2-4 недели. Onboarding в качестве клиента (KYB, compliance проверки) — отдельный процесс, занимает 2-8 недель в зависимости от юрисдикции.







