BitGo Integration

We design and develop full-cycle blockchain solutions: from smart contract architecture to launching DeFi protocols, NFT marketplaces and crypto exchanges. Security audits, tokenomics, integration with existing infrastructure.
Showing 1 of 1 servicesAll 1306 services
BitGo Integration
Medium
~3-5 business days
FAQ
Blockchain Development Services
Blockchain Development Stages
Latest works
  • image_website-b2b-advance_0.png
    B2B ADVANCE company website development
    1214
  • image_web-applications_feedme_466_0.webp
    Development of a web application for FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Website development for BELFINGROUP
    852
  • image_ecommerce_furnoro_435_0.webp
    Development of an online store for the company FURNORO
    1041
  • image_logo-advance_0.png
    B2B Advance company logo design
    561
  • image_crm_enviok_479_0.webp
    Development of a web application for Enviok
    823

BitGo Integration

BitGo is one of the oldest institutional crypto custodians (founded in 2013). It specializes in multi-signature wallets and is a licensed custodian in the US (qualified custodian under New York Banking Law). BitGo API allows building products on top of their storage infrastructure.

BitGo Wallet Architecture

BitGo uses 2-of-3 multisig for Bitcoin and a similar scheme for other assets. Three keys:

  • User key — stored with the client (or encrypted with password at BitGo)
  • BitGo key — stored on BitGo servers in HSM
  • Backup key — stored offline with the client (for recovery)

A transaction requires 2 of 3 keys. Typical flow: user key signs → BitGo key signs (after passing policy checks).

BitGo API Integration

import * as BitGoJS from "bitgo";

const bitgo = new BitGoJS.BitGo({
  env: "prod",          // or "test" for BitGo Express
  accessToken: process.env.BITGO_ACCESS_TOKEN,
});

// Get wallet
const wallet = await bitgo
  .coin("eth")
  .wallets()
  .get({ id: "WALLET_ID" });

// Get deposit address
const address = await wallet.createAddress();
console.log(`Deposit to: ${address.address}`);

// Send transaction
const txRequest = await wallet.send({
  address: "0xRecipient",
  amount: "100000000000000000", // 0.1 ETH in wei
  walletPassphrase: process.env.WALLET_PASSPHRASE,
  comment: "Payment #123",
});

Policy Engine

BitGo Policy Engine allows configuring rules for transactions:

// Whitelist recipient addresses
await wallet.createPolicy({
  id: "whitelist-policy",
  type: "allowanddeny",
  condition: {
    type: "destination",
    add: ["0xApprovedAddress1", "0xApprovedAddress2"],
  },
  action: { type: "allow" },
});

// Daily limit
await wallet.createPolicy({
  id: "daily-limit",
  type: "velocityLimit",
  condition: {
    type: "velocity",
    amount: 10000, // in USD
    timeWindow: 86400, // 24 hours in seconds
    groupBy: ["coin", "wallet"],
  },
  action: { type: "getApproval" },
});

Webhook Notifications

// Create webhook for deposit monitoring
await bitgo.coin("eth").webhooks().add({
  type: "transfer",
  url: "https://yourapp.com/webhooks/bitgo",
  label: "Deposit notifications",
  listenToFailureStates: false,
});

// Webhook handler
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");
});

When to Choose BitGo

BitGo is optimal for: exchanges and brokers needing a qualified custodian for regulatory requirements; US companies with SOC 2 Type II requirements; projects with large Bitcoin volumes (BitGo historically stronger in BTC multi-sig).

Fireblocks is better for: multi-chain DeFi operations, fast deployment without lengthy onboarding, MPC instead of multisig.

BitGo API integration — 2–4 weeks. Client onboarding (KYB, compliance checks) — separate process, takes 2–8 weeks depending on jurisdiction.