openapi: 3.0.1 info: title: BitGo Platform Addresses Wallets API description: Representative specification of the BitGo Platform REST API v2 for institutional digital-asset custody. Covers wallets, addresses, transactions and transfers, keychains, webhooks, wallet policies, staking, trading and settlement over the Go Network, and enterprise / user surfaces. Most endpoints are namespaced under a coin (for example `btc`, `eth`, `hteth`) via the `{coin}` path parameter. Authentication uses a Bearer access token. Transaction-signing operations that require private-key material are typically issued against a self-hosted BitGo Express proxy. termsOfService: https://www.bitgo.com/legal/terms-of-service/ contact: name: BitGo Support url: https://developers.bitgo.com/ version: '2.0' servers: - url: https://app.bitgo.com/api/v2 description: BitGo production platform - url: https://app.bitgo-test.com/api/v2 description: BitGo test environment - url: http://localhost:3080/api/v2 description: Self-hosted BitGo Express signing proxy (default port) security: - accessToken: [] tags: - name: Wallets paths: /{coin}/wallet: get: operationId: listWallets tags: - Wallets summary: List wallets description: List the wallets of the authenticated user for a given coin. parameters: - $ref: '#/components/parameters/coin' - name: prevId in: query description: Continue from the previous page using this cursor. schema: type: string - name: limit in: query description: Maximum number of results to return per page. schema: type: integer default: 25 responses: '200': description: A paginated list of wallets. content: application/json: schema: $ref: '#/components/schemas/WalletList' post: operationId: generateWallet tags: - Wallets summary: Generate wallet description: Create a new multi-signature wallet for a coin. This is typically issued against BitGo Express so the user and backup keychains can be created locally. Returns the wallet along with its keychains. parameters: - $ref: '#/components/parameters/coin' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GenerateWalletRequest' responses: '200': description: The newly created wallet. content: application/json: schema: $ref: '#/components/schemas/Wallet' /{coin}/wallet/{walletId}: get: operationId: getWallet tags: - Wallets summary: Get wallet description: Retrieve a single wallet by its identifier. parameters: - $ref: '#/components/parameters/coin' - $ref: '#/components/parameters/walletId' responses: '200': description: The requested wallet. content: application/json: schema: $ref: '#/components/schemas/Wallet' components: schemas: WalletList: type: object properties: wallets: type: array items: $ref: '#/components/schemas/Wallet' nextBatchPrevId: type: string GenerateWalletRequest: type: object properties: label: type: string passphrase: type: string description: Passphrase used to encrypt the user keychain private key. enterprise: type: string backupXpub: type: string description: Optional user-provided backup public key. required: - label - passphrase Wallet: type: object properties: id: type: string coin: type: string label: type: string m: type: integer description: Number of signatures required to spend. n: type: integer description: Number of keys on the wallet. keys: type: array items: type: string description: The keychain IDs backing the wallet (user, backup, BitGo). balanceString: type: string description: The confirmed balance as a base-unit string. spendableBalanceString: type: string enterprise: type: string type: type: string enum: - hot - cold - custodial - trading required: - id - coin parameters: walletId: name: walletId in: path required: true description: The wallet identifier. schema: type: string coin: name: coin in: path required: true description: The coin or token ticker (for example `btc`, `eth`, `hteth`, `sol`, `matic`). Testnet coins are prefixed with `t` (for example `tbtc`). schema: type: string example: btc securitySchemes: accessToken: type: http scheme: bearer bearerFormat: accessToken description: 'BitGo access token passed as `Authorization: Bearer `.'