openapi: 3.0.1 info: title: BitGo Platform Addresses Keychains 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: Keychains paths: /{coin}/key: get: operationId: listKeychains tags: - Keychains summary: List keychains description: List the keychains associated with the authenticated user for a coin. parameters: - $ref: '#/components/parameters/coin' responses: '200': description: A paginated list of keychains. content: application/json: schema: $ref: '#/components/schemas/KeychainList' post: operationId: createKeychain tags: - Keychains summary: Add keychain description: Register a keychain (user, backup, or BitGo) by its public key and, optionally, encrypted private-key material. parameters: - $ref: '#/components/parameters/coin' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateKeychainRequest' responses: '200': description: The created keychain. content: application/json: schema: $ref: '#/components/schemas/Keychain' components: parameters: 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 schemas: Keychain: type: object properties: id: type: string pub: type: string description: The public key (xpub, extended, or coin-specific format). encryptedPrv: type: string description: The client-side encrypted private key, when present. source: type: string enum: - user - backup - bitgo coinSpecific: type: object additionalProperties: true required: - id - pub KeychainList: type: object properties: keys: type: array items: $ref: '#/components/schemas/Keychain' nextBatchPrevId: type: string CreateKeychainRequest: type: object properties: pub: type: string encryptedPrv: type: string source: type: string required: - pub securitySchemes: accessToken: type: http scheme: bearer bearerFormat: accessToken description: 'BitGo access token passed as `Authorization: Bearer `.'