diff --git a/api.yaml b/api.yaml index cc23a63..b9475ba 100644 --- a/api.yaml +++ b/api.yaml @@ -147,6 +147,164 @@ paths: application/json: schema: $ref: '#/components/schemas/PendingApproval' + /api/v2/{coin}/wallet/{walletId}: + put: + tags: + - Wallet + summary: Update wallet + operationId: v2.wallet.update + description: Update a wallet by its 'coin' and 'walletId'. + parameters: + - $ref: '#/components/parameters/pathCoin' + - $ref: '#/components/parameters/pathWalletId' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateWallet' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Wallet' + '400': + description: Bad Request + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/PlatformError' + - $ref: '#/components/schemas/InvalidWalletId' + '403': + description: Forbidden + '404': + description: Not Found + delete: + tags: + - Wallet + summary: Delete wallet + description: Delete one wallet by its 'coin' and 'walletId'. Once removed, you can no longer view or access this wallet, but it does remain accessible to other wallet users. If you are the only user on this wallet, you can only delete it if it has a 0 balance. + operationId: v2.wallet.remove + parameters: + - $ref: '#/components/parameters/pathCoin' + - $ref: '#/components/parameters/pathWalletId' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Wallet' + '400': + description: Bad Request + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/PlatformError' + - $ref: '#/components/schemas/InvalidWalletId' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + get: + summary: Get wallet by ID and coin + description: Get one wallet by its 'coin' and 'walletId'. One 'walletId' can map to multiple receive addresses. + operationId: v2.wallet.get + tags: + - Wallet + parameters: + - name: allTokens + description: Include data for all subtokens (i.e. ERC20 Tokens, Stellar Tokens) + in: query + schema: + type: string + enum: + - 'true' + - 'false' + - name: unspentCount + description: True, if including unspent count for UTXO-based coins. + in: query + schema: + type: string + enum: + - 'true' + - 'false' + - name: includeRbf + description: True, if including Replace-By-Fee (RBF) transactions in the total balance amount. + in: query + schema: + type: string + enum: + - 'true' + - 'false' + - name: expandAdvancedWhitelist + description: True, if including the advanced whitelist wallet address in the response. The address is annotated as part of the whitelist entry metadata + in: query + schema: + type: string + enum: + - 'true' + - 'false' + - name: includeStakingBalances + description: Includes the staked balance and reward balance of the wallet + in: query + schema: + type: string + enum: + - 'true' + - 'false' + - name: coin + in: path + required: true + schema: + $ref: '#/components/schemas/CoinString' + - name: walletId + in: path + required: true + schema: + $ref: '#/components/schemas/WalletIdString' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Wallet' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' /api/v2/{coin}/wallet/{walletId}/webhooks: get: tags: @@ -16049,7 +16207,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Wallet' + $ref: '#/components/schemas/Wallet1' '202': description: Accepted content: @@ -16084,7 +16242,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Wallet' + $ref: '#/components/schemas/Wallet1' '202': description: Accepted content: @@ -16119,7 +16277,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Wallet' + $ref: '#/components/schemas/Wallet1' '202': description: Accepted content: @@ -16446,7 +16604,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Wallet' + $ref: '#/components/schemas/Wallet1' '400': description: Bad Request content: @@ -16548,7 +16706,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Wallet' + $ref: '#/components/schemas/Wallet1' '400': description: Bad Request content: @@ -16579,153 +16737,13 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Wallet' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/PlatformError3' - '404': - description: Not Found - /api/v2/{coin}/wallet/{walletId}: - get: - tags: - - Wallet - summary: Get wallet - operationId: v2.wallet.get - description: Get one wallet by its 'coin' and 'walletId'. One 'walletId' can map to multiple receive addresses. - parameters: - - $ref: '#/components/parameters/allTokens' - - $ref: '#/components/parameters/pathCoin' - - $ref: '#/components/parameters/pathWalletId' - - $ref: '#/components/parameters/unspentCount' - - name: includeRbf - in: query - description: True, if including Replace-By-Fee (RBF) transactions in the total balance amount. - schema: - type: boolean - - name: expandAdvancedWhitelist - in: query - description: True, if including the advanced whitelist wallet address in the response. The address is annotated as part of the whitelist entry metadata. - schema: - type: boolean - default: false - responses: - '200': - description: OK - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Wallet' - - $ref: '#/components/schemas/WalletBalance' - '400': - description: Bad Request - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' - '404': - description: Not Found - put: - tags: - - Wallet - summary: Update wallet - operationId: v2.wallet.update - description: Update a wallet by its 'coin' and 'walletId'. - parameters: - - $ref: '#/components/parameters/pathCoin' - - $ref: '#/components/parameters/pathWalletId' - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateWallet' - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/Wallet' - '400': - description: Bad Request - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' - '403': - description: Forbidden - '404': - description: Not Found - delete: - tags: - - Wallet - summary: Delete wallet - description: Delete one wallet by its 'coin' and 'walletId'. Once removed, you can no longer view or access this wallet, but it does remain accessible to other wallet users. If you are the only user on this wallet, you can only delete it if it has a 0 balance. - operationId: v2.wallet.remove - parameters: - - $ref: '#/components/parameters/pathCoin' - - $ref: '#/components/parameters/pathWalletId' - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/Wallet' + $ref: '#/components/schemas/Wallet1' '400': description: Bad Request - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' - '403': - description: Forbidden content: application/json: schema: $ref: '#/components/schemas/PlatformError3' - /api/v2/wallet/{walletId}: - get: - tags: - - Wallet - summary: Get wallet by ID - operationId: v2.wallet.getbyid - description: Get one wallet by its 'walletId'. One 'walletId' can map to multiple receive addresses. - parameters: - - $ref: '#/components/parameters/allTokens' - - $ref: '#/components/parameters/pathWalletId' - - name: expandAdvancedWhitelist - in: query - description: True, if including the advanced whitelist wallet address in the response. The address is annotated as part of the whitelist entry metadata. - schema: - type: boolean - default: false - responses: - '200': - description: OK - content: - application/json: - schema: - allOf: - - $ref: '#/components/schemas/Wallet' - - $ref: '#/components/schemas/WalletBalance' - '400': - description: Bad Request - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' '404': description: Not Found /api/v2/{coin}/wallet/{walletId}/user/{userId}: @@ -16752,7 +16770,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Wallet' + $ref: '#/components/schemas/Wallet1' '400': description: Bad Request content: @@ -20263,11 +20281,11 @@ paths: balanceValue: quantity: '1000000' currency: USD - /api/prime/trading/v1/accounts/{accountID}/margin/close: + /api/prime/trading/v1/accounts/{accountID}/margin/positions/close: post: summary: Close all margin positions description: Starts an asynchronous process to automatically close all positions by selling and buying assets to attempt to net them to zero. - operationId: trade.margin.close + operationId: trade.margin.positions.close tags: - Trade REST API parameters: @@ -25875,319 +25893,409 @@ paths: application/json: schema: $ref: '#/components/schemas/PlatformError' - /api/v2/wallet/{walletId}/pin: - put: - summary: Pin or unpin a wallet - description: Pins or unpins a wallet and returns updated pinned wallets for the current user's enterprise. - operationId: v2.wallet.pin - tags: - - Wallet - parameters: - - name: walletId - in: path - required: true - schema: - $ref: '#/components/schemas/WalletIdNonEmptyString' - requestBody: - content: - application/json: - schema: - type: object - properties: - isPinned: - type: boolean - required: - - isPinned - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/UpdatePinnedWalletsResponse' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/PlatformError' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/PlatformError' - /api/v2/wallet/{walletId}/tss/updatereadiness: + /api/v2/wallet/{walletId}: get: - summary: Check if a GG18 Wallet is ready to update to DKLS. - operationId: v2.wallet.mpcv2migrationstatus + summary: Get wallet by ID + description: Get one wallet by its 'walletId'. One 'walletId' can map to multiple receive addresses. + operationId: v2.wallet.getbyid tags: - Wallet parameters: - - name: walletId - in: path - required: true - schema: - $ref: '#/components/schemas/WalletIdNonEmptyString' - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/WalletMPCv2MigrationStatus' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/PlatformError' - /api/v2/wallet/{walletId}/txrequests/{txRequestId}: - put: - summary: Update Transaction Request For Wallet - description: Route to update transaction request for wallet - operationId: v2.wallet.txrequest.update - tags: - - Transaction request - parameters: - - name: walletId - in: path - required: true - schema: - $ref: '#/components/schemas/WalletIdString' - - name: txRequestId - in: path - required: true - schema: - $ref: '#/components/schemas/TransactionRequestId' - requestBody: - content: - application/json: - schema: - type: object - properties: - state: - type: string - enum: - - canceled - description: For transaction request full, the current state must be "pendingApproval" or "pendingDelivery". For transaction request lite, the current state must be "pendingApproval", "pendingUserCommitment", "pendingUserGShare", "pendingUserRShare", or "pendingUserSignature". - cancellationReason: - type: string - description: The reason for the cancellation - required: - - state - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/TransactionRequest2' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/PlatformError' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/PlatformError' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/PlatformError' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/PlatformError' - /api/v2/wallet/{walletId}/txrequests/{txRequestId}/{resource}/{resourceIndex}/send: - post: - summary: Send a transaction request. - description: For MPC wallets - Combine all signature shares and submit the signed transaction for broadcast. - operationId: v2.wallet.txrequest.send - tags: - - Transaction request - parameters: - - name: walletId - in: path - required: true - schema: - $ref: '#/components/schemas/WalletIdNonEmptyString' - - name: txRequestId - in: path - required: true - schema: - $ref: '#/components/schemas/TransactionRequestIdNonEmptyString' - - name: resource - in: path - required: true + - name: allTokens + description: Include data for all subtokens (i.e. ERC20 Tokens, Stellar Tokens) + in: query schema: type: string enum: - - messages - - transactions - - name: resourceIndex - in: path - required: true + - 'true' + - 'false' + - name: unspentCount + description: True, if including unspent count for UTXO-based coins. + in: query schema: type: string - format: number - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/TransactionRequest2' - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/PlatformError' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/PlatformError' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/PlatformError' - '404': - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/PlatformError' - /api/v2/wallet/{walletId}/txrequests/{txRequestId}/{resource}/{resourceIndex}/sign: - post: - summary: Sign transaction request - description: Request BitGo to co-sign a resource (message or transaction) in a transaction request. - operationId: v2.wallet.txrequest.sign - tags: - - Transaction request - parameters: - - name: walletId - in: path - required: true + enum: + - 'true' + - 'false' + - name: includeRbf + description: True, if including Replace-By-Fee (RBF) transactions in the total balance amount. + in: query schema: - $ref: '#/components/schemas/WalletIdNonEmptyString' - - name: txRequestId - description: The transaction request ID - in: path - required: true + type: string + enum: + - 'true' + - 'false' + - name: expandAdvancedWhitelist + description: True, if including the advanced whitelist wallet address in the response. The address is annotated as part of the whitelist entry metadata + in: query schema: - allOf: - - $ref: '#/components/schemas/TransactionRequestIdNonEmptyString' - - name: resource - description: The resource type (messages or transactions) - in: path - required: true + type: string + enum: + - 'true' + - 'false' + - name: includeStakingBalances + description: Includes the staked balance and reward balance of the wallet + in: query schema: type: string enum: - - messages - - transactions - - name: resourceIndex - description: The index of the resource + - 'true' + - 'false' + - name: walletId in: path required: true schema: - type: string - format: number - requestBody: - content: - application/json: - schema: - oneOf: - - type: object - properties: - signatureShares: - type: array - items: - type: object - properties: - from: - allOf: - - $ref: '#/components/schemas/SignatureShareType' - description: The source of the signature share. - share: - type: string - description: The signature share - to: - allOf: - - $ref: '#/components/schemas/SignatureShareType' - description: The recipient of the signature share. - required: - - from - - share - - to - description: The array of signature shares without VSS proof - signerGpgPublicKey: - type: string - description: The GPG public key of the signer - minLength: 1 - type: - type: string - enum: - - ecdsaMpcV2 - description: The type of the request body - required: - - signatureShares - - signerGpgPublicKey - - type - - type: object - properties: - signatureShares: - type: array - items: - type: object - properties: - from: - allOf: - - $ref: '#/components/schemas/SignatureShareType' - description: The source of the signature share. - share: - type: string - description: The signature share - to: - allOf: - - $ref: '#/components/schemas/SignatureShareType' - description: The recipient of the signature share. - required: - - from - - share - - to - description: The array of signature shares without VSS proof - signerShare: - type: string - description: The share of the signer - type: - type: string - enum: - - eddsaMpcV1 - description: The type of the request body - required: - - signatureShares - - type + $ref: '#/components/schemas/WalletIdString' responses: '200': description: OK content: application/json: schema: - $ref: '#/components/schemas/TransactionRequest2' + $ref: '#/components/schemas/Wallet' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + '500': + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + /api/v2/wallet/{walletId}/pin: + put: + summary: Pin or unpin a wallet + description: Pins or unpins a wallet and returns updated pinned wallets for the current user's enterprise. + operationId: v2.wallet.pin + tags: + - Wallet + parameters: + - name: walletId + in: path + required: true + schema: + $ref: '#/components/schemas/WalletIdNonEmptyString' + requestBody: + content: + application/json: + schema: + type: object + properties: + isPinned: + type: boolean + required: + - isPinned + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/UpdatePinnedWalletsResponse' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + /api/v2/wallet/{walletId}/tss/updatereadiness: + get: + summary: Check if a GG18 Wallet is ready to update to DKLS. + operationId: v2.wallet.mpcv2migrationstatus + tags: + - Wallet + parameters: + - name: walletId + in: path + required: true + schema: + $ref: '#/components/schemas/WalletIdNonEmptyString' + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/WalletMPCv2MigrationStatus' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + /api/v2/wallet/{walletId}/txrequests/{txRequestId}: + put: + summary: Update Transaction Request For Wallet + description: Route to update transaction request for wallet + operationId: v2.wallet.txrequest.update + tags: + - Transaction request + parameters: + - name: walletId + in: path + required: true + schema: + $ref: '#/components/schemas/WalletIdString' + - name: txRequestId + in: path + required: true + schema: + $ref: '#/components/schemas/TransactionRequestId' + requestBody: + content: + application/json: + schema: + type: object + properties: + state: + type: string + enum: + - canceled + description: For transaction request full, the current state must be "pendingApproval" or "pendingDelivery". For transaction request lite, the current state must be "pendingApproval", "pendingUserCommitment", "pendingUserGShare", "pendingUserRShare", or "pendingUserSignature". + cancellationReason: + type: string + description: The reason for the cancellation + required: + - state + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionRequest2' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + /api/v2/wallet/{walletId}/txrequests/{txRequestId}/{resource}/{resourceIndex}/send: + post: + summary: Send a transaction request. + description: For MPC wallets - Combine all signature shares and submit the signed transaction for broadcast. + operationId: v2.wallet.txrequest.send + tags: + - Transaction request + parameters: + - name: walletId + in: path + required: true + schema: + $ref: '#/components/schemas/WalletIdNonEmptyString' + - name: txRequestId + in: path + required: true + schema: + $ref: '#/components/schemas/TransactionRequestIdNonEmptyString' + - name: resource + in: path + required: true + schema: + type: string + enum: + - messages + - transactions + - name: resourceIndex + in: path + required: true + schema: + type: string + format: number + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionRequest2' + '400': + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + '401': + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + '403': + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + '404': + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/PlatformError' + /api/v2/wallet/{walletId}/txrequests/{txRequestId}/{resource}/{resourceIndex}/sign: + post: + summary: Sign transaction request + description: Request BitGo to co-sign a resource (message or transaction) in a transaction request. + operationId: v2.wallet.txrequest.sign + tags: + - Transaction request + parameters: + - name: walletId + in: path + required: true + schema: + $ref: '#/components/schemas/WalletIdNonEmptyString' + - name: txRequestId + description: The transaction request ID + in: path + required: true + schema: + allOf: + - $ref: '#/components/schemas/TransactionRequestIdNonEmptyString' + - name: resource + description: The resource type (messages or transactions) + in: path + required: true + schema: + type: string + enum: + - messages + - transactions + - name: resourceIndex + description: The index of the resource + in: path + required: true + schema: + type: string + format: number + requestBody: + content: + application/json: + schema: + oneOf: + - type: object + properties: + signatureShares: + type: array + items: + type: object + properties: + from: + allOf: + - $ref: '#/components/schemas/SignatureShareType' + description: The source of the signature share. + share: + type: string + description: The signature share + to: + allOf: + - $ref: '#/components/schemas/SignatureShareType' + description: The recipient of the signature share. + required: + - from + - share + - to + description: The array of signature shares without VSS proof + signerGpgPublicKey: + type: string + description: The GPG public key of the signer + minLength: 1 + type: + type: string + enum: + - ecdsaMpcV2 + description: The type of the request body + required: + - signatureShares + - signerGpgPublicKey + - type + - type: object + properties: + signatureShares: + type: array + items: + type: object + properties: + from: + allOf: + - $ref: '#/components/schemas/SignatureShareType' + description: The source of the signature share. + share: + type: string + description: The signature share + to: + allOf: + - $ref: '#/components/schemas/SignatureShareType' + description: The recipient of the signature share. + required: + - from + - share + - to + description: The array of signature shares without VSS proof + signerShare: + type: string + description: The share of the signer + type: + type: string + enum: + - eddsaMpcV1 + description: The type of the request body + required: + - signatureShares + - type + responses: + '200': + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/TransactionRequest2' '400': description: Bad Request content: @@ -26864,10 +26972,12 @@ paths: get: summary: List wallets description: |- - Lists all wallets you can access, including: + Lists all wallets you can access when the enterprise ID is provided, including: - Wallets you have a role on (admin, spender, or viewer). - Wallets in enterprises you belong to that have the 'View All Wallets' option enabled from the enterprise settings. + + If the enterprise ID is not provided, lists only the wallets you have a role on. operationId: v2.wallet.list tags: - Wallet @@ -27882,6 +27992,25 @@ components: description: The last date the approval was processing format: date-time title: ISO Date String + freeze: + type: object + description: The freeze state + properties: + comment: + type: string + reason: + type: string + state: + type: string + enum: + - frozen + - unFrozen + time: + type: string + format: date-time + title: ISO Date String + user: + type: string required: - id - creator @@ -27889,6 +28018,19 @@ components: - info - state - scope + PendingApprovalAddressLabel: + description: Address labels of recipients in this Pending Approval + type: object + properties: + address: + $ref: '#/components/schemas/AddressString3' + label: + $ref: '#/components/schemas/AddressLabel' + walletLabel: + $ref: '#/components/schemas/WalletLabel' + required: + - address + - label WalletLabel: type: string example: My Wallet @@ -29477,483 +29619,484 @@ components: type: string example: '123456' description: Second factor authentication token - UpdateWalletShareResponse: - title: UpdateWalletShareResponse + Wallet: + title: Wallet type: object properties: - state: - allOf: - - $ref: '#/components/schemas/WalletShareState' - description: New state of the wallet share after update - changed: + allowBackupKeySigning: type: boolean - description: Whether the wallet share was changed - required: - - state - - changed - WalletShareState: - title: WalletShareState - type: string - enum: - - pendingapproval - - active - - accepted - - canceled - - rejected - description: The state of wallet share object - example: active - WalletShare: - type: object - properties: - id: - $ref: '#/components/schemas/Id' - coin: - $ref: '#/components/schemas/Coin' - wallet: - $ref: '#/components/schemas/Id' - walletLabel: - $ref: '#/components/schemas/WalletLabel' - fromUser: - $ref: '#/components/schemas/Id' - toUser: - $ref: '#/components/schemas/Coin' - permission: - type: string - description: | - Comma-separated list of privileges for a wallet. Includes: - - - 'admin' - Can manage wallet policies and users and approve or reject pending approvals. - - 'freeze' - Can freeze a wallet, disabling all withdrawals. - - 'spend' - Can initiate withdrawals and generate new receive addresses. - - 'trade' - Can initiate trades from a Go Account ('trading' wallet type). - - 'view' - Can view balances and transactions. - - Permissions don't overlap. Required parameter if 'reshare' is false. - enum: - - admin - - spend - - trade - - view - example: spend,view - message: - type: string - description: User readable message to display to the share recipient - state: - $ref: '#/components/schemas/WalletShareState' - enterprise: - $ref: '#/components/schemas/Id' - pendingApprovalId: - allOf: - - $ref: '#/components/schemas/Id' - description: Only set if this wallet share is currently pending approval - keychain: - description: Only set if this wallet share has an associated keychain - type: object - properties: - pub: - description: Sharing user's root public key - type: string - encryptedPrv: - description: Sharing user's private key encrypted under their wallet passphrase - type: string - fromPubKey: - description: Sharing user's derived public key which will be used to calculate the wallet sharing secret. - type: string - toPubKey: - description: Shared-to user's derived public key which will be used to calculate the wallet sharing secret. - type: string - path: - description: BIP32 HD path of the derived public keys (fromPubKey and toPubKey) - example: m/1234/1/1 - type: string - required: - - id - - coin - - wallet - - walletLabel - - fromUser - - toUser - - permissions - - message - - state - - enterprise - Enterprise: - title: Enterprise - type: object - properties: - id: - $ref: '#/components/schemas/EnterpriseIdString' - name: - type: string - example: Small Company - additionalEnterpriseInfo: - $ref: '#/components/schemas/AdditionalEnterpriseInfo' - bitgoOrg: - allOf: - - $ref: '#/components/schemas/BitgoOrg' - description: BitGo Organization related to this entity - kycState: - $ref: '#/components/schemas/KycState' - legalIdentifiers: - $ref: '#/components/schemas/LegalIdentifiers' - type: - type: string - latestSAVersionSigned: + approvalsRequired: type: number - example: 0 - travelRule: - type: boolean - productLicenses: - type: array - items: - type: string - canAccessBorrowing: - type: boolean - description: whether the enterprise has the licence for BitGo Prime Borrowing - canAccessLending: - type: boolean - description: whether the enterprise has the licence for BitGo Prime Lending - canAccessSettlement: - type: boolean - description: whether the enterprise has the licence to utilize settlement functionality - canAccessTrading: - type: boolean - description: whether the enterprise has the licence to access BitGo Trading - canCreateColdWallet: - type: boolean - description: whether the enterprise has the license to create cold wallets - canCreateHotWallet: + example: 1 + minimum: 1 + coin: + $ref: '#/components/schemas/CoinString' + coinSpecific: + $ref: '#/components/schemas/WalletSubdocument' + deleted: type: boolean - description: whether the enterprise has the license to create hot wallets - canCreateCustodialWallet: + disableTransactionNotifications: type: boolean - description: whether the enterprise has the license to create custodial wallets - canCreateOffchainWallet: + hasLargeNumberOfAddresses: type: boolean - description: whether the enterprise has the license to create trading accounts - oneTimeFees: - type: array - items: - type: string - upfrontPaymentStatus: + id: type: string - ethAlwaysUseHop: - type: boolean - description: Always use hop address for ETH transactions - usersViewAllWallets: - type: boolean - description: All users on the enterprise can view all enterprise wallets, even if they are not viewers on the wallet itself - example: true - videoIdWaived: + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + isCold: type: boolean - description: Whether the customer has waived the need for Video ID on low risk withdrawals. - example: false - tradeOnboardingAgreement: - allOf: - - $ref: '#/components/schemas/OnboardingAgreement' - description: Who & when the MPA license was ack'd - stakingServicesAgreement: - $ref: '#/components/schemas/OnboardingAgreement' - custodyServicesAgreement: - $ref: '#/components/schemas/OnboardingAgreement' - accountType: - allOf: - - $ref: '#/components/schemas/AccountType' - description: Indicates which type of KYC process the enterprise has to complete - businessModel: - $ref: '#/components/schemas/BusinessModel' - salesforceAccountId: + label: type: string - description: Opportunity ID from Salesforce - salesforceOpportunityId: + example: My Wallet + startDate: type: string - opportunityName: + description: Wallet creation time + format: date-time + title: ISO Date String + admin: + type: object + properties: + policy: + $ref: '#/components/schemas/Policy' + billingEnterprise: type: string - description: Opportunity Name from Salesforce - salesEmail: + buildDefaults: + type: object + properties: + minFeeRate: + type: number + description: (UTXO only) Wallet-level minimum fee rate that must be greater than or equal to the default of 1000 satoshis/kvByte. Per transaction, you can override "minFeeRate" with the "feeRate" parameter. + example: 12000 + minimum: 1000 + clientFlags: + type: array + items: + type: object + properties: + name: + type: string + value: + type: boolean + config: + type: object + properties: + nodeId: {} + custodialWalletId: type: string - cheetahAccountId: + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + customChangeKeySignatures: + type: object + properties: + user: + type: string + backup: + type: string + bitgo: + type: string + customerWalletId: type: string - description: CheetahAccountID is the unique ID for a BitGo Trust enterprise in Cheetah, which is the accounting system used by Trust. - primaryContact: + enterprise: type: string - description: The Id of the User who is the primary contact example: 59cd72485007a239fb00282ed480da1f - minLength: 1 pattern: ^[0-9a-f]{32}$ - organizationId: - $ref: '#/components/schemas/OrganizationIdString' - emergencyPhone: + organization: type: string - description: Phone number for emergencies - example: '+11234567890' - pricingPlan: + bitgoOrg: type: string - description: The pricing plan of the enterprise - approvalsRequired: - type: number - description: How many Enterprise Admins are required for action to fire - example: 1 - mutablePolicyWindow: - type: number - description: Time in seconds after which policies on this Enterprise cannot be updated - example: 172800 freeze: - $ref: '#/components/schemas/Freeze' - bitgoEthKey: - type: string - description: The public portion of the ethererum key generated for the enterprise fee address - ethFeeAddress: - type: string - description: The eth fee address used to pay for network transaction fees of this enterprise - walletLimit: - type: object - additionalProperties: - type: number - preferredUi: - allOf: - - $ref: '#/components/schemas/AvailableUI' - description: The UI that this enterprise prefers to use - custodialWalletLimit: - nullable: true type: object - additionalProperties: - type: number - featureFlags: - type: array - items: - type: string - labels: + properties: + time: + type: string + format: date-time + title: ISO Date String + expires: + type: string + format: date-time + title: ISO Date String + instantProvider: + type: string + keys: type: array + example: + - 585951a5df8380e0e304a553 + - 585951a5df8380e0e30d645c + - 585951a5df8380e0e30b6147 items: type: string - licenses: + keySignatures: + type: object + properties: + backupPub: + type: string + bitgoPub: + type: string + m: + type: number + description: Number of signatures required. This value must be 2 for hot wallets, 1 for **ofc** wallets, and not specified for custodial wallets. + example: 2 + migratedFrom: + type: string + multisigType: + $ref: '#/components/schemas/MultiSigType' + multisigTypeVersion: + $ref: '#/components/schemas/MultisigTypeVersion' + 'n': + type: number + description: Number of keys provided. This value must be 3 for hot wallets, 1 for **ofc** wallets, and not specified for custodial wallets. + example: 3 + recoverable: + type: boolean + tags: type: array items: type: string - description: New licences that are not stored as flags. Tax requires Portfolio Professional or Institutional - ellipticId: + type: + allOf: + - $ref: '#/components/schemas/WalletType' + description: The type describes who owns the keys to the wallet and how they are stored. "cold" wallets are wallets where the private key of the user key is stored exclusively outside of BitGo's system. "custodial" means that this wallet is a cold wallet where BitGo owns the keys. Only customers of the BitGo Trust can create this kind of wallet. "custodialPaired" means that this is a hot wallet that is owned by the customer but it will be linked to a cold (custodial) wallet where BitGo owns the keys. This option is only available to customers of BitGo Inc. BitGo stores an encrypted private key for the user key of "hot" wallets. "trading" wallets are trading accounts where the coin is "ofc". "distributedCustody" means You manage one key and another key agent manages the second key. BitGo manages the third key + subType: + $ref: '#/components/schemas/WalletSubType' + balanceString: type: string - description: Identifier for environment variables for a customer's Elliptic API credentials - ellipticHotWallets: - type: boolean - description: Hot wallet transactions on this enterprise are monitored in Elliptic - vaspId: + description: The cleared balance of the address in base units (e.g. Satoshis). Guaranteed to not lose precision. The is only returned if the 'expandBalance' query parameter is set to 'true'. + balance: + type: number + description: The cleared balance of the address in base units (e.g. Satoshis). The is only returned if the 'expandBalance' query parameter is set to 'true'. + confirmedBalanceString: type: string - bitgoVaspId: + description: The total balance of confirmed transactions in base units (e.g. Satoshis). The is only returned if the 'expandBalance' query parameter is set to 'true'. Guaranteed to not lose precision. + confirmedBalance: + type: number + description: The total balance of confirmed transactions in base units (e.g. Satoshis). The is only returned if the 'expandBalance' query parameter is set to 'true'. + spendableBalanceString: type: string - coinSpecific: - type: object - additionalProperties: {} - walletCounts: - type: object - description: Number of wallets per coin - properties: - enterpriseWallets: - type: object - additionalProperties: - type: number - required: - - enterpriseWallets - activePricingType: - nullable: true - allOf: - - $ref: '#/components/schemas/FlattenedPricingType' - source: - $ref: '#/components/schemas/AggregatorSourceType' - totalWalletsCount: + description: The total balance in base units (e.g. Satoshis) which may be used as inputs for creating new transactions in string representation. Guaranteed to not lose precision. The is only returned if the 'expandBalance' query parameter is set to 'true'. + spendableBalance: type: number - description: The total number of wallets in the enterprise - example: 1 - internal: - $ref: '#/components/schemas/EnterpriseInternal' - distributedCustody: - $ref: '#/components/schemas/DistributedCustody' - migratedToNewPolicyService: - type: boolean - description: Whether the enterprise has been migrated to the new policy service - videoIdUsers: + description: The total balance in base units (e.g. Satoshis) which may be used as inputs for creating new transactions in string representation. The is only returned if the 'expandBalance' query parameter is set to 'true'. + stakingBalanceString: + type: string + description: The staked balance in base units. Guaranteed to not lose precision. The is only returned if the 'includeStakingBalances' query parameter is set to 'true'. + rewardBalanceString: + type: string + description: The staking reward balance in base units. Guaranteed to not lose precision. The is only returned if the 'includeStakingBalances' query parameter is set to 'true'. + users: type: array items: type: object properties: - email: - type: string - description: The email of the user - minLength: 1 - userId: - type: string - description: The user ID - minLength: 1 - inviter: - type: string - description: The inviter of the user - minLength: 1 - state: - allOf: - - $ref: '#/components/schemas/VideoIdUserState' - description: The state of the user - videoCallId: - type: string - description: The user's video call ID - approvalDate: - type: string - description: The date the user was approved - archivedDate: - type: string - description: The date the user was archived - pendingApprovalId: - type: string - description: The ID if the user is pending approval - videoLink: - type: string - description: The user's video link - enterpriseId: - type: string - description: EnterpriseId of enterprise this video users belongs to - enterpriseName: + needsRecovery: + type: boolean + permissions: + type: array + items: + type: string + enum: + - admin + - spend + - view + - freeze + - trade + recoverable: + type: boolean + user: type: string - description: EnterpriseName of enterprise this video users belongs to required: - - email - - userId - - inviter - - state - description: IDs of users on the enterprise that are approved for custodial video ID - sourceConfig: + - permissions + walletFlags: type: array items: type: object properties: - source: - $ref: '#/components/schemas/AggregatorSourceType' - metadata: - type: object - description: 'The following fields: source, showBanner, readyForDistribution, showVideoIdBanner, ftxCreditorId were added for FTX insitutional distribution. Reference: https://bitgoinc.atlassian.net/browse/COPS-2695' - properties: - showBanner: - type: boolean - readyForDistribution: - type: boolean - showVideoIdBanner: - type: boolean - ftxCreditorId: - type: string + name: + $ref: '#/components/schemas/WalletFlag' + value: + type: string required: - - source - description: Array to store configs, upon which certain actions are taken, per source - videoIdRequired: - type: boolean - description: Check for video ID Users - contract: - allOf: - - $ref: '#/components/schemas/EnterpriseContract' - description: Contract information - referralCode: - allOf: - - $ref: '#/components/schemas/ReferralCodeString' - description: Referral code - oauthProvider: - allOf: - - $ref: '#/components/schemas/OAuthProvider' - description: Log in Method of the enterprise * - optOutOfPoints: - type: boolean - description: Opt Out of Points System Flag + - name + - value + receiveAddress: + $ref: '#/components/schemas/WalletAddress' required: + - allowBackupKeySigning + - approvalsRequired + - coin + - coinSpecific + - deleted + - disableTransactionNotifications + - hasLargeNumberOfAddresses - id - - name - - additionalEnterpriseInfo - - bitgoOrg - - kycState - - legalIdentifiers - - type - - latestSAVersionSigned - - travelRule - - productLicenses - - canAccessBorrowing - - canAccessLending - - canAccessSettlement - - canAccessTrading - - canCreateColdWallet - - canCreateHotWallet - - canCreateCustodialWallet - - canCreateOffchainWallet - - oneTimeFees - - upfrontPaymentStatus - - ethAlwaysUseHop - - usersViewAllWallets - - videoIdWaived - Freeze: - title: Freeze + - isCold + - label + - startDate + MultisigTypeVersion: + title: MultisigTypeVersion + type: string + enum: + - MPCv2 + WalletMultisigType: + type: string + enum: + - onchain + - tss + - blsdkg + CustomChangeKeySignatures: type: object properties: - time: - oneOf: - - type: string - format: date - title: Date String - - type: string - format: date-time - title: ISO Date String - description: When the freeze started - format: date-time - expires: - oneOf: - - type: string - format: date - title: Date String - - type: string - format: date-time - title: ISO Date String - description: When the freeze will end + user: + type: string + backup: + type: string + bitgo: + type: string + description: | + Signatures for the keys which will be used to derive custom change addresses. + + **Note:** These signatures may only be set once for each wallet and are not modifiable after being set. + WalletUser: + type: object + properties: + user: + $ref: '#/components/schemas/Id' + permissions: + type: array + items: + $ref: '#/components/schemas/WalletPermission' + example: + user: 55e8a1a5df8380e0e30e20c6 + permissions: + - admin + - view + - spend + WalletPermission: + type: string + description: | + Comma-separated list of privileges for a wallet. Includes: + + - 'admin' - Can manage wallet policies and users and approve or reject pending approvals. + - 'freeze' - Can freeze a wallet, disabling all withdrawals. + - 'spend' - Can initiate withdrawals and generate new receive addresses. + - 'trade' - Can initiate trades from a Go Account ('trading' wallet type). + - 'view' - Can view balances and transactions. + + Permissions don't overlap. Required parameter if 'reshare' is false. + enum: + - admin + - spend + - trade + - view + example: spend,view + IntegerString: + type: string + pattern: ^-?\d+$ + example: '2000000' + AddressType: + type: string + example: p2sh + enum: + - p2sh + - p2shP2wsh + - p2wsh + - p2tr + - p2trMusig2 + AddressBalance: + type: object + properties: + updated: + type: string + description: The last time a transaction affected the balance of this address format: date-time - reason: + balance: + type: integer + description: The cleared balance of the address + example: 50000 + balanceString: type: string - description: The reason the entity was frozen - frozenBy: + description: String representation of 'balance'. Guaranteed to not lose precision. + example: '50000' + totalReceived: + type: integer + description: The total amount received on this address (in the chain's base unit) + totalSent: + type: integer + description: The total amount send from this address (in the chain's base unit) + confirmedBalanceString: type: string - description: The user that froze the entity - unFrozenBy: + description: | + The total balance of confirmed transactions for the address (in the chain's base unit). + Guaranteed to not lose precision. + example: '40000' + spendableBalanceString: type: string - description: The user that unfroze the entity - EnterpriseContract: - title: EnterpriseContract + description: | + The total balance of the address (in the chain's base unit) which may + be used as inputs for creating new transactions in string representation. + Guaranteed to not lose precision. + example: '40000' + AddressCoinSpecificXlm: type: object properties: - startDate: - oneOf: - - type: string - format: date - title: Date String - - type: string - format: date-time - title: ISO Date String - endDate: - oneOf: - - type: string - format: date - title: Date String - - type: string - format: date-time - title: ISO Date String - isExternal: + memoId: + allOf: + - $ref: '#/components/schemas/IntegerString' + - example: '1' + description: Latest memo id generated for the wallet + rootAddress: + type: string + description: Root address of the wallet + example: GCTTCPH4IIDK7P72FFAEJ3ZFN6WDHJH6GGMRPHPM56ZWGIQ7B3XTIJAM + Chain: + type: integer + example: 1 + enum: + - 0 + - 1 + - 10 + - 11 + - 20 + - 21 + - 30 + - 31 + - 40 + - 41 + NumKeychains: + description: | + Number of keys provided. This value must be 3 for hot wallets, + 1 for **ofc** wallets, and not specified for custodial wallets. + type: integer + example: 3 + NumSignatures: + description: | + Number of signatures required. This value must be 2 for + hot wallets, 1 for **ofc** wallets, and not specified for custodial + wallets. + type: integer + example: 2 + Keys: + type: array + items: + $ref: '#/components/schemas/Id' + example: + - 585951a5df8380e0e304a553 + - 585951a5df8380e0e30d645c + - 585951a5df8380e0e30b6147 + WalletCoinSpecific: + oneOf: + - title: Wallet + type: object + properties: + creationFailure: + type: array + items: + $ref: '#/components/schemas/TxId' + description: Includes list of fail initialization txids + pendingChainInitialization: + type: boolean + description: Whether the wallet needs to be initialized on the chain + - $ref: '#/components/schemas/WalletCoinSpecificCosmos' + - $ref: '#/components/schemas/WalletCoinSpecificXlm' + WalletCoinSpecificXlm: + title: XLM + type: object + properties: + rootAddress: + type: string + description: Root address of the wallet + example: GCTTCPH4IIDK7P72FFAEJ3ZFN6WDHJH6GGMRPHPM56ZWGIQ7B3XTIJAM + stellarUsername: + type: string + description: Username for the user's Stellar address + example: foo_bar@baz.com + homeDomain: + type: string + description: Home domain of a Stellar account + example: bitgo.com + stellarAddress: + type: string + description: Email-like address associated to a Stellar account + example: foo_bar@baz.com*bitgo.com + WalletCoinSpecificCosmos: + title: ATOM + type: object + properties: + rootAddress: + type: string + description: Wallet address to send or receive assets. + example: cosmos1uvrgkp82dmeks368d7g2ejzm3axhapzveh5uek + lastChainIndex: + type: number + description: Index of last address that was derived. + example: 1 + lastMemoId: + type: string + description: A running counter of the last known memo id. The first one is 0. + example: '0' + pendingEcdsaTssInitialization: type: boolean - BitgoOrg: - title: BitgoOrg + description: If true, this wallet cannot sign transactions or messages as the enterprise has not finished MPC setup. + example: false + required: + - rootAddress + - lastMemoId + TxId: type: string + description: The on-chain transaction id + example: b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26 + WalletBuildDefaults: + type: object + properties: + minFeeRate: + type: integer + minimum: 1000 + nullable: true + example: 12000 + description: | + (BTC only) The minimum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. Must be greater than or equal to the default of 1000 satoshis/kvByte. + + Note: The you can override 'minFeeRate' on a per transaction basis with the 'feeRate' parameter. + maxFeeRate: + type: integer + minimum: 1000 + nullable: true + example: 18000 + description: | + (BTC only) The maximum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. The 'maxFeeRate' limits the fee rate generated by both 'feeMultiplier' and 'numBlocks'. + + Note: The you can override 'maxFeeRate' on a per transaction basis with the 'feeRate' parameter. + feeMultiplier: + type: number + minimum: 1 + nullable: true + example: 1.2 + description: | + (UTXO only) Custom multiplier to the 'feeRate'. The resulting fee rate is limited by the 'maxFeeRate'. For replace-by-fee (RBF) transactions (that include 'rbfTxIds'), the 'feeMultiplier' must be greater than 1, since it's an absolute fee multiplier to the transaction being replaced. + + Note: The 'maxFeeRate' limits the fee rate generated by 'feeMultiplier'. + changeAddressType: + $ref: '#/components/schemas/DefaultChangeAddressType' + txFormat: + type: string + example: psbt + enum: + - legacy + - psbt + - psbt-lite + description: | + (UTXO only) The default transaction format to use for this wallet. Per transaction, you can override the default with the 'txFormat' parameter. + DefaultChangeAddressType: + type: string + example: p2wsh enum: - - BitGo Trust - - BitGo New York - - BitGo Germany - - BitGo Switzerland - - BitGo Europe ApS - - Frankfurt DE Trust - - BitGo Singapore - - BitGo Korea - - BitGo Mena Fze - - BitGo Sister Trust 1 - - BitGo Inc + - p2sh + - p2shP2wsh + - p2wsh + - p2tr + - p2trMusig2 + - default + description: | + (UTXO only) The default script type to use for change for this wallet. Per transaction, you override the default with the 'changeAddressType' parameter. If 'default' is provided, it will clear the 'changeAddressType' default on the wallet. Note that each UTXO coin has different address types available. For example, Only BTC supports 'p2tr'. Policy: title: Policy type: object @@ -29986,16 +30129,16 @@ components: properties: id: type: string - latest: - type: boolean - version: - type: number type: $ref: '#/components/schemas/ApiRuleType' action: allOf: - $ref: '#/components/schemas/PolicyRuleAction' description: What happens when this rule is triggered + latest: + type: boolean + version: + type: number lockDate: type: string description: The time at which this rule becomes immutable @@ -30013,8 +30156,6 @@ components: description: Parameters for the type required: - id - - latest - - version - type - action walletId: @@ -30056,10 +30197,6 @@ components: - walletId - enterpriseId description: the kind of resource a list rule entry refers to - IntegerString: - type: string - pattern: ^-?\d+$ - example: '2000000' MutabilityConstraint: title: MutabilityConstraint type: string @@ -30068,109 +30205,615 @@ components: - permanent - sticky - managed - AdditionalEnterpriseInfo: - title: AdditionalEnterpriseInfo + UpdateWallet: type: object properties: - contact: - $ref: '#/components/schemas/GeographicAddress' - GeographicAddress: - title: GeographicAddress + approvalsRequired: + $ref: '#/components/schemas/ApprovalsRequired' + buildDefaults: + $ref: '#/components/schemas/WalletBuildDefaults' + disableTransactionNotifications: + type: boolean + label: + $ref: '#/components/schemas/WalletLabel' + customChangeKeySignatures: + $ref: '#/components/schemas/CustomChangeKeySignatures' + coinSpecific: + $ref: '#/components/schemas/WalletUpdateCoinSpecific' + WalletUpdateCoinSpecific: + type: object + properties: + eth: + $ref: '#/components/schemas/WalletUpdateCoinSpecificEth' + teth: + $ref: '#/components/schemas/WalletUpdateCoinSpecificEth' + WalletUpdateCoinSpecificEth: + type: object + properties: + deployForwardersManually: + type: boolean + flushForwardersManually: + type: boolean + UpdateWalletShareResponse: + title: UpdateWalletShareResponse type: object properties: - addressType: - type: string - name: - type: string - description: Legal name of the enterprise, not necessarily the same as the display name - street: - type: string - description: Address line - street2: - nullable: true - type: string - description: Optional second address line - suite: - nullable: true - type: string - description: Optional suite number - city: - type: string - description: City name state: - type: string - description: State or region - postalCode: - type: string - description: Postal code - country: - type: string - description: ISO 3166-1 Alpha-3 country code - V1PendingApproval: + allOf: + - $ref: '#/components/schemas/WalletShareState' + description: New state of the wallet share after update + changed: + type: boolean + description: Whether the wallet share was changed + required: + - state + - changed + WalletShareState: + title: WalletShareState + type: string + enum: + - pendingapproval + - active + - accepted + - canceled + - rejected + description: The state of wallet share object + example: active + WalletShare: type: object properties: id: $ref: '#/components/schemas/Id' - enterprise: - allOf: - - $ref: '#/components/schemas/Id' - description: The Id of the associated enterprise - walletId: + coin: + $ref: '#/components/schemas/Coin' + wallet: + $ref: '#/components/schemas/Id' + walletLabel: + $ref: '#/components/schemas/WalletLabel' + fromUser: + $ref: '#/components/schemas/Id' + toUser: + $ref: '#/components/schemas/Coin' + permission: type: string - example: 1G47mSr3oANXMafVrR8UC4pzV7FEAzo3r9 - description: The base address of the associated wallet - creator: + description: | + Comma-separated list of privileges for a wallet. Includes: + + - 'admin' - Can manage wallet policies and users and approve or reject pending approvals. + - 'freeze' - Can freeze a wallet, disabling all withdrawals. + - 'spend' - Can initiate withdrawals and generate new receive addresses. + - 'trade' - Can initiate trades from a Go Account ('trading' wallet type). + - 'view' - Can view balances and transactions. + + Permissions don't overlap. Required parameter if 'reshare' is false. + enum: + - admin + - spend + - trade + - view + example: spend,view + message: + type: string + description: User readable message to display to the share recipient + state: + $ref: '#/components/schemas/WalletShareState' + enterprise: + $ref: '#/components/schemas/Id' + pendingApprovalId: allOf: - $ref: '#/components/schemas/Id' - description: The Id of the User that created the Pending Approval - createDate: - type: string - format: date-time - info: + description: Only set if this wallet share is currently pending approval + keychain: + description: Only set if this wallet share has an associated keychain type: object properties: - type: + pub: + description: Sharing user's root public key type: string - enum: - - bitcoinAddressWhitelistRequest - - userChangeRequest - - policyRuleRequest - - dailyLimitPolicyRequest - - transactionRequest - - tagUpdateRequest - - updateEnterpriseRequest - - updateApprovalsRequiredRequest - updateEnterpriseRequest: - type: object - properties: - action: - type: string - enum: - - add - - remove - permissions: - type: array - items: - $ref: '#/components/schemas/EnterprisePermission' - userId: - allOf: - - $ref: '#/components/schemas/Id' - description: The Id of the User to be added to or removed from the Enterprise - email: - allOf: - - $ref: '#/components/schemas/Email' - description: E-Mail address of newly added users - updateApprovalsRequiredRequest: - type: object - properties: - requestedApprovalsRequired: - type: number - minimum: 1 - description: the number of approvalsRequired that should be changed to - state: - type: string - enum: - - pending + encryptedPrv: + description: Sharing user's private key encrypted under their wallet passphrase + type: string + fromPubKey: + description: Sharing user's derived public key which will be used to calculate the wallet sharing secret. + type: string + toPubKey: + description: Shared-to user's derived public key which will be used to calculate the wallet sharing secret. + type: string + path: + description: BIP32 HD path of the derived public keys (fromPubKey and toPubKey) + example: m/1234/1/1 + type: string + required: + - id + - coin + - wallet + - walletLabel + - fromUser + - toUser + - permissions + - message + - state + - enterprise + Enterprise: + title: Enterprise + type: object + properties: + id: + $ref: '#/components/schemas/EnterpriseIdString' + name: + type: string + example: Small Company + additionalEnterpriseInfo: + $ref: '#/components/schemas/AdditionalEnterpriseInfo' + bitgoOrg: + allOf: + - $ref: '#/components/schemas/BitgoOrg' + description: BitGo Organization related to this entity + kycState: + $ref: '#/components/schemas/KycState' + legalIdentifiers: + $ref: '#/components/schemas/LegalIdentifiers' + type: + type: string + latestSAVersionSigned: + type: number + example: 0 + travelRule: + type: boolean + productLicenses: + type: array + items: + type: string + canAccessBorrowing: + type: boolean + description: whether the enterprise has the licence for BitGo Prime Borrowing + canAccessLending: + type: boolean + description: whether the enterprise has the licence for BitGo Prime Lending + canAccessSettlement: + type: boolean + description: whether the enterprise has the licence to utilize settlement functionality + canAccessTrading: + type: boolean + description: whether the enterprise has the licence to access BitGo Trading + canCreateColdWallet: + type: boolean + description: whether the enterprise has the license to create cold wallets + canCreateHotWallet: + type: boolean + description: whether the enterprise has the license to create hot wallets + canCreateCustodialWallet: + type: boolean + description: whether the enterprise has the license to create custodial wallets + canCreateOffchainWallet: + type: boolean + description: whether the enterprise has the license to create trading accounts + oneTimeFees: + type: array + items: + type: string + upfrontPaymentStatus: + type: string + ethAlwaysUseHop: + type: boolean + description: Always use hop address for ETH transactions + usersViewAllWallets: + type: boolean + description: All users on the enterprise can view all enterprise wallets, even if they are not viewers on the wallet itself + example: true + videoIdWaived: + type: boolean + description: Whether the customer has waived the need for Video ID on low risk withdrawals. + example: false + tradeOnboardingAgreement: + allOf: + - $ref: '#/components/schemas/OnboardingAgreement' + description: Who & when the MPA license was ack'd + stakingServicesAgreement: + $ref: '#/components/schemas/OnboardingAgreement' + custodyServicesAgreement: + $ref: '#/components/schemas/OnboardingAgreement' + accountType: + allOf: + - $ref: '#/components/schemas/AccountType' + description: Indicates which type of KYC process the enterprise has to complete + businessModel: + $ref: '#/components/schemas/BusinessModel' + salesforceAccountId: + type: string + description: Opportunity ID from Salesforce + salesforceOpportunityId: + type: string + opportunityName: + type: string + description: Opportunity Name from Salesforce + salesEmail: + type: string + cheetahAccountId: + type: string + description: CheetahAccountID is the unique ID for a BitGo Trust enterprise in Cheetah, which is the accounting system used by Trust. + primaryContact: + type: string + description: The Id of the User who is the primary contact + example: 59cd72485007a239fb00282ed480da1f + minLength: 1 + pattern: ^[0-9a-f]{32}$ + organizationId: + $ref: '#/components/schemas/OrganizationIdString' + emergencyPhone: + type: string + description: Phone number for emergencies + example: '+11234567890' + pricingPlan: + type: string + description: The pricing plan of the enterprise + approvalsRequired: + type: number + description: How many Enterprise Admins are required for action to fire + example: 1 + mutablePolicyWindow: + type: number + description: Time in seconds after which policies on this Enterprise cannot be updated + example: 172800 + freeze: + $ref: '#/components/schemas/Freeze' + bitgoEthKey: + type: string + description: The public portion of the ethererum key generated for the enterprise fee address + ethFeeAddress: + type: string + description: The eth fee address used to pay for network transaction fees of this enterprise + walletLimit: + type: object + additionalProperties: + type: number + preferredUi: + allOf: + - $ref: '#/components/schemas/AvailableUI' + description: The UI that this enterprise prefers to use + custodialWalletLimit: + nullable: true + type: object + additionalProperties: + type: number + featureFlags: + type: array + items: + type: string + labels: + type: array + items: + type: string + licenses: + type: array + items: + type: string + description: New licences that are not stored as flags. Tax requires Portfolio Professional or Institutional + ellipticId: + type: string + description: Identifier for environment variables for a customer's Elliptic API credentials + ellipticHotWallets: + type: boolean + description: Hot wallet transactions on this enterprise are monitored in Elliptic + vaspId: + type: string + bitgoVaspId: + type: string + coinSpecific: + type: object + additionalProperties: {} + walletCounts: + type: object + description: Number of wallets per coin + properties: + enterpriseWallets: + type: object + additionalProperties: + type: number + required: + - enterpriseWallets + activePricingType: + nullable: true + allOf: + - $ref: '#/components/schemas/FlattenedPricingType' + source: + $ref: '#/components/schemas/AggregatorSourceType' + totalWalletsCount: + type: number + description: The total number of wallets in the enterprise + example: 1 + internal: + $ref: '#/components/schemas/EnterpriseInternal' + distributedCustody: + $ref: '#/components/schemas/DistributedCustody' + migratedToNewPolicyService: + type: boolean + description: Whether the enterprise has been migrated to the new policy service + videoIdUsers: + type: array + items: + type: object + properties: + email: + type: string + description: The email of the user + minLength: 1 + userId: + type: string + description: The user ID + minLength: 1 + inviter: + type: string + description: The inviter of the user + minLength: 1 + state: + allOf: + - $ref: '#/components/schemas/VideoIdUserState' + description: The state of the user + videoCallId: + type: string + description: The user's video call ID + approvalDate: + type: string + description: The date the user was approved + archivedDate: + type: string + description: The date the user was archived + pendingApprovalId: + type: string + description: The ID if the user is pending approval + videoLink: + type: string + description: The user's video link + enterpriseId: + type: string + description: EnterpriseId of enterprise this video users belongs to + enterpriseName: + type: string + description: EnterpriseName of enterprise this video users belongs to + required: + - email + - userId + - inviter + - state + description: IDs of users on the enterprise that are approved for custodial video ID + sourceConfig: + type: array + items: + type: object + properties: + source: + $ref: '#/components/schemas/AggregatorSourceType' + metadata: + type: object + description: 'The following fields: source, showBanner, readyForDistribution, showVideoIdBanner, ftxCreditorId were added for FTX insitutional distribution. Reference: https://bitgoinc.atlassian.net/browse/COPS-2695' + properties: + showBanner: + type: boolean + readyForDistribution: + type: boolean + showVideoIdBanner: + type: boolean + ftxCreditorId: + type: string + required: + - source + description: Array to store configs, upon which certain actions are taken, per source + videoIdRequired: + type: boolean + description: Check for video ID Users + contract: + allOf: + - $ref: '#/components/schemas/EnterpriseContract' + description: Contract information + referralCode: + allOf: + - $ref: '#/components/schemas/ReferralCodeString' + description: Referral code + oauthProvider: + allOf: + - $ref: '#/components/schemas/OAuthProvider' + description: Log in Method of the enterprise * + optOutOfPoints: + type: boolean + description: Opt Out of Points System Flag + required: + - id + - name + - additionalEnterpriseInfo + - bitgoOrg + - kycState + - legalIdentifiers + - type + - latestSAVersionSigned + - travelRule + - productLicenses + - canAccessBorrowing + - canAccessLending + - canAccessSettlement + - canAccessTrading + - canCreateColdWallet + - canCreateHotWallet + - canCreateCustodialWallet + - canCreateOffchainWallet + - oneTimeFees + - upfrontPaymentStatus + - ethAlwaysUseHop + - usersViewAllWallets + - videoIdWaived + Freeze: + title: Freeze + type: object + properties: + time: + oneOf: + - type: string + format: date + title: Date String + - type: string + format: date-time + title: ISO Date String + description: When the freeze started + format: date-time + expires: + oneOf: + - type: string + format: date + title: Date String + - type: string + format: date-time + title: ISO Date String + description: When the freeze will end + format: date-time + reason: + type: string + description: The reason the entity was frozen + frozenBy: + type: string + description: The user that froze the entity + unFrozenBy: + type: string + description: The user that unfroze the entity + EnterpriseContract: + title: EnterpriseContract + type: object + properties: + startDate: + oneOf: + - type: string + format: date + title: Date String + - type: string + format: date-time + title: ISO Date String + endDate: + oneOf: + - type: string + format: date + title: Date String + - type: string + format: date-time + title: ISO Date String + isExternal: + type: boolean + BitgoOrg: + title: BitgoOrg + type: string + enum: + - BitGo Trust + - BitGo New York + - BitGo Germany + - BitGo Switzerland + - BitGo Europe ApS + - Frankfurt DE Trust + - BitGo Singapore + - BitGo Korea + - BitGo Mena Fze + - BitGo Sister Trust 1 + - BitGo Inc + AdditionalEnterpriseInfo: + title: AdditionalEnterpriseInfo + type: object + properties: + contact: + $ref: '#/components/schemas/GeographicAddress' + GeographicAddress: + title: GeographicAddress + type: object + properties: + addressType: + type: string + name: + type: string + description: Legal name of the enterprise, not necessarily the same as the display name + street: + type: string + description: Address line + street2: + nullable: true + type: string + description: Optional second address line + suite: + nullable: true + type: string + description: Optional suite number + city: + type: string + description: City name + state: + type: string + description: State or region + postalCode: + type: string + description: Postal code + country: + type: string + description: ISO 3166-1 Alpha-3 country code + V1PendingApproval: + type: object + properties: + id: + $ref: '#/components/schemas/Id' + enterprise: + allOf: + - $ref: '#/components/schemas/Id' + description: The Id of the associated enterprise + walletId: + type: string + example: 1G47mSr3oANXMafVrR8UC4pzV7FEAzo3r9 + description: The base address of the associated wallet + creator: + allOf: + - $ref: '#/components/schemas/Id' + description: The Id of the User that created the Pending Approval + createDate: + type: string + format: date-time + info: + type: object + properties: + type: + type: string + enum: + - bitcoinAddressWhitelistRequest + - userChangeRequest + - policyRuleRequest + - dailyLimitPolicyRequest + - transactionRequest + - tagUpdateRequest + - updateEnterpriseRequest + - updateApprovalsRequiredRequest + updateEnterpriseRequest: + type: object + properties: + action: + type: string + enum: + - add + - remove + permissions: + type: array + items: + $ref: '#/components/schemas/EnterprisePermission' + userId: + allOf: + - $ref: '#/components/schemas/Id' + description: The Id of the User to be added to or removed from the Enterprise + email: + allOf: + - $ref: '#/components/schemas/Email' + description: E-Mail address of newly added users + updateApprovalsRequiredRequest: + type: object + properties: + requestedApprovalsRequired: + type: number + minimum: 1 + description: the number of approvalsRequired that should be changed to + state: + type: string + enum: + - pending - approved - rejected walletUserIds: @@ -32347,1878 +32990,1774 @@ components: - updateOrganizationRequest - genericRequest - enterpriseInviteRequest - CoinNonEmptyString: - title: CoinNonEmptyString - type: string - description: A cryptocurrency symbol or token ticker symbol - example: btc - minLength: 1 - EnterprisesResponse: - title: EnterprisesResponse - type: object - properties: - enterprises: - type: array - items: - oneOf: - - $ref: '#/components/schemas/Enterprise' - - $ref: '#/components/schemas/EnterpriseStub' - required: - - enterprises - EnterpriseStub: - title: Enterprise Stub + WalletAddress: + title: WalletAddress type: object properties: - id: - $ref: '#/components/schemas/EnterpriseIdString' - name: + chain: + allOf: + - $ref: '#/components/schemas/AddressChain' + example: '1' + coin: + $ref: '#/components/schemas/CoinString' + index: + type: number + wallet: type: string - example: Small Company - minLength: 1 - pricingPlan: + id: type: string - ethFeeAddress: + description: Platform public ID for an address + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + address: + $ref: '#/components/schemas/AddressString' + balance: + $ref: '#/components/schemas/TrimmedBalance' + coinSpecific: + allOf: + - $ref: '#/components/schemas/AddressSubdocument' + description: Properties specific to certain coin types + label: + $ref: '#/components/schemas/AddressLabelString' + lastNonce: + type: number + default: -1 + token: type: string - description: The eth fee address used to pay for network transaction fees of this enterprise - required: - - id - - name - EnterpriseIdString: - title: EnterpriseIdString - type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - OAuthProvider: - title: OAuthProvider - type: string - enum: - - msEntra - ReferralCodeString: - title: ReferralCodeString - type: string - description: An Enterprise Referral Code - AggregatorSourceType: - title: AggregatorSourceType - type: string - enum: - - bitcoinBuilder - - ftx - - ftx-retail - - ftx-bahamas - - ftx-bahamas-retail - - sofi - - bitcoinWell - - lucid - VideoIdUserState: - title: VideoIdUserState - type: string - enum: - - awaitingApproval - - awaitingAcceptance - - pendingSchedule - - pendingInitialId - - underReview - - approved - - rejected - - archived - DistributedCustody: - title: DistributedCustody - type: object - properties: - signingBitgoOrg: - $ref: '#/components/schemas/BitgoOrg' - required: - - signingBitgoOrg - EnterpriseInternal: - title: EnterpriseInternal - type: object - properties: - migratedToNewPolicyService: - nullable: true - type: boolean - description: Whether the enterprise has been migrated to the new policy service - policiesLocked: - type: boolean - required: - - migratedToNewPolicyService - - policiesLocked - FlattenedPricingType: - title: FlattenedPricingType - allOf: - - type: object - properties: - name: - $ref: '#/components/schemas/PricingTypeName' - required: - - name - - $ref: '#/components/schemas/ActiveDateRange' - ActiveDateRange: - title: ActiveDateRange - type: object - properties: - startDate: - oneOf: - - type: string - format: date-time - title: ISO Date String - - type: string - format: date - title: Date String - description: ISO 8601 Datetime (example at https://datatracker.ietf.org/doc/html/rfc3339#section-5.8). If present, will use as the start date of a new auditable item. If not present, will use the current date to create a new auditable item. Start date is inclusive, i.e. we will start billing/functionality at this instant and afterwards. - startReason: + proof: type: string - description: An optional note describing the reason the auditable item was added/created. - id: + signature: type: string - description: Unique identifier for the date range. - endDate: - nullable: true - oneOf: - - type: string - format: date-time - title: ISO Date String - - type: string - format: date - title: Date String - description: ISO 8601 Datetime (example at https://datatracker.ietf.org/doc/html/rfc3339#section-5.8). If present, will use as the end date of a new auditable item. If not present, we will set the endDate to null, and we will assume an indefinite range. endDate is exclusive, i.e. we will end billing/functionality up to but not at this particular time. - endReason: + lastConsolidatedTime: type: string - description: An optional note describing the reason the auditable item was ended. + format: date + title: Date String + needsConsolidation: + type: boolean + tokenConsolidationState: {} required: - - startDate - - startReason - PricingTypeName: - title: PricingTypeName - type: string - enum: - - starter - - growth - - employee - - FTX Retail - - FTX Institutional - AvailableUI: - title: AvailableUI - type: string - enum: - - bg23 - - '' - OrganizationIdString: - title: OrganizationIdString - type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - BusinessModel: - title: BusinessModel - type: string - enum: - - bitgoAsAService - AccountType: - title: AccountType + - chain + - coin + - index + - wallet + AddressLabelString: + title: AddressLabelString type: string - enum: - - individual - - entity - OnboardingAgreement: - title: OnboardingAgreement + description: A human-readable label for the address + example: Bob's Hot Wallet Address + maxLength: 250 + AddressSubdocument: + title: AddressSubdocument + oneOf: + - $ref: '#/components/schemas/AlgorandAddress' + - $ref: '#/components/schemas/AtomAddress' + - $ref: '#/components/schemas/AvaxPAddress' + - $ref: '#/components/schemas/UtxoAddress' + - $ref: '#/components/schemas/BitcoinCashAddress' + - $ref: '#/components/schemas/CasperAddress' + - $ref: '#/components/schemas/DotAddress' + - $ref: '#/components/schemas/EosAddress' + - $ref: '#/components/schemas/EthereumAddress' + - $ref: '#/components/schemas/Ethereum2Address' + - $ref: '#/components/schemas/FiatAddress' + - $ref: '#/components/schemas/HederaAddress' + - $ref: '#/components/schemas/OffchainAddressSubdocument' + - $ref: '#/components/schemas/SilvergateUSDAddress' + - $ref: '#/components/schemas/SolAddress' + - $ref: '#/components/schemas/StacksAddress' + - $ref: '#/components/schemas/StellarAddress' + - $ref: '#/components/schemas/TestcoinAddress' + - $ref: '#/components/schemas/TezosAddress' + - $ref: '#/components/schemas/TronAddress' + - $ref: '#/components/schemas/XRPAddress' + - $ref: '#/components/schemas/TonAddress' + TonAddress: + title: Ton Address type: object - description: For users doing self-service onboarding, they just need to click a checkbox to agree to the terms. we will track who & when that happened on a feature-by-feature basis. properties: - user: - type: string - date: - type: string - format: date-time - title: ISO Date String - ip: - type: string + addresses: + type: array + items: + type: string required: - - user - - date - LegalPersonNameIdentifierType: - title: LegalPersonNameIdentifierType - type: string - enum: - - LEGL - KycState: - title: KycState - type: string - enum: - - unverified - - approved - - rejected - - pending - GetEnterpriseResponse: - title: GetEnterpriseResponse - allOf: - - type: object + - addresses + XRPAddress: + title: XRP Address + type: object + properties: + nonceTracker: + type: object properties: - wallets: + detectedMissingNonces: type: array items: - type: string - minLength: 1 - tags: + type: object + properties: + nonce: + type: number + isNonceLocked: + type: boolean + nonceLockExpireTime: + type: string + format: date + title: Date String + required: + - nonce + - isNonceLocked + detectedMissingNoncesData: type: array items: type: object properties: - name: - type: string - id: + nonce: + type: number + isNonceLocked: + type: boolean + nonceLockExpireTime: type: string + format: date + title: Date String required: - - name - - id - required: - - wallets - - tags - - $ref: '#/components/schemas/Enterprise' - InvalidOrganizationId: - title: Invalid Organization ID - allOf: - - type: object - properties: - name: - type: string - enum: - - InvalidOrganizationId + - nonce + - isNonceLocked required: - - name - - $ref: '#/components/schemas/InvalidId' - EnterpriseUserRole: - title: EnterpriseUserRole - type: string - enum: - - admin - - member - Condition: - title: Condition - oneOf: - - type: object - properties: {} - - $ref: '#/components/schemas/AddressListCondition' - - $ref: '#/components/schemas/AdvancedListCondition' - - $ref: '#/components/schemas/LimitRuleCondition' - - $ref: '#/components/schemas/TxUsdThresholdRuleCondition' - - $ref: '#/components/schemas/WebhookRuleCondition' - AdvancedListCondition: - title: AdvancedListCondition + - detectedMissingNonces + - detectedMissingNoncesData + required: + - nonceTracker + TronAddress: + title: Tron Address type: object properties: - entries: - type: array - items: - type: object - properties: - item: - type: string - description: Either a valid address or a wallet or enterprise id. Must be unique in this whitelist. - metaData: - type: object - additionalProperties: {} - description: Any data about this entry that is not used to determine when to enforce the policy - type: - allOf: - - $ref: '#/components/schemas/AdvancedListType' - description: the kind of resource a list rule entry refers to - verificationState: - type: string - enum: - - unverified - - verified - required: - - item - - type - description: Entries specifying which addresses/ wallets/ enterprises are on the whitelist + rootPub: + type: string required: - - entries - AddressListCondition: - title: AddressListCondition + - rootPub + TezosAddress: + title: Tezos Address type: object properties: - addresses: + counter: + type: number + updateTime: + type: string + format: date + title: Date String + txCount: + type: number + pendingChainInitialization: + type: boolean + pendingPublicKeyRevelation: + type: boolean + creationFailure: type: array items: type: string - metaData: - type: object - additionalProperties: - type: object - additionalProperties: {} + delegate: + type: string + previousLowBalanceEmailSentAt: + type: string + format: date + title: Date String required: - - addresses - - metaData - GetTransactionRequestsResponse: - title: GetTransactionRequestsResponse + - counter + - updateTime + - txCount + - pendingChainInitialization + - pendingPublicKeyRevelation + - creationFailure + TestcoinAddress: + title: Testcoin Address + type: object + additionalProperties: {} + StellarAddress: + title: Stellar Address type: object properties: - nextBatchPrevId: + memoId: + type: string + rootAddress: type: string - description: When a result set is truncated, this field returns the id of the last object in the previous batch. To get the next batch of results, pass this value via the "prevId" query parameter. - format: uuid - txRequests: - type: array - items: - oneOf: - - $ref: '#/components/schemas/TransactionRequestLite2' - - $ref: '#/components/schemas/TransactionRequestFull' required: - - txRequests - AccessTokenResponse: - title: AccessTokenResponse + - memoId + - rootAddress + StacksAddress: + title: Stacks Address type: object properties: - id: + baseAddress: type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - isExtensible: + memoId: + type: string + required: + - baseAddress + - memoId + SolAddress: + title: Sol Address + type: object + properties: + rootAddress: + type: string + minimumFunding: + type: number + pendingChainInitialization: type: boolean - bitgoAdminPermissions: + trustedTokens: type: array items: - type: string - client: - type: string - created: - type: string - format: date-time - title: ISO Date String - enterprise: - type: string - expires: - type: string - format: date-time - title: ISO Date String - extensionAddress: + allOf: + - type: object + properties: + state: + $ref: '#/components/schemas/TrustedTokenState' + - $ref: '#/components/schemas/Token' + nonceExpiresAt: type: string - ip: + format: date + title: Date String + nonceTxRequestid: type: string - description: IP address of the client that requested this access token - example: 127.0.0.1 - format: ipv4 - ipRestrict: - type: array - items: - type: string - description: IP addresses of clients that are allowed to use this token - label: + type: type: string - origin: + required: + - rootAddress + - minimumFunding + - pendingChainInitialization + - trustedTokens + Token: + title: Token + type: object + properties: + limit: type: string - description: BitGo environment that issued this token - example: test.bitgo.com token: type: string - scope: - type: array - example: - - crypto_compare - - user_manage - - openid - - profile - - wallet_create - - wallet_manage_all - - wallet_approve_all - - wallet_spend_all - - wallet_edit_all - - wallet_view_all - items: - type: string - description: Session permissions - unlock: - allOf: - - type: object - properties: - spendingLimits: - type: object - additionalProperties: - type: object - properties: - txCount: - type: number - description: The transaction count limit for the coin - txValue: - type: number - description: The transaction value limit for the coin - txValueLimit: - type: number - description: The maximum transaction value limit for the coin - allErc20TokensLimit: - $ref: '#/components/schemas/AllErc20TokenLimit' - - $ref: '#/components/schemas/Unlock' - user: - type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - required: - - id - - isExtensible - AllErc20TokenLimit: - title: AllErc20TokenLimit + TrustedTokenState: + title: TrustedTokenState + type: string + enum: + - pending + - active + SilvergateUSDAddress: + title: Silvergate USD Address type: object properties: - enabled: - type: boolean - description: Indicates if the limit is enabled for all ERC20 tokens - txCount: - type: number - description: The transaction count limit for all ERC20 tokens - txValue: - type: string - description: The transaction value limit for all ERC20 tokens - txValueLimitInSmallUnits: + bankAccountId: type: string - description: The transaction value limit in small units for all ERC20 tokens - maxLimit: - type: boolean - description: Indicates if the maximum limit is enabled + bankAccount: + $ref: '#/components/schemas/BankAccountJson' required: - - enabled - - txCount - - txValue - OAuthAccessToken: - title: OAuthAccessToken + - bankAccountId + BankAccountJson: + title: BankAccountJson type: object properties: - bitgoAdminPermissions: - type: array - items: - type: string - description: The BitGo admin permissions associated with the access token - client: + accountNumber: type: string - description: The client associated with the access token - created: + address1: type: string - description: The creation date of the access token - format: date-time - title: ISO Date String - enterprise: + name: type: string - description: The enterprise associated with the access token - expires: + owner: + type: object + properties: + name: + type: string + address1: + type: string + address2: + type: string + address3: + type: string + required: + - name + - address1 + idHash: type: string - description: The expiration date of the access token - format: date-time - title: ISO Date String - extensionAddress: + verificationState: type: string - description: The extension address associated with the access token - id: + address2: type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - internal: - type: boolean - ip: + address3: type: string - description: IP address of the client that requested this access token - example: 127.0.0.1 - format: ipv4 - ipRestrict: - type: array - items: - type: string - description: IP addresses of clients that are allowed to use this token - isExtensible: - type: boolean - description: Indicates if the access token is extensible - label: + enterpriseId: type: string - description: The label associated with the access token - organizations: - type: array - items: - type: string - description: The organizations associated with the access token - origin: + id: type: string - description: BitGo environment that issued this token - example: test.bitgo.com - token: + routingNumber: type: string - description: The token value - scope: - type: array - example: - - crypto_compare - - user_manage - - openid - - profile - - wallet_create - - wallet_manage_all - - wallet_approve_all - - wallet_spend_all - - wallet_edit_all - - wallet_view_all - items: - type: string - description: Session permissions - unlock: - allOf: - - type: object - properties: - spendingLimits: - type: object - additionalProperties: - $ref: '#/components/schemas/PerCoinLimit' - - $ref: '#/components/schemas/Unlock' - description: The unlock object, returned if this session is currently unlocked - user: + shortCountryCode: + type: string + swiftCode: + type: string + type: type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ required: - - id - - isExtensible - PerCoinLimit: - title: PerCoinLimit + - accountNumber + - address1 + - name + - owner + - idHash + - verificationState + OffchainAddressSubdocument: + title: Offchain Address type: object - properties: - txCount: - type: number - description: The transaction count limit for the coin - txValue: - type: number - description: The transaction value limit for the coin - txValueLimit: - type: number - description: The maximum transaction value limit for the coin - V1ErrorResponse: - title: V1ErrorResponse + additionalProperties: {} + HederaAddress: + title: Hedera Address type: object properties: - errorName: + baseAddress: type: string - error: + memoId: type: string required: - - errorName - - error - V1ListingEntryWithListingResponse: - title: V1ListingEntryWithListingResponse - allOf: - - type: object - properties: - listing: - $ref: '#/components/schemas/V1ListingResponse' - required: - - listing - - $ref: '#/components/schemas/V1ListingEntryResponse' - V1ListingEntryResponse: - title: V1ListingEntryResponse + - baseAddress + - memoId + FiatAddress: + title: Fiat Address type: object properties: - id: + bankAccountId: type: string - title: uuid - walletId: + faBankAccountId: type: string - minLength: 1 - coin: + bankAccount: + $ref: '#/components/schemas/BankAccountJson' + Ethereum2Address: + title: Ethereum2 Address + type: object + properties: + feeAddress: type: string - minLength: 1 - type: - $ref: '#/components/schemas/EntryType' - description: + EthereumAddress: + title: Ethereum Address + type: object + properties: + creationFailure: + type: array + items: + type: string + forwarderVersion: + type: number + nonce: + type: number + feeAddress: type: string - minLength: 1 - discoverable: + pendingChainInitialization: type: boolean - featured: + pendingDeployment: type: boolean - createdAt: + txCount: + type: number + updateTime: type: string - format: date-time - title: ISO Date String - updatedAt: + format: date + title: Date String + hopTxid: type: string - format: date-time - title: ISO Date String + salt: + type: string + usdtBug: + type: boolean + isTss: + type: boolean + isNonceLocked: + type: boolean + nonceLockExpireTime: + type: string + format: date + title: Date String + previousLowBalanceEmailSentAt: + type: string + format: date + title: Date String required: - - id - - walletId - - coin - - type - - discoverable - - featured - - createdAt - - updatedAt - V1ListingResponse: - title: V1ListingResponse + - creationFailure + - forwarderVersion + - nonce + - feeAddress + - pendingChainInitialization + - pendingDeployment + - txCount + - updateTime + EosAddress: + title: Eos Address type: object - description: codec for listing http response properties: - id: - type: string - title: uuid - name: + rootAddress: type: string - minLength: 1 - description: + memoId: type: string - minLength: 1 - editable: - type: boolean - description: True, if the name is editable. required: - - id - - name - - editable - EntryType: - title: EntryType - type: string - enum: - - GO_ACCOUNT - description: codec for entry type - V1GlobalListingWithListingEntries: - title: V1GlobalListingWithListingEntries - allOf: - - type: object - properties: {} - - $ref: '#/components/schemas/V1GlobalListingResponse' - - $ref: '#/components/schemas/V1ListingEntryListResponse' - V1GlobalListingResponse: - title: V1GlobalListingResponse + - rootAddress + - memoId + DotAddress: + title: Dot Address type: object - description: codec for global listing http response properties: - id: - type: string - title: uuid - enterpriseId: + rootAddress: type: string - minLength: 1 - description: + nonceTracker: + type: object + properties: + lastReservedNonce: + type: number + lastExecutedNonce: + type: number + detectedMissingNonces: + type: array + items: + type: object + properties: + nonce: + type: number + isNonceLocked: + type: boolean + nonceLockExpireTime: + type: string + format: date + title: Date String + required: + - nonce + - isNonceLocked + detecMissingNoncesData: + type: array + items: + type: object + properties: + nonce: + type: number + isNonceLocked: + type: boolean + nonceLockExpireTime: + type: string + format: date + title: Date String + required: + - nonce + - isNonceLocked + required: + - lastReservedNonce + - lastExecutedNonce + - detectedMissingNonces + - detecMissingNoncesData + required: + - rootAddress + - nonceTracker + CasperAddress: + title: Casper Address + type: object + properties: + accountHash: type: string - minLength: 1 - name: + rootAddress: type: string - minLength: 1 - owner: + transferId: type: string - minLength: 1 - createdAt: + required: + - accountHash + - rootAddress + - transferId + BitcoinCashAddress: + title: Bitcoin Cash Address + allOf: + - type: object + properties: + format: + $ref: '#/components/schemas/SupportedAddressFormat' + - $ref: '#/components/schemas/UtxoAddress' + UtxoAddress: + title: Utxo Address + type: object + properties: + redeemScript: type: string - format: date-time - title: ISO Date String - updatedAt: + witnessScript: type: string - format: date-time - title: ISO Date String - required: - - id - - enterpriseId - - name - - owner - - createdAt - - updatedAt - V1ListingEntryListResponse: - title: V1ListingEntryListResponse + SupportedAddressFormat: + title: SupportedAddressFormat + type: string + enum: + - cashaddr + - base58 + AvaxPAddress: + title: AvaxP Address type: object - description: codec for listing entry list http response properties: - listingEntries: + threshold: + type: number + addresses: type: array items: - type: object - properties: - id: - type: string - title: uuid - walletId: - type: string - minLength: 1 - coin: - type: string - minLength: 1 - type: - $ref: '#/components/schemas/EntryType' - description: - type: string - minLength: 1 - discoverable: - type: boolean - featured: - type: boolean - createdAt: - type: string - format: date-time - title: ISO Date String - updatedAt: - type: string - format: date-time - title: ISO Date String - required: - - id - - walletId - - coin - - type - - discoverable - - featured - - createdAt - - updatedAt + type: string required: - - listingEntries - V1ConnectionWithOwnerAndTargetListResponse: - title: V1ConnectionWithOwnerAndTargetListResponse + - threshold + - addresses + AtomAddress: + title: Atom Address type: object properties: - connections: - type: array - items: - allOf: - - type: object - properties: - ownerListingEntry: - $ref: '#/components/schemas/V1ListingEntryWithListingResponse' - targetListingEntry: - $ref: '#/components/schemas/V1ListingEntryWithListingResponse' - required: - - ownerListingEntry - - targetListingEntry - - $ref: '#/components/schemas/V1ConnectionResponse' + rootAddress: + type: string + memoId: + type: string required: - - connections - V1ConnectionResponse: - title: V1ConnectionResponse + - rootAddress + - memoId + AlgorandAddress: + title: Algorand Address type: object - description: codec for connection http response properties: - id: + rootAddress: type: string - title: uuid - type: - $ref: '#/components/schemas/ConnectionType' - status: - $ref: '#/components/schemas/ConnectionStatus' - label: + trustedTokens: + type: array + items: + allOf: + - type: object + properties: + state: + $ref: '#/components/schemas/TrustedTokenState' + - $ref: '#/components/schemas/Token' + addressVersion: + type: number + threshold: + type: number + bitgoKey: {} + bitgoPubKey: type: string - minLength: 1 - description: + required: + - rootAddress + TrimmedBalance: + title: TrimmedBalance + type: object + properties: + balanceString: type: string - minLength: 1 - createdBy: + description: String representation of the balance. Guaranteed to not lose precision. + example: '500000' + confirmedBalanceString: type: string - minLength: 1 - updatedBy: + description: The total balance of confirmed transactions for the address (in the chain's base unit). Guaranteed to not lose precision. + example: '400000' + spendableBalanceString: type: string - minLength: 1 - createdAt: + description: The total balance of the address (in the chain's base unit) which may be used as inputs for creating new transactions in string representation. Guaranteed to not lose precision. + example: '40000' + updated: + oneOf: + - type: string + format: date-time + title: ISO Date String + - type: string + format: date + title: Date String + description: The last time a transaction affected the balance of this address + balance: + type: number + example: 50000 + lockedBalanceString: type: string - format: date-time - title: ISO Date String - updatedAt: + reservedBalanceString: type: string - format: date-time - title: ISO Date String + totalReceived: + type: number + description: The total amount received on this address (in the chain's base unit) + totalSent: + type: number + description: The total amount sent from this address (in the chain's base unit) + transferCount: + type: number + tokens: + type: object + additionalProperties: {} + nfts: + type: object + additionalProperties: {} + unsupportedNfts: + type: object + additionalProperties: {} + type: {} + metadata: {} required: - - id - - type - - status - - label - - createdBy - - updatedBy - - createdAt - - updatedAt - ConnectionType: - title: ConnectionType + - balanceString + - confirmedBalanceString + - spendableBalanceString + AddressChain: + title: AddressChain + type: number + enum: + - 0 + - 1 + - 10 + - 11 + - 20 + - 21 + - 30 + - 31 + - 40 + - 41 + WalletFlag: + title: WalletFlag type: string enum: - - DVP - - WHITELIST - description: codec for valid connection statuses - ConnectionStatus: - title: ConnectionStatus + - isStaking + - lightning + - musigKp + - trackingInscriptions + - lockedAmount + - rbf + - coldWalletStaking + - tokenizationToken + - oneClickStaking + WalletSubType: + title: WalletSubType type: string enum: - - PENDING_DEACTIVATION - - PENDING_ACTIVATION - - ACTIVE - - INACTIVE - description: codec for valid connection statuses - V1DirectoryListingEntryWithConnectionsListResponse: - title: V1DirectoryListingEntryWithConnectionsListResponse + - distributedCustody + - pairedCustodial + - custodialHot + - custodialCold + WalletType: + title: WalletType + type: string + enum: + - backing + - cold + - custodial + - custodialPaired + - hot + - trading + MultiSigType: + title: MultiSigType + type: string + enum: + - onchain + - tss + - blsdkg + Condition: + title: Condition + oneOf: + - type: object + properties: {} + - $ref: '#/components/schemas/AddressListCondition' + - $ref: '#/components/schemas/AdvancedListCondition' + - $ref: '#/components/schemas/LimitRuleCondition' + - $ref: '#/components/schemas/TxUsdThresholdRuleCondition' + - $ref: '#/components/schemas/WebhookRuleCondition' + AdvancedListCondition: + title: AdvancedListCondition type: object properties: - listingEntries: + entries: type: array items: - allOf: - - type: object - properties: {} - - $ref: '#/components/schemas/V1ListingEntryWithListingResponse' - - $ref: '#/components/schemas/V1ConnectionWithOwnerAndTargetListResponse' + type: object + properties: + item: + type: string + description: Either a valid address or a wallet or enterprise id. Must be unique in this whitelist. + metaData: + type: object + additionalProperties: {} + description: Any data about this entry that is not used to determine when to enforce the policy + type: + allOf: + - $ref: '#/components/schemas/AdvancedListType' + description: the kind of resource a list rule entry refers to + verificationState: + type: string + enum: + - unverified + - verified + required: + - item + - type + description: Entries specifying which addresses/ wallets/ enterprises are on the whitelist required: - - listingEntries - V1ListingEntryWithConnectionsListResponse: - title: V1ListingEntryWithConnectionsListResponse + - entries + AddressListCondition: + title: AddressListCondition type: object properties: - listingEntries: + addresses: type: array items: - allOf: - - type: object - properties: {} - - $ref: '#/components/schemas/V1ListingEntryWithListingResponse' - - $ref: '#/components/schemas/V1ConnectionWithOwnerListResponse' + type: string + metaData: + type: object + additionalProperties: + type: object + additionalProperties: {} required: - - listingEntries - V1ConnectionWithOwnerListResponse: - title: V1ConnectionWithOwnerListResponse + - addresses + - metaData + WalletSubdocument: + title: WalletSubdocument + oneOf: + - $ref: '#/components/schemas/AdaWallet' + - $ref: '#/components/schemas/AlgorandWallet' + - $ref: '#/components/schemas/AtomWallet' + - $ref: '#/components/schemas/AvaxPWallet' + - $ref: '#/components/schemas/UtxoWallet' + - $ref: '#/components/schemas/CasperWallet' + - $ref: '#/components/schemas/DotWallet' + - $ref: '#/components/schemas/EosWallet' + - $ref: '#/components/schemas/EthereumWallet' + - $ref: '#/components/schemas/Ethereum2Wallet' + - $ref: '#/components/schemas/FiatWallet' + - $ref: '#/components/schemas/HederaWallet' + - $ref: '#/components/schemas/NearWallet' + - $ref: '#/components/schemas/Offchain' + - $ref: '#/components/schemas/SilvergateUSDWallet' + - $ref: '#/components/schemas/StacksWallet' + - $ref: '#/components/schemas/TestcoinWallet' + - $ref: '#/components/schemas/TonWallet' + - $ref: '#/components/schemas/TronWallet' + - $ref: '#/components/schemas/StellarWallet' + - $ref: '#/components/schemas/XRPWallet' + - $ref: '#/components/schemas/TezosWallet' + - $ref: '#/components/schemas/SolWallet' + - $ref: '#/components/schemas/LightningCoinWallet' + LightningCoinWallet: + title: Lightning Coin Wallet type: object properties: - connections: + keys: type: array items: - allOf: - - type: object - properties: - ownerListingEntry: - $ref: '#/components/schemas/V1ListingEntryWithListingResponse' - required: - - ownerListingEntry - - $ref: '#/components/schemas/V1ConnectionResponse' - required: - - connections - V1ListingUpdateResponse: - title: V1ListingUpdateResponse - type: object - properties: - id: - type: string - title: uuid - enterpriseId: + type: string + uri: type: string - minLength: 1 - description: + apiEndpoint: type: string - minLength: 1 - name: + nodeId: type: string - minLength: 1 - owner: + updateSignerIP: + type: boolean + signerIP: type: string - minLength: 1 - createdAt: + updateSignerTlsCert: + type: boolean + signerTlsCert: type: string - format: date-time - title: ISO Date String - updatedAt: + updateSignerMacaroon: + type: boolean + encryptedSignerMacaroon: type: string - format: date-time - title: ISO Date String - globalListing: - type: object - description: codec for global listing http response - properties: - createdAt: - type: string - format: date-time - title: ISO Date String - description: - type: string - minLength: 1 - enterpriseId: - type: string - minLength: 1 - id: - type: string - title: uuid - name: - type: string - minLength: 1 - owner: - type: string - minLength: 1 - updatedAt: - type: string - format: date-time - title: ISO Date String - required: - - createdAt - - enterpriseId - - id - - name - - owner - - updatedAt required: - - id - - name - - owner - - createdAt - - updatedAt - V1ConnectionListResponse: - title: V1ConnectionListResponse + - keys + SolWallet: + title: Sol Wallet type: object - description: codec for connection list http response properties: - connections: + pendingChainInitialization: + type: boolean + minimumFunding: + type: number + trustedTokens: type: array items: - type: object - description: codec for connection http response - properties: - id: - type: string - title: uuid - type: - $ref: '#/components/schemas/ConnectionType' - status: - $ref: '#/components/schemas/ConnectionStatus' - label: - type: string - minLength: 1 - description: - type: string - minLength: 1 - createdBy: - type: string - minLength: 1 - updatedBy: - type: string - minLength: 1 - createdAt: - type: string - format: date-time - title: ISO Date String - updatedAt: - type: string - format: date-time - title: ISO Date String - required: - - id - - type - - status - - label - - createdBy - - updatedBy - - createdAt - - updatedAt + allOf: + - type: object + properties: + state: + $ref: '#/components/schemas/TrustedTokenState' + - $ref: '#/components/schemas/Token' + rootAddress: + type: string + nonceAddress: + type: string + lastBlockHash: + type: string + lastChainIndex: {} + nonceExpiresAt: + type: string + format: date + title: Date String + nonceTxRequestId: + type: string required: - - connections - UpdatableConnectionStatus: - title: UpdatableConnectionStatus - type: string - enum: - - PENDING_DEACTIVATION - V1ErrorPayload: - title: V1ErrorPayload + - pendingChainInitialization + - minimumFunding + - trustedTokens + TezosWallet: + title: Tezos Wallet type: object properties: - error: + pendingChainInitialization: + type: boolean + creationFailure: + type: array + items: + type: string + deployedInBlock: + oneOf: + - type: number + - type: boolean + deployTxHash: + type: string + lastChainIndex: {} + baseAddress: + type: string + feeAddress: + type: string + safeModeActivated: + type: string + lowPriorityFeeAddress: + type: string + delegate: type: string required: - - error - BNSupportedCurrency: - title: BNSupportedCurrency - type: string - V1SupportedCurrencies: - title: V1SupportedCurrencies - type: object - additionalProperties: - type: array - items: - allOf: - - type: object - properties: {} - - $ref: '#/components/schemas/BNMetadata' - BNMetadata: - title: BNMetadata + - pendingChainInitialization + - creationFailure + XRPWallet: + title: XRP Wallet type: object properties: - partnerNames: + rootAddress: + type: string + pendingChainInitialization: + type: boolean + creationFailure: type: array items: type: string - minLength: 1 + trustedTokens: + type: array + items: + allOf: + - type: object + properties: + state: + $ref: '#/components/schemas/TrustedTokenState' + - $ref: '#/components/schemas/Token' required: - - partnerNames - V1EnterpriseSupportedCurrenciesResponse: - title: V1EnterpriseSupportedCurrenciesResponse + - rootAddress + - pendingChainInitialization + - creationFailure + StellarWallet: + title: Stellar Wallet type: object properties: - supportedCurrencies: - $ref: '#/components/schemas/V1SupportedCurrencies' - domain: + rootAddress: type: string - minLength: 1 - required: - - supportedCurrencies - - domain - NonNegativeBigAmount: - title: NonNegativeBigAmount - type: string - SettlementTransferStatus: - title: SettlementTransferStatus - type: string - enum: - - pending - - pending_onchain - - onchain_initiated - - onchain_failed - - completed - - failed - - rejected - V1ClientGetSettlementTransfersOkPayload: - title: V1ClientGetSettlementTransfersOkPayload - type: object - properties: - settlementTransfers: - $ref: '#/components/schemas/MaskedV1SettlementTransfersOutput' - required: - - settlementTransfers - MaskedV1SettlementTransfersOutput: - title: MaskedV1SettlementTransfersOutput - type: array - items: - type: object - properties: - sourceTradingAccountId: - type: string - minLength: 1 - sourceNetworkAccountId: - type: string - title: uuid - destinationTradingAccountId: - type: string - minLength: 1 - destinationNetworkAccountId: - type: string - title: uuid - currency: - type: string - minLength: 1 - settlementId: - type: string - title: uuid - quantity: - $ref: '#/components/schemas/NonNegativeBigAmount' - txIds: - type: array - items: - type: string - minLength: 1 - status: - $ref: '#/components/schemas/SettlementTransferStatus' - usdValue: - nullable: true - oneOf: - - type: string - format: number - - type: number - id: - type: string - title: uuid - createdAt: - type: string - format: date-time - title: ISO Date String - updatedAt: - type: string - format: date-time - title: ISO Date String - settlementStatus: - $ref: '#/components/schemas/SettlementStatuses' - settlementNotes: - type: string - minLength: 1 - sourceClientName: - type: string - minLength: 1 - destinationClientName: - type: string - minLength: 1 - sourceConnectionName: - type: string - minLength: 1 - destinationConnectionName: + pendingChainInitialization: + type: boolean + creationFailure: + type: array + items: type: string - minLength: 1 - required: - - currency - - settlementId - - quantity - - txIds - - status - - usdValue - - id - - createdAt - - updatedAt - - settlementStatus - SettlementStatuses: - title: SettlementStatuses - type: string - enum: - - failed - - completed - - pending - - rejected - V1PartnersOutput: - title: V1PartnersOutput - type: object - properties: - id: + lastMemoId: type: string - title: uuid - enterpriseId: + stellarUsername: type: string - minLength: 1 - trustOrg: + homeDomain: type: string - institutionId: + stellarAddress: type: string - institutionIdentifier: + trustedTokens: + type: array + items: + allOf: + - type: object + properties: + state: + $ref: '#/components/schemas/TrustedTokenState' + - $ref: '#/components/schemas/Token' + required: + - rootAddress + - pendingChainInitialization + - creationFailure + - lastMemoId + TronWallet: + title: Tron Wallet + type: object + properties: + rootAddress: type: string - name: + rootPub: type: string - minLength: 1 - connectionKeySchema: - $ref: '#/components/schemas/PartnerConnectionKeySchema' - createdAt: + pendingChainInitialization: + type: boolean + creationFailure: + type: array + items: + type: string + minimumFunding: + type: number + required: + - rootAddress + - rootPub + - pendingChainInitialization + - creationFailure + - minimumFunding + TonWallet: + title: Ton Wallet + type: object + properties: + rootAddress: type: string - format: date-time - title: ISO Date String - updatedAt: + memoId: type: string - format: date-time - title: ISO Date String - clientId: + lastMemoId: type: string - title: uuid - broker: - type: boolean - active: - type: boolean - settlementTransactionRouteId: + seqno: + type: number + lastChainIndex: + type: object + additionalProperties: + type: number + walletVersion: + type: number + required: + - rootAddress + - memoId + - lastMemoId + - seqno + TestcoinWallet: + title: Testcoin Wallet + type: object + properties: + lastChainIndex: + type: number + StacksWallet: + title: Stacks Wallet + type: object + properties: + baseAddress: type: string - publicKey: + feeAddress: type: string + lastNonce: + type: number + addressCount: + type: number + SilvergateUSDWallet: + title: Silvergate USD Wallet + type: object + properties: + backingBankAccountId: {} + backingSENBankAccountId: {} + lastUsedNonce: + type: number required: - - id - - enterpriseId - - trustOrg - - name - - connectionKeySchema - - createdAt - - updatedAt - - clientId - - broker - - active - PartnerConnectionKeySchema: - title: PartnerConnectionKeySchema - type: string - enum: - - token - - tokenAndSignature - - apiKeyAndSecret - - clearloop - V1PartnerIncompleteSettlementOrErrorPayload: - title: V1PartnerIncompleteSettlementOrErrorPayload - oneOf: - - $ref: '#/components/schemas/V1PartnerSettlementIncompletePayload' - - $ref: '#/components/schemas/V1ErrorPayload' - V1PartnerSettlementIncompletePayload: - title: V1PartnerSettlementIncompletePayload + - backingBankAccountId + - backingSENBankAccountId + - lastUsedNonce + Offchain: + title: Offchain type: object properties: - settlement: - oneOf: - - $ref: '#/components/schemas/V1PendingSettlementOutput' - - $ref: '#/components/schemas/V1FailedSettlementOutput' - - $ref: '#/components/schemas/V1RejectedSettlementOutput' + needsKeyReshareAfterPasswordReset: + type: boolean + pendingSystemInitialization: + type: boolean + description: If true, this wallet is waiting for the system to finish initializing. In this state, users cannot create addresses or initiate withdrawals. required: - - settlement - V1PendingSettlementOutput: - title: V1PendingSettlementOutput + - needsKeyReshareAfterPasswordReset + NearWallet: + title: Near Wallet type: object properties: - id: - type: string - title: uuid - partnerId: - type: string - title: uuid - externalId: + nonceAddress: type: string - minLength: 1 - status: + lastNonce: + type: number + addressCount: + type: number + pendingChainInitialization: + type: boolean + rootAddrss: type: string - enum: - - pending - settlementType: - $ref: '#/components/schemas/SettlementTypes' - reconciled: + lastChainIndex: + type: object + additionalProperties: + type: number + required: + - nonceAddress + - lastNonce + - addressCount + - pendingChainInitialization + HederaWallet: + title: Hedera Wallet + type: object + properties: + addressCount: + type: number + pendingChainInitialization: type: boolean - initiatedBy: + creationFailure: + type: array + items: + type: string + trustedTokens: + type: array + items: + allOf: + - type: object + properties: + state: + $ref: '#/components/schemas/TrustedTokenState' + - $ref: '#/components/schemas/Token' + deployTxHash: type: string - minLength: 1 - notes: + baseAddress: type: string - minLength: 1 - createdAt: + confirmedTransactionId: type: string - format: date-time - title: ISO Date String - updatedAt: + required: + - addressCount + - pendingChainInitialization + - creationFailure + - trustedTokens + FiatWallet: + title: Fiat Wallet + type: object + properties: + backingBankAccountId: {} + backingSENBankAccountId: {} + lastUsedNonce: + type: number + required: + - backingBankAccountId + - backingSENBankAccountId + - lastUsedNonce + Ethereum2Wallet: + title: Ethereum2 Wallet + type: object + properties: + pendingChainInitialization: + type: boolean + baseAddress: type: string - format: date-time - title: ISO Date String - rtId: + feeAddress: type: string - lossSLAAlertSent: - type: boolean - gainSLAAlertSent: - type: boolean required: - - id - - partnerId - - externalId - - status - - settlementType - - reconciled - - initiatedBy - - createdAt - - updatedAt - - lossSLAAlertSent - - gainSLAAlertSent - V1FailedSettlementOutput: - title: V1FailedSettlementOutput + - pendingChainInitialization + EthereumWallet: + title: Ethereum Wallet type: object properties: - id: + pendingChainInitialization: + type: boolean + creationFailure: + type: array + items: + type: string + gasPriceTier: type: string - title: uuid - partnerId: + tokenFlushThresholds: + type: object + additionalProperties: + oneOf: + - type: string + - type: number + walletVersion: + type: number + pendingDeployment: + type: boolean + deployForwardersManually: + type: boolean + flushForwardersManually: + type: boolean + enableMMI: + type: boolean + enableNFT: + type: boolean + deployedInBlock: + oneOf: + - type: number + - type: boolean + deployTxHash: type: string - title: uuid - externalId: + lastChainIndex: {} + baseAddress: type: string - minLength: 1 - reason: + feeAddress: type: string - minLength: 1 - status: + nonce: type: string - enum: - - failed - settlementType: - $ref: '#/components/schemas/SettlementTypes' - reconciled: - type: boolean - initiatedBy: + token: type: string - minLength: 1 - notes: + pendingEcdsaTssInitialization: + type: boolean + safeModeActivated: type: string - minLength: 1 - createdAt: + lowPriorityFeeAddress: type: string - format: date-time - title: ISO Date String - updatedAt: + salt: type: string - format: date-time - title: ISO Date String - rtId: + required: + - pendingChainInitialization + - creationFailure + - gasPriceTier + - tokenFlushThresholds + - walletVersion + - pendingDeployment + - deployForwardersManually + - flushForwardersManually + - enableMMI + - enableNFT + EosWallet: + title: Eos Wallet + type: object + properties: + rootAddress: type: string - lossSLAAlertSent: - type: boolean - gainSLAAlertSent: + pendingChainInitialization: type: boolean + creationFailure: + type: array + items: + type: string + lastMemoId: + type: string required: - - id - - partnerId - - externalId - - reason - - status - - settlementType - - reconciled - - initiatedBy - - createdAt - - updatedAt - - lossSLAAlertSent - - gainSLAAlertSent - V1RejectedSettlementOutput: - title: V1RejectedSettlementOutput + - rootAddress + - pendingChainInitialization + - creationFailure + - lastMemoId + DotWallet: + title: Dot Wallet type: object properties: - id: - type: string - title: uuid - partnerId: + rootAddress: type: string - title: uuid - externalId: + pendingChainInitialization: + type: boolean + nonceAddress: type: string - minLength: 1 - reason: + required: + - rootAddress + - pendingChainInitialization + CasperWallet: + title: Casper Wallet + type: object + properties: + accountHash: type: string - minLength: 1 - status: + creationFailure: + type: array + items: + type: string + lastTransferId: type: string - enum: - - rejected - settlementType: - $ref: '#/components/schemas/SettlementTypes' - reconciled: + pendingChainInitialization: type: boolean - initiatedBy: - type: string - minLength: 1 - notes: - type: string - minLength: 1 - createdAt: - type: string - format: date-time - title: ISO Date String - updatedAt: + rootAddress: type: string - format: date-time - title: ISO Date String - finalizedAt: + required: + - accountHash + - creationFailure + - lastTransferId + - pendingChainInitialization + - rootAddress + UtxoWallet: + title: Utxo Wallet + type: object + properties: + customChangeWalletId: type: string - format: date-time - title: ISO Date String - rtId: + customChangeAddressType: type: string - lossSLAAlertSent: - type: boolean - gainSLAAlertSent: - type: boolean - required: - - id - - partnerId - - externalId - - reason - - status - - settlementType - - reconciled - - initiatedBy - - createdAt - - updatedAt - - finalizedAt - - lossSLAAlertSent - - gainSLAAlertSent - SettlementTypes: - title: SettlementTypes - type: string - enum: - - onchain - - offchain - V1PartnerSettlementOkPayload: - title: V1PartnerSettlementOkPayload + sendQueueInferredScriptTypes: + type: array + items: + type: string + AvaxPWallet: + title: AvaxP Wallet type: object properties: - settlement: - $ref: '#/components/schemas/V1CompleteSettlementOutput' + unlockAddresses: + type: array + items: + type: string + threshold: + type: number required: - - settlement - V1CompleteSettlementOutput: - title: V1CompleteSettlementOutput + - unlockAddresses + - threshold + AtomWallet: + title: Atom Wallet type: object properties: - id: - type: string - title: uuid - partnerId: - type: string - title: uuid - externalId: + rootAddress: type: string - minLength: 1 - status: + lastMemoId: type: string - enum: - - completed - settlementType: - $ref: '#/components/schemas/SettlementTypes' - reconciled: + lastChainIndex: {} + pendingEcdsaTssInitialization: type: boolean - initiatedBy: - type: string - minLength: 1 - notes: - type: string - minLength: 1 - createdAt: - type: string - format: date-time - title: ISO Date String - updatedAt: + required: + - rootAddress + - lastMemoId + AlgorandWallet: + title: Algorand Wallet + type: object + properties: + addressVersion: + type: number + rootAddress: type: string - format: date-time - title: ISO Date String - finalizedAt: + trustedTokens: + type: array + items: + allOf: + - type: object + properties: + state: + $ref: '#/components/schemas/TrustedTokenState' + - $ref: '#/components/schemas/Token' + required: + - addressVersion + - rootAddress + AdaWallet: + title: Ada Wallet + type: object + properties: + rootAddress: type: string - format: date-time - title: ISO Date String - rtId: + addressCount: type: string - lossSLAAlertSent: - type: boolean - gainSLAAlertSent: + pendingChainInitialization: type: boolean - required: - - id - - partnerId - - externalId - - status - - settlementType - - reconciled - - initiatedBy - - createdAt - - updatedAt - - finalizedAt - - lossSLAAlertSent - - gainSLAAlertSent - SettlementAmountsRecord: - title: SettlementAmountsRecord - oneOf: - - $ref: '#/components/schemas/PartySettlementAmountsRecord' - - $ref: '#/components/schemas/CounterpartyPartySettlementAmountsRecord' - PartySettlementAmountsRecord: - title: PartySettlementAmountsRecord - type: object - additionalProperties: - type: object - additionalProperties: + rewardAddress: type: string - description: Record> - description: Record> For exchange-style settlements, where the exchange is always the source and client owned connections are the destination. - CounterpartyPartySettlementAmountsRecord: - title: CounterpartyPartySettlementAmountsRecord - type: object - additionalProperties: - type: object - additionalProperties: + lastChainIndex: type: object additionalProperties: - type: string - description: Record> - description: Record> For exchange-style settlements, where the exchange is always the source and client owned connections are the destination. - description: Record>> For broker-style settlements, where the source and destination are both client owned connections. - V1PendingSettlementPayload: - title: V1PendingSettlementPayload - type: object - properties: - settlement: - $ref: '#/components/schemas/V1PendingSettlementOutput' - required: - - settlement - V1SettlementPayload: - title: V1SettlementPayload - type: object - properties: - settlement: - $ref: '#/components/schemas/V1SettlementOutput' + type: number required: - - settlement - V1SettlementOutput: - title: V1SettlementOutput - oneOf: - - $ref: '#/components/schemas/V1PendingSettlementOutput' - - $ref: '#/components/schemas/V1FailedSettlementOutput' - - $ref: '#/components/schemas/V1CompleteSettlementOutput' - - $ref: '#/components/schemas/V1RejectedSettlementOutput' - V1ListSettlementsOkPayload: - title: V1ListSettlementsOkPayload + - rootAddress + - addressCount + - pendingChainInitialization + - rewardAddress + CoinNonEmptyString: + title: CoinNonEmptyString + type: string + description: A cryptocurrency symbol or token ticker symbol + example: btc + minLength: 1 + EnterprisesResponse: + title: EnterprisesResponse type: object properties: - settlements: + enterprises: type: array items: oneOf: - - $ref: '#/components/schemas/V1PendingSettlementOutput' - - $ref: '#/components/schemas/V1FailedSettlementOutput' - - $ref: '#/components/schemas/V1CompleteSettlementOutput' - - $ref: '#/components/schemas/V1RejectedSettlementOutput' + - $ref: '#/components/schemas/Enterprise' + - $ref: '#/components/schemas/EnterpriseStub' required: - - settlements - V1GetSettlementOkPayload: - title: V1GetSettlementOkPayload + - enterprises + EnterpriseStub: + title: Enterprise Stub type: object properties: - settlement: - $ref: '#/components/schemas/V1SettlementOutput' - settlementTransfers: - type: array - items: - type: object - properties: - id: - type: string - title: uuid - createdAt: - type: string - format: date-time - title: ISO Date String - updatedAt: - type: string - format: date-time - title: ISO Date String - currency: - type: string - minLength: 1 - settlementId: - type: string - title: uuid - quantity: - $ref: '#/components/schemas/NonNegativeBigAmount' - txIds: - type: array - items: - type: string - minLength: 1 - status: - $ref: '#/components/schemas/SettlementTransferStatus' - sourceTradingAccountId: - type: string - minLength: 1 - sourceNetworkAccountId: - type: string - title: uuid - destinationTradingAccountId: - type: string - minLength: 1 - destinationNetworkAccountId: - type: string - title: uuid - required: - - id - - createdAt - - updatedAt - - currency - - settlementId - - quantity - - txIds - - status - - sourceTradingAccountId - - destinationTradingAccountId - - destinationNetworkAccountId + id: + $ref: '#/components/schemas/EnterpriseIdString' + name: + type: string + example: Small Company + minLength: 1 + pricingPlan: + type: string + ethFeeAddress: + type: string + description: The eth fee address used to pay for network transaction fees of this enterprise required: - - settlement - - settlementTransfers - V1ClientGetSettlementOkPayload: - title: V1ClientGetSettlementOkPayload + - id + - name + EnterpriseIdString: + title: EnterpriseIdString + type: string + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + OAuthProvider: + title: OAuthProvider + type: string + enum: + - msEntra + ReferralCodeString: + title: ReferralCodeString + type: string + description: An Enterprise Referral Code + AggregatorSourceType: + title: AggregatorSourceType + type: string + enum: + - bitcoinBuilder + - ftx + - ftx-retail + - ftx-bahamas + - ftx-bahamas-retail + - sofi + - bitcoinWell + - lucid + VideoIdUserState: + title: VideoIdUserState + type: string + enum: + - awaitingApproval + - awaitingAcceptance + - pendingSchedule + - pendingInitialId + - underReview + - approved + - rejected + - archived + DistributedCustody: + title: DistributedCustody type: object properties: - settlement: - $ref: '#/components/schemas/V1SettlementOutput' - settlementTransfers: - $ref: '#/components/schemas/MaskedV1SettlementTransfersOutput' + signingBitgoOrg: + $ref: '#/components/schemas/BitgoOrg' required: - - settlement - - settlementTransfers - V1PartnersPostOkPayload: - title: V1PartnersPostOkPayload + - signingBitgoOrg + EnterpriseInternal: + title: EnterpriseInternal type: object properties: - partner: - $ref: '#/components/schemas/V1PartnersOutput' + migratedToNewPolicyService: + nullable: true + type: boolean + description: Whether the enterprise has been migrated to the new policy service + policiesLocked: + type: boolean required: - - partner - V1PartnersGetOkPayload: - title: V1PartnersGetOkPayload + - migratedToNewPolicyService + - policiesLocked + FlattenedPricingType: + title: FlattenedPricingType + allOf: + - type: object + properties: + name: + $ref: '#/components/schemas/PricingTypeName' + required: + - name + - $ref: '#/components/schemas/ActiveDateRange' + ActiveDateRange: + title: ActiveDateRange type: object properties: - partners: - type: array - items: - type: object - properties: - id: - type: string - title: uuid - name: - type: string - minLength: 1 - institutionId: - type: string - institutionIdentifier: - type: string - connectionKeySchema: - $ref: '#/components/schemas/PartnerConnectionKeySchema' - active: - type: boolean - settlementTransactionRouteId: - type: string - publicKey: - type: string - enterpriseId: - type: string - stablePartner: - type: boolean - required: - - id - - name - - connectionKeySchema - - active - - stablePartner + startDate: + oneOf: + - type: string + format: date-time + title: ISO Date String + - type: string + format: date + title: Date String + description: ISO 8601 Datetime (example at https://datatracker.ietf.org/doc/html/rfc3339#section-5.8). If present, will use as the start date of a new auditable item. If not present, will use the current date to create a new auditable item. Start date is inclusive, i.e. we will start billing/functionality at this instant and afterwards. + startReason: + type: string + description: An optional note describing the reason the auditable item was added/created. + id: + type: string + description: Unique identifier for the date range. + endDate: + nullable: true + oneOf: + - type: string + format: date-time + title: ISO Date String + - type: string + format: date + title: Date String + description: ISO 8601 Datetime (example at https://datatracker.ietf.org/doc/html/rfc3339#section-5.8). If present, will use as the end date of a new auditable item. If not present, we will set the endDate to null, and we will assume an indefinite range. endDate is exclusive, i.e. we will end billing/functionality up to but not at this particular time. + endReason: + type: string + description: An optional note describing the reason the auditable item was ended. required: - - partners - V1ExtDepositsPayload: - title: V1ExtDepositsPayload + - startDate + - startReason + PricingTypeName: + title: PricingTypeName + type: string + enum: + - starter + - growth + - employee + - FTX Retail + - FTX Institutional + AvailableUI: + title: AvailableUI + type: string + enum: + - bg23 + - '' + OrganizationIdString: + title: OrganizationIdString + type: string + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + BusinessModel: + title: BusinessModel + type: string + enum: + - bitgoAsAService + AccountType: + title: AccountType + type: string + enum: + - individual + - entity + OnboardingAgreement: + title: OnboardingAgreement type: object + description: For users doing self-service onboarding, they just need to click a checkbox to agree to the terms. we will track who & when that happened on a feature-by-feature basis. properties: - deposits: - $ref: '#/components/schemas/ExtDepositsResp' + user: + type: string + date: + type: string + format: date-time + title: ISO Date String + ip: + type: string required: - - deposits - ExtDepositsResp: - title: ExtDepositsResp - type: array - items: - type: object - properties: - onChainTxId: - type: string - minLength: 1 - transferId: - type: string - currency: - type: string - minLength: 1 - quantity: - type: number - id: - type: string - title: uuid - settlementId: - type: string - title: uuid - createdAt: - type: string - format: date-time - title: ISO Date String - updatedAt: - type: string - format: date-time - title: ISO Date String - externalSettlementId: - type: string - minLength: 1 - required: - - onChainTxId - - currency - - id - - settlementId - - createdAt - - updatedAt - - externalSettlementId - V1ReservedDeallocationOrErrorPayload: - title: V1ReservedDeallocationOrErrorPayload - oneOf: - - $ref: '#/components/schemas/V1ErrorPayload' - - $ref: '#/components/schemas/V1ReservedRetriableDeallocationOutput' - V1ReservedRetriableDeallocationOutput: - title: V1ReservedRetriableDeallocationOutput + - user + - date + LegalPersonNameIdentifierType: + title: LegalPersonNameIdentifierType + type: string + enum: + - LEGL + KycState: + title: KycState + type: string + enum: + - unverified + - approved + - rejected + - pending + GetEnterpriseResponse: + title: GetEnterpriseResponse + allOf: + - type: object + properties: + wallets: + type: array + items: + type: string + minLength: 1 + tags: + type: array + items: + type: object + properties: + name: + type: string + id: + type: string + required: + - name + - id + required: + - wallets + - tags + - $ref: '#/components/schemas/Enterprise' + InvalidOrganizationId: + title: Invalid Organization ID + allOf: + - type: object + properties: + name: + type: string + enum: + - InvalidOrganizationId + required: + - name + - $ref: '#/components/schemas/InvalidId' + EnterpriseUserRole: + title: EnterpriseUserRole + type: string + enum: + - admin + - member + GetTransactionRequestsResponse: + title: GetTransactionRequestsResponse type: object properties: - deallocation: - $ref: '#/components/schemas/V1ReservedRetriableAllocationOutput' + nextBatchPrevId: + type: string + description: When a result set is truncated, this field returns the id of the last object in the previous batch. To get the next batch of results, pass this value via the "prevId" query parameter. + format: uuid + txRequests: + type: array + items: + oneOf: + - $ref: '#/components/schemas/TransactionRequestLite2' + - $ref: '#/components/schemas/TransactionRequestFull' required: - - deallocation - V1ReservedRetriableAllocationOutput: - title: V1ReservedRetriableAllocationOutput + - txRequests + AccessTokenResponse: + title: AccessTokenResponse type: object properties: id: type: string - title: uuid - amount: - $ref: '#/components/schemas/PositiveAllocationAmount' - connectionId: - type: string - title: uuid - clientExternalId: - type: string - minLength: 1 - partnerExternalId: - type: string - minLength: 1 - initiatedBy: - type: string - minLength: 1 - notes: + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + isExtensible: + type: boolean + bitgoAdminPermissions: + type: array + items: + type: string + client: type: string - minLength: 1 - createdAt: + created: type: string format: date-time title: ISO Date String - updatedAt: + enterprise: + type: string + expires: type: string format: date-time title: ISO Date String - retriable: - type: boolean - enum: - - true - reason: + extensionAddress: type: string - minLength: 1 - status: + ip: type: string - enum: - - reserved - required: - - id - - amount - - connectionId - - clientExternalId - - initiatedBy - - createdAt - - updatedAt - - retriable - - reason - - status - PositiveAllocationAmount: - title: PositiveAllocationAmount - oneOf: - - $ref: '#/components/schemas/PositiveCurrencyAmount' - - $ref: '#/components/schemas/PositiveBigNumberCurrencyAmount' - PositiveCurrencyAmount: - title: PositiveCurrencyAmount - type: object - properties: - currency: + description: IP address of the client that requested this access token + example: 127.0.0.1 + format: ipv4 + ipRestrict: + type: array + items: + type: string + description: IP addresses of clients that are allowed to use this token + label: type: string - minLength: 1 - quantity: + origin: type: string - required: - - currency - - quantity - PositiveBigNumberCurrencyAmount: - title: PositiveBigNumberCurrencyAmount - type: object - properties: - currency: + description: BitGo environment that issued this token + example: test.bitgo.com + token: type: string - minLength: 1 - quantity: + scope: + type: array + example: + - crypto_compare + - user_manage + - openid + - profile + - wallet_create + - wallet_manage_all + - wallet_approve_all + - wallet_spend_all + - wallet_edit_all + - wallet_view_all + items: + type: string + description: Session permissions + unlock: + allOf: + - type: object + properties: + spendingLimits: + type: object + additionalProperties: + type: object + properties: + txCount: + type: number + description: The transaction count limit for the coin + txValue: + type: number + description: The transaction value limit for the coin + txValueLimit: + type: number + description: The maximum transaction value limit for the coin + allErc20TokensLimit: + $ref: '#/components/schemas/AllErc20TokenLimit' + - $ref: '#/components/schemas/Unlock' + user: type: string + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ required: - - currency - - quantity - V1DeallocationReleasedWithErrorPostPayload: - title: V1DeallocationReleasedWithErrorPostPayload - allOf: - - type: object - properties: {} - - $ref: '#/components/schemas/V1DeallocationReleasedPayload' - - $ref: '#/components/schemas/V1ErrorPayload' - V1DeallocationReleasedPayload: - title: V1DeallocationReleasedPayload + - id + - isExtensible + AllErc20TokenLimit: + title: AllErc20TokenLimit type: object properties: - deallocation: - $ref: '#/components/schemas/V1ReleasedAllocation' + enabled: + type: boolean + description: Indicates if the limit is enabled for all ERC20 tokens + txCount: + type: number + description: The transaction count limit for all ERC20 tokens + txValue: + type: string + description: The transaction value limit for all ERC20 tokens + txValueLimitInSmallUnits: + type: string + description: The transaction value limit in small units for all ERC20 tokens + maxLimit: + type: boolean + description: Indicates if the maximum limit is enabled required: - - deallocation - V1ReleasedAllocation: - title: V1ReleasedAllocation + - enabled + - txCount + - txValue + OAuthAccessToken: + title: OAuthAccessToken type: object properties: - id: - type: string - title: uuid - amount: - $ref: '#/components/schemas/PositiveAllocationAmount' - connectionId: - type: string - title: uuid - clientExternalId: - type: string - minLength: 1 - partnerExternalId: - type: string - minLength: 1 - initiatedBy: - type: string - minLength: 1 - notes: + bitgoAdminPermissions: + type: array + items: + type: string + description: The BitGo admin permissions associated with the access token + client: type: string - minLength: 1 - createdAt: + description: The client associated with the access token + created: type: string + description: The creation date of the access token format: date-time title: ISO Date String - updatedAt: + enterprise: type: string + description: The enterprise associated with the access token + expires: + type: string + description: The expiration date of the access token format: date-time title: ISO Date String - retriable: + extensionAddress: + type: string + description: The extension address associated with the access token + id: + type: string + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + internal: type: boolean - enum: - - false - status: + ip: type: string - enum: - - released - reason: + description: IP address of the client that requested this access token + example: 127.0.0.1 + format: ipv4 + ipRestrict: + type: array + items: + type: string + description: IP addresses of clients that are allowed to use this token + isExtensible: + type: boolean + description: Indicates if the access token is extensible + label: type: string - minLength: 1 + description: The label associated with the access token + organizations: + type: array + items: + type: string + description: The organizations associated with the access token + origin: + type: string + description: BitGo environment that issued this token + example: test.bitgo.com + token: + type: string + description: The token value + scope: + type: array + example: + - crypto_compare + - user_manage + - openid + - profile + - wallet_create + - wallet_manage_all + - wallet_approve_all + - wallet_spend_all + - wallet_edit_all + - wallet_view_all + items: + type: string + description: Session permissions + unlock: + allOf: + - type: object + properties: + spendingLimits: + type: object + additionalProperties: + $ref: '#/components/schemas/PerCoinLimit' + - $ref: '#/components/schemas/Unlock' + description: The unlock object, returned if this session is currently unlocked + user: + type: string + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ required: - id - - amount - - connectionId - - clientExternalId - - initiatedBy - - createdAt - - updatedAt - - retriable - - status - - reason - V1DeallocationClearedPostPayload: - title: V1DeallocationClearedPostPayload + - isExtensible + PerCoinLimit: + title: PerCoinLimit type: object properties: - deallocation: - $ref: '#/components/schemas/V1ClearedAllocation' - required: - - deallocation - V1ReservedDeallocationsPostPayload: - title: V1ReservedDeallocationsPostPayload + txCount: + type: number + description: The transaction count limit for the coin + txValue: + type: number + description: The transaction value limit for the coin + txValueLimit: + type: number + description: The maximum transaction value limit for the coin + V1ErrorResponse: + title: V1ErrorResponse type: object properties: - deallocation: - $ref: '#/components/schemas/V1ReservedAllocationOutput' + errorName: + type: string + error: + type: string required: - - deallocation - V1ReservedAllocationOutput: - title: V1ReservedAllocationOutput - oneOf: - - $ref: '#/components/schemas/V1ReservedRetriableAllocationOutput' - - $ref: '#/components/schemas/V1ReservedNonRetriableAllocationOutput' - V1ReservedNonRetriableAllocationOutput: - title: V1ReservedNonRetriableAllocationOutput + - errorName + - error + V1ListingEntryWithListingResponse: + title: V1ListingEntryWithListingResponse + allOf: + - type: object + properties: + listing: + $ref: '#/components/schemas/V1ListingResponse' + required: + - listing + - $ref: '#/components/schemas/V1ListingEntryResponse' + V1ListingEntryResponse: + title: V1ListingEntryResponse type: object properties: id: type: string title: uuid - amount: - $ref: '#/components/schemas/PositiveAllocationAmount' - connectionId: - type: string - title: uuid - clientExternalId: - type: string - minLength: 1 - partnerExternalId: + walletId: type: string minLength: 1 - initiatedBy: + coin: type: string minLength: 1 - notes: + type: + $ref: '#/components/schemas/EntryType' + description: type: string minLength: 1 + discoverable: + type: boolean + featured: + type: boolean createdAt: type: string format: date-time @@ -34227,116 +34766,69 @@ components: type: string format: date-time title: ISO Date String - retriable: - type: boolean - enum: - - false - reason: - type: string - minLength: 1 - status: - type: string - enum: - - reserved required: - id - - amount - - connectionId - - clientExternalId - - initiatedBy + - walletId + - coin + - type + - discoverable + - featured - createdAt - updatedAt - - retriable - - reason - - status - V1ClearedAllocation: - title: V1ClearedAllocation + V1ListingResponse: + title: V1ListingResponse type: object + description: codec for listing http response properties: id: type: string title: uuid - amount: - $ref: '#/components/schemas/PositiveAllocationAmount' - connectionId: - type: string - title: uuid - clientExternalId: - type: string - minLength: 1 - partnerExternalId: - type: string - minLength: 1 - initiatedBy: + name: type: string minLength: 1 - notes: + description: type: string minLength: 1 - createdAt: - type: string - format: date-time - title: ISO Date String - updatedAt: - type: string - format: date-time - title: ISO Date String - retriable: + editable: type: boolean - enum: - - false - status: - type: string - enum: - - cleared + description: True, if the name is editable. required: - id - - amount - - connectionId - - clientExternalId - - initiatedBy - - createdAt - - updatedAt - - retriable - - status - PositiveBNCurrencyAmount: - title: PositiveBNCurrencyAmount - type: object - properties: - currency: - $ref: '#/components/schemas/BNSupportedCurrency' - quantity: - type: string - required: - - currency - - quantity - V1ConnectionPayload: - title: V1ConnectionPayload - type: object - properties: - connection: - $ref: '#/components/schemas/V1ConnectionOutput' - required: - - connection - V1ConnectionOutput: - title: V1ConnectionOutput + - name + - editable + EntryType: + title: EntryType + type: string + enum: + - GO_ACCOUNT + description: codec for entry type + V1GlobalListingWithListingEntries: + title: V1GlobalListingWithListingEntries + allOf: + - type: object + properties: {} + - $ref: '#/components/schemas/V1GlobalListingResponse' + - $ref: '#/components/schemas/V1ListingEntryListResponse' + V1GlobalListingResponse: + title: V1GlobalListingResponse type: object + description: codec for global listing http response properties: id: type: string title: uuid - name: + enterpriseId: type: string minLength: 1 - clientId: + description: type: string - title: uuid - partnerId: + minLength: 1 + name: type: string - title: uuid - networkAccountId: + minLength: 1 + owner: type: string - title: uuid + minLength: 1 createdAt: type: string format: date-time @@ -34345,126 +34837,19 @@ components: type: string format: date-time title: ISO Date String - active: - type: boolean - proof: - type: string - minLength: 1 - nonce: - type: string - minLength: 1 - partnersConnectionId: - nullable: true - type: string - minLength: 1 - partnersClientId: - nullable: true - type: string - minLength: 1 - initialized: - type: boolean required: - id + - enterpriseId - name - - clientId - - partnerId - - networkAccountId + - owner - createdAt - updatedAt - - active - - proof - - nonce - - partnersConnectionId - - partnersClientId - - initialized - ConnectionKey: - title: ConnectionKey - oneOf: - - $ref: '#/components/schemas/TokenConnectionKey' - - $ref: '#/components/schemas/TokenAndSignatureConnectionKey' - - $ref: '#/components/schemas/ApiKeyAndSecretConnectionKey' - - $ref: '#/components/schemas/ClearLoopConnectionKey' - TokenConnectionKey: - title: TokenConnectionKey - type: object - properties: - schema: - type: string - enum: - - token - connectionToken: - type: string - minLength: 1 - required: - - schema - - connectionToken - TokenAndSignatureConnectionKey: - title: TokenAndSignatureConnectionKey - type: object - properties: - schema: - type: string - enum: - - tokenAndSignature - connectionToken: - type: string - minLength: 1 - signature: - type: string - minLength: 1 - required: - - schema - - connectionToken - - signature - ApiKeyAndSecretConnectionKey: - title: ApiKeyAndSecretConnectionKey - type: object - properties: - schema: - type: string - enum: - - apiKeyAndSecret - apiKey: - type: string - minLength: 1 - apiSecret: - type: string - minLength: 1 - required: - - schema - - apiKey - - apiSecret - ClearLoopConnectionKey: - title: ClearLoopConnectionKey - type: object - properties: - schema: - type: string - enum: - - clearloop - apiKey: - type: string - minLength: 1 - apiSecret: - type: string - minLength: 1 - clientAccountId: - type: string - minLength: 1 - companyRegistrationNumber: - type: string - minLength: 1 - required: - - schema - - apiKey - - apiSecret - - clientAccountId - - companyRegistrationNumber - V1ConnectionsGetOkPayload: - title: V1ConnectionsGetOkPayload + V1ListingEntryListResponse: + title: V1ListingEntryListResponse type: object + description: codec for listing entry list http response properties: - connections: + listingEntries: type: array items: type: object @@ -34472,18 +34857,21 @@ components: id: type: string title: uuid - name: + walletId: type: string minLength: 1 - clientId: - type: string - title: uuid - partnerId: + coin: type: string - title: uuid - networkAccountId: + minLength: 1 + type: + $ref: '#/components/schemas/EntryType' + description: type: string - title: uuid + minLength: 1 + discoverable: + type: boolean + featured: + type: boolean createdAt: type: string format: date-time @@ -34492,61 +34880,59 @@ components: type: string format: date-time title: ISO Date String - active: - type: boolean - proof: - type: string - minLength: 1 - nonce: - type: string - minLength: 1 - partnersConnectionId: - nullable: true - type: string - minLength: 1 - partnersClientId: - nullable: true - type: string - minLength: 1 - initialized: - type: boolean required: - id - - name - - clientId - - partnerId - - networkAccountId + - walletId + - coin + - type + - discoverable + - featured - createdAt - updatedAt - - active - - proof - - nonce - - partnersConnectionId - - partnersClientId - - initialized required: - - connections - V1ClientsPostOkPayload: - title: V1ClientsPostOkPayload + - listingEntries + V1ConnectionWithOwnerAndTargetListResponse: + title: V1ConnectionWithOwnerAndTargetListResponse type: object properties: - client: - $ref: '#/components/schemas/V1ClientsOutput' + connections: + type: array + items: + allOf: + - type: object + properties: + ownerListingEntry: + $ref: '#/components/schemas/V1ListingEntryWithListingResponse' + targetListingEntry: + $ref: '#/components/schemas/V1ListingEntryWithListingResponse' + required: + - ownerListingEntry + - targetListingEntry + - $ref: '#/components/schemas/V1ConnectionResponse' required: - - client - V1ClientsOutput: - title: V1ClientsOutput + - connections + V1ConnectionResponse: + title: V1ConnectionResponse type: object + description: codec for connection http response properties: id: type: string title: uuid - enterpriseId: + type: + $ref: '#/components/schemas/ConnectionType' + status: + $ref: '#/components/schemas/ConnectionStatus' + label: type: string minLength: 1 - trustOrg: + description: type: string - walletId: + minLength: 1 + createdBy: + type: string + minLength: 1 + updatedBy: type: string minLength: 1 createdAt: @@ -34557,130 +34943,93 @@ components: type: string format: date-time title: ISO Date String - balanceAlertLastSent: - type: string required: - id - - enterpriseId - - trustOrg - - walletId + - type + - status + - label + - createdBy + - updatedBy - createdAt - updatedAt - AccountBalanceRecord: - title: AccountBalanceRecord - type: object - additionalProperties: - type: object - properties: - available: - type: string - held: - type: string - required: - - available - - held - V1ClientBalancesGetPayload: - title: V1ClientBalancesGetPayload + ConnectionType: + title: ConnectionType + type: string + enum: + - DVP + - WHITELIST + description: codec for valid connection statuses + ConnectionStatus: + title: ConnectionStatus + type: string + enum: + - PENDING_DEACTIVATION + - PENDING_ACTIVATION + - ACTIVE + - INACTIVE + description: codec for valid connection statuses + V1DirectoryListingEntryWithConnectionsListResponse: + title: V1DirectoryListingEntryWithConnectionsListResponse type: object properties: - clientId: - type: string - title: uuid - balances: - $ref: '#/components/schemas/AccountBalanceRecord' - networkBalances: - $ref: '#/components/schemas/NetworkAccountBalanceRecordForClient' + listingEntries: + type: array + items: + allOf: + - type: object + properties: {} + - $ref: '#/components/schemas/V1ListingEntryWithListingResponse' + - $ref: '#/components/schemas/V1ConnectionWithOwnerAndTargetListResponse' required: - - clientId - - balances - - networkBalances - NetworkAccountBalanceRecordForClient: - title: NetworkAccountBalanceRecordForClient - type: object - additionalProperties: - type: object - properties: - partnerId: - type: string - title: uuid - partnersConnectionId: - type: string - minLength: 1 - name: - type: string - minLength: 1 - balances: - $ref: '#/components/schemas/AccountBalanceRecord' - partnerInstitutionIdentifier: - type: string - minLength: 1 - required: - - partnerId - - partnersConnectionId - - name - - balances - V1PartnerBalancesGetPayload: - title: V1PartnerBalancesGetPayload + - listingEntries + V1ListingEntryWithConnectionsListResponse: + title: V1ListingEntryWithConnectionsListResponse type: object properties: - networkBalances: - $ref: '#/components/schemas/NetworkAccountBalanceRecordForPartner' - balances: - $ref: '#/components/schemas/AccountBalanceRecord' + listingEntries: + type: array + items: + allOf: + - type: object + properties: {} + - $ref: '#/components/schemas/V1ListingEntryWithListingResponse' + - $ref: '#/components/schemas/V1ConnectionWithOwnerListResponse' required: - - networkBalances - NetworkAccountBalanceRecordForPartner: - title: NetworkAccountBalanceRecordForPartner - type: object - additionalProperties: - type: object - properties: - clientId: - type: string - title: uuid - partnerId: - type: string - title: uuid - partnersConnectionId: - type: string - minLength: 1 - balances: - $ref: '#/components/schemas/AccountBalanceRecord' - required: - - clientId - - partnerId - - partnersConnectionId - - balances - V1AllocationGetPayload: - title: V1AllocationGetPayload + - listingEntries + V1ConnectionWithOwnerListResponse: + title: V1ConnectionWithOwnerListResponse type: object properties: - allocation: - $ref: '#/components/schemas/V1AllocationGetOutput' + connections: + type: array + items: + allOf: + - type: object + properties: + ownerListingEntry: + $ref: '#/components/schemas/V1ListingEntryWithListingResponse' + required: + - ownerListingEntry + - $ref: '#/components/schemas/V1ConnectionResponse' required: - - allocation - V1AllocationGetOutput: - title: V1AllocationGetOutput + - connections + V1ListingUpdateResponse: + title: V1ListingUpdateResponse type: object properties: id: type: string title: uuid - amount: - $ref: '#/components/schemas/PositiveAllocationAmount' - connectionId: - type: string - title: uuid - clientExternalId: + enterpriseId: type: string minLength: 1 - partnerExternalId: + description: type: string minLength: 1 - initiatedBy: + name: type: string minLength: 1 - notes: + owner: type: string minLength: 1 createdAt: @@ -34691,112 +35040,74 @@ components: type: string format: date-time title: ISO Date String - retriable: - type: boolean - reason: - nullable: true - type: string - minLength: 1 - status: - $ref: '#/components/schemas/AllocationStatus' - type: - $ref: '#/components/schemas/AllocationType' + globalListing: + type: object + description: codec for global listing http response + properties: + createdAt: + type: string + format: date-time + title: ISO Date String + description: + type: string + minLength: 1 + enterpriseId: + type: string + minLength: 1 + id: + type: string + title: uuid + name: + type: string + minLength: 1 + owner: + type: string + minLength: 1 + updatedAt: + type: string + format: date-time + title: ISO Date String + required: + - createdAt + - enterpriseId + - id + - name + - owner + - updatedAt required: - id - - amount - - connectionId - - clientExternalId - - initiatedBy + - name + - owner - createdAt - updatedAt - - retriable - - reason - - status - - type - AllocationStatus: - title: AllocationStatus - type: string - enum: - - cleared - - released - - reserved - AllocationType: - title: AllocationType - type: string - enum: - - allocation - - deallocation - V1ReservedAllocationOrErrorPayload: - title: V1ReservedAllocationOrErrorPayload - oneOf: - - $ref: '#/components/schemas/V1ErrorPayload' - - $ref: '#/components/schemas/V1ReservedRetriableAllocationsPostPayload' - V1ReservedRetriableAllocationsPostPayload: - title: V1ReservedRetriableAllocationsPostPayload - type: object - properties: - allocation: - $ref: '#/components/schemas/V1ReservedRetriableAllocationOutput' - required: - - allocation - V1AllocationsReleasedWithErrorPostPayload: - title: V1AllocationsReleasedWithErrorPostPayload - allOf: - - type: object - properties: {} - - $ref: '#/components/schemas/V1AllocationsReleasedPayload' - - $ref: '#/components/schemas/V1ErrorPayload' - V1AllocationsReleasedPayload: - title: V1AllocationsReleasedPayload - type: object - properties: - allocation: - $ref: '#/components/schemas/V1ReleasedAllocation' - required: - - allocation - V1AllocationsClearedPostPayload: - title: V1AllocationsClearedPostPayload - type: object - properties: - allocation: - $ref: '#/components/schemas/V1ClearedAllocation' - required: - - allocation - V1ReservedNonRetriableAllocationsPostPayload: - title: V1ReservedNonRetriableAllocationsPostPayload - type: object - properties: - allocation: - $ref: '#/components/schemas/V1ReservedNonRetriableAllocationOutput' - required: - - allocation - V1AllocationsGetPayload: - title: V1AllocationsGetPayload + V1ConnectionListResponse: + title: V1ConnectionListResponse type: object + description: codec for connection list http response properties: - allocations: + connections: type: array items: type: object + description: codec for connection http response properties: id: type: string title: uuid - amount: - $ref: '#/components/schemas/PositiveAllocationAmount' - connectionId: - type: string - title: uuid - clientExternalId: + type: + $ref: '#/components/schemas/ConnectionType' + status: + $ref: '#/components/schemas/ConnectionStatus' + label: type: string minLength: 1 - partnerExternalId: + description: type: string minLength: 1 - initiatedBy: + createdBy: type: string minLength: 1 - notes: + updatedBy: type: string minLength: 1 createdAt: @@ -34807,3273 +35118,2351 @@ components: type: string format: date-time title: ISO Date String - retriable: - type: boolean - reason: - nullable: true - type: string - minLength: 1 - status: - $ref: '#/components/schemas/AllocationStatus' - type: - $ref: '#/components/schemas/AllocationType' required: - id - - amount - - connectionId - - clientExternalId - - initiatedBy + - type + - status + - label + - createdBy + - updatedBy - createdAt - updatedAt - - retriable - - reason - - status - - type - required: - - allocations - HistoricalPrice: - type: object - required: - - time - - open - - high - - low - - close - - base_volume - - quote_volume - properties: - time: - type: string - format: date-time - open: - type: number - format: float - high: - type: number - format: float - low: - type: number - format: float - close: - type: number - format: float - base_volume: - type: number - format: float - quote_volume: - type: number - format: float - example: - time: '2014-11-07T22:19:28.578Z' - open: 576.0590066 - high: 576.0590066 - low: 575.8330204 - close: 575.978887 - base_volume: 296.23 - quote_volume: 170627.62385 - HistoricalPriceResult: - type: object - required: - - data - properties: - data: - type: object - required: - - prices - - nextBatchPrevId - properties: - prices: - type: object - additionalProperties: - type: array - items: - $ref: '#/components/schemas/HistoricalPrice' - nextBatchPrevId: - type: string - example: - data: - prices: - BTC-USD: - - time: '2014-11-07T22:19:28.578Z' - open: 576.0590066 - high: 576.0590066 - low: 575.8330204 - close: 575.978887 - base_volume: 296.23 - quote_volume: 170627.62385 - nextBatchPrevId: a0dbb6aad06d9a37c9882231d8dc32ef - MarketDataError: - type: object - description: Market Data Error - properties: - error: - type: string - errorName: - type: string required: - - error - - errorName - example: - errorName: backend:common:invalidArgument - error: backend:common:invalidArgument key=instrument - BlockHash: - type: string - example: 0000000000000296ed56abee6cb78e40b00c47a03d92e71dd92c4862ca636b95 - TxId: - type: string - description: The on-chain transaction id - example: b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26 - IdentityOccupation: - title: IdentityOccupation - type: string - enum: - - Agriculture - - Art Dealer / Auctioneer / Import / Export Company - - Financial Services (Asset Mgmt., Bank, Broker Dealer, Commodities, Mutual Fund, Ins. Co) - - Casinos and Gambling Establishments - - Charity/NGO/Non-Profit/Foundation/Endowment - - Computer Programmer / Administrator / Software Engineer / IT or Software / Technology Company - - Crypto Services (ATM, Exchange, Lender, Coins/Token) - - Education / Teacher - - Extractive Industry (Oil, Gas, etc.) / Jewels / Gemstones / Precious Metals - - Family Office - - Film / TV / Entertainment (not adult) - - Government/State owned/Political Org. (i.e. Sovereign Wealth Fund) - - Healthcare - - Law Enforcement / Military / Protective Services - - Miner / Mining Pool - - Money Service Business - - Other - - Private Equity / Venture Capital - - Professional Service Providers (lawyers accountants etc.) - - Real estate brokers developers and appraisers - - Recreation / Hospitality - - Student / Unemployed / Retired - - Traders / Trading (High Frequency, Proprietary, Market Maker) - - Other - Default - - Weapons Dealers - PersonaIdClass: - title: PersonaIdClass + - connections + UpdatableConnectionStatus: + title: UpdatableConnectionStatus type: string enum: - - cct - - cid - - dl - - foid - - hic - - id - - ipp - - keyp - - ltpass - - munid - - myn - - nbi - - nric - - ofw - - rp - - pan - - pid - - pp - - ppc - - pr - - sss - - td - - tribalid - - umid - - vid - - visa - - wp - PlatformError2: - title: PlatformError - allOf: - - type: object - properties: - name: - type: string - context: - type: object - additionalProperties: {} - status: - type: number - additionalDetails: - type: object - properties: - retryAfter: - type: number - required: - - retryAfter - required: - - context - - $ref: '#/components/schemas/PlatformErrorNoName2' - PlatformErrorNoName2: - title: PlatformErrorNoName + - PENDING_DEACTIVATION + V1ErrorPayload: + title: V1ErrorPayload type: object properties: error: type: string - requestId: - type: string required: - error - - requestId - PutIdentityDocumentUpdateResponse: - title: PutIdentityDocumentUpdateResponse - type: object - properties: - id: - type: string - title: uuid - status: - type: string - minLength: 1 - selectedIdClass: - $ref: '#/components/schemas/PersonaIdClass' - required: - - id - - status - - selectedIdClass - IdentityDocumentType: - title: IdentityDocumentType + BNSupportedCurrency: + title: BNSupportedCurrency type: string - enum: - - frontPhoto - - backPhoto - - proofOfResidency - IdentityDocumentGetResponse: - title: IdentityDocumentGetResponse + V1SupportedCurrencies: + title: V1SupportedCurrencies + type: object + additionalProperties: + type: array + items: + allOf: + - type: object + properties: {} + - $ref: '#/components/schemas/BNMetadata' + BNMetadata: + title: BNMetadata type: object properties: - documents: + partnerNames: type: array items: - type: object - properties: - id: - type: string - title: uuid - identityId: - type: string - title: uuid - status: - type: string - minLength: 1 - createdAt: - type: string - format: date-time - title: ISO Date String - updatedAt: - type: string - format: date-time - title: ISO Date String - fileUploads: - type: array - items: - type: object - properties: - fileName: - type: string - minLength: 1 - fileSize: - type: number - uploadStatus: - type: string - minLength: 1 - documentType: - $ref: '#/components/schemas/IdentityDocumentType' - required: - - fileName - - fileSize - - uploadStatus - - documentType - selectedIdClass: - $ref: '#/components/schemas/PersonaIdClass' - required: - - id - - identityId - - status - - createdAt - - updatedAt + type: string + minLength: 1 required: - - documents - PostIdentityDocumentCreateResponse: - title: PostIdentityDocumentCreateResponse + - partnerNames + V1EnterpriseSupportedCurrenciesResponse: + title: V1EnterpriseSupportedCurrenciesResponse type: object properties: - id: - type: string - title: uuid - status: + supportedCurrencies: + $ref: '#/components/schemas/V1SupportedCurrencies' + domain: type: string minLength: 1 - selectedIdClass: - $ref: '#/components/schemas/PersonaIdClass' - fileUploads: - type: array - items: - type: object - properties: - fileName: - type: string - minLength: 1 - fileSize: - type: number - uploadStatus: - type: string - minLength: 1 - documentType: - $ref: '#/components/schemas/IdentityDocumentType' - required: - - fileName - - fileSize - - uploadStatus - - documentType required: - - id - - status - - selectedIdClass - - fileUploads - IdentityUpdateResponse: - title: IdentityUpdateResponse + - supportedCurrencies + - domain + NonNegativeBigAmount: + title: NonNegativeBigAmount + type: string + SettlementTransferStatus: + title: SettlementTransferStatus + type: string + enum: + - pending + - pending_onchain + - onchain_initiated + - onchain_failed + - completed + - failed + - rejected + V1ClientGetSettlementTransfersOkPayload: + title: V1ClientGetSettlementTransfersOkPayload type: object properties: - id: - type: string - title: uuid - status: - type: string - minLength: 1 - organizationId: - type: string - minLength: 1 - enterpriseId: - type: string - minLength: 1 - userId: - type: string - minLength: 1 - createdAt: - type: string - format: date-time - title: ISO Date String - updatedAt: - type: string - format: date-time - title: ISO Date String - errorDescription: - type: string - minLength: 1 - signaturesSubmitted: - $ref: '#/components/schemas/ContractTypes' - signaturesRequired: - $ref: '#/components/schemas/ContractTypes' + settlementTransfers: + $ref: '#/components/schemas/MaskedV1SettlementTransfersOutput' required: - - id - - status - - organizationId - ContractTypes: - title: ContractTypes - type: array - items: - type: string - enum: - - csa - - mpa - - mic - - wvr - ESignatures: - title: ESignatures + - settlementTransfers + MaskedV1SettlementTransfersOutput: + title: MaskedV1SettlementTransfersOutput type: array items: type: object properties: - contractSignerNameFull: + sourceTradingAccountId: type: string minLength: 1 - contractSignedDate: + sourceNetworkAccountId: type: string - format: date-time - title: ISO Date String - contractSignedIPAddress: + title: uuid + destinationTradingAccountId: type: string minLength: 1 - contractType: - $ref: '#/components/schemas/ContractType' - contractVersion: + destinationNetworkAccountId: + type: string + title: uuid + currency: + type: string + minLength: 1 + settlementId: + type: string + title: uuid + quantity: + $ref: '#/components/schemas/NonNegativeBigAmount' + txIds: + type: array + items: + type: string + minLength: 1 + status: + $ref: '#/components/schemas/SettlementTransferStatus' + usdValue: + nullable: true + oneOf: + - type: string + format: number + - type: number + id: + type: string + title: uuid + createdAt: + type: string + format: date-time + title: ISO Date String + updatedAt: + type: string + format: date-time + title: ISO Date String + settlementStatus: + $ref: '#/components/schemas/SettlementStatuses' + settlementNotes: + type: string + minLength: 1 + sourceClientName: + type: string + minLength: 1 + destinationClientName: + type: string + minLength: 1 + sourceConnectionName: + type: string + minLength: 1 + destinationConnectionName: type: string minLength: 1 - userAgreesToTerms: - type: boolean required: - - contractSignerNameFull - - contractSignedDate - - contractSignedIPAddress - - contractType - - contractVersion - - userAgreesToTerms - ContractType: - title: ContractType + - currency + - settlementId + - quantity + - txIds + - status + - usdValue + - id + - createdAt + - updatedAt + - settlementStatus + SettlementStatuses: + title: SettlementStatuses type: string enum: - - csa - - mpa - - mic - - wvr - IdentityGetResponse: - title: IdentityGetResponse - type: object - properties: - identities: - type: array - items: - type: object - properties: - id: - type: string - title: uuid - status: - type: string - minLength: 1 - organizationId: - type: string - minLength: 1 - enterpriseId: - type: string - minLength: 1 - userId: - type: string - minLength: 1 - createdAt: - type: string - format: date-time - title: ISO Date String - updatedAt: - type: string - format: date-time - title: ISO Date String - errorDescription: - type: string - minLength: 1 - occupation: - type: string - countryOfCitizenship: - type: string - govIdCountryOfIssuance: - type: string - politicallyExposedPerson: - type: boolean - debugStatus: - type: string - country: - type: string - countryOfResidence: - type: string - addressCity: - type: string - addressPostalCode: - type: string - addressStreet1: - type: string - addressStreet2: - type: string - addressSubdivision: - type: string - birthDate: - type: string - format: date-time - title: ISO Date String - identificationNumber: - type: string - nameFirst: - type: string - nameLast: - type: string - nameMiddle: - type: string - phoneNumber: - type: string - selectedIdClass: - type: string - debugFailureReason: - type: string - emailAddress: - type: string - contractSignerNameFull: - type: string - contractSignedDate: - type: string - format: date-time - title: ISO Date String - contractSignedIPAddress: - type: string - contractVersion: - type: string - userAgreesToTerms: - type: string - signatureSubmitted: - type: string - signaturesSubmitted: - type: array - items: - type: string - enum: - - csa - - mpa - - mic - - wvr - signaturesRequired: - type: array - items: - type: string - enum: - - csa - - mpa - - mic - - wvr - required: - - id - - status - - organizationId - required: - - identities - IdentityCreateResponse: - title: IdentityCreateResponse + - failed + - completed + - pending + - rejected + V1PartnersOutput: + title: V1PartnersOutput type: object properties: id: type: string title: uuid - status: + enterpriseId: type: string minLength: 1 - required: - - id - - status - AdaStakeIntent1: - title: Ada Stake - allOf: - - $ref: '#/components/schemas/StakeIntent2' - - type: object - properties: - poolKeyHash: - type: string - description: | - The pool key hash to which the coins will be delegated to. - required: - - poolKeyHash - Address2: - type: object - properties: - id: - allOf: - - $ref: '#/components/schemas/Id' - description: platform public id for an address - address: - $ref: '#/components/schemas/AddressString3' - chain: - $ref: '#/components/schemas/Chain' - index: - type: integer - coin: + trustOrg: type: string - lastNonce: - type: integer - default: -1 - wallet: - allOf: - - $ref: '#/components/schemas/Id' - description: The wallet which contains this address - coinSpecific: - type: object - description: Properties which are specific to certain coin types - properties: - xlm: - $ref: '#/components/schemas/AddressCoinSpecificXlm' - txlm: - $ref: '#/components/schemas/AddressCoinSpecificXlm' - balance: - allOf: - - type: object - - $ref: '#/components/schemas/AddressBalance' - description: Balance of the address. In case of Eth and Celo, if returnBalancesForToken is passed with includeBalances, then it will return token balance in the address object. This field will be present only when 'includeBalances' query param is passed as true. - label: - $ref: '#/components/schemas/AddressLabel' - addressType: - $ref: '#/components/schemas/AddressType' - AddressBalance: - type: object - properties: - updated: + institutionId: + type: string + institutionIdentifier: + type: string + name: + type: string + minLength: 1 + connectionKeySchema: + $ref: '#/components/schemas/PartnerConnectionKeySchema' + createdAt: type: string - description: The last time a transaction affected the balance of this address format: date-time - balance: - type: integer - description: The cleared balance of the address - example: 50000 - balanceString: + title: ISO Date String + updatedAt: type: string - description: String representation of 'balance'. Guaranteed to not lose precision. - example: '50000' - totalReceived: - type: integer - description: The total amount received on this address (in the chain's base unit) - totalSent: - type: integer - description: The total amount send from this address (in the chain's base unit) - confirmedBalanceString: + format: date-time + title: ISO Date String + clientId: type: string - description: | - The total balance of confirmed transactions for the address (in the chain's base unit). - Guaranteed to not lose precision. - example: '40000' - spendableBalanceString: + title: uuid + broker: + type: boolean + active: + type: boolean + settlementTransactionRouteId: type: string - description: | - The total balance of the address (in the chain's base unit) which may - be used as inputs for creating new transactions in string representation. - Guaranteed to not lose precision. - example: '40000' - AddressCoinSpecificXlm: - type: object - properties: - memoId: - allOf: - - $ref: '#/components/schemas/IntegerString' - - example: '1' - description: Latest memo id generated for the wallet - rootAddress: + publicKey: type: string - description: Root address of the wallet - example: GCTTCPH4IIDK7P72FFAEJ3ZFN6WDHJH6GGMRPHPM56ZWGIQ7B3XTIJAM - AddressString3: - title: Address - type: string - example: 2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZS - maxLength: 250 - AddressType: + required: + - id + - enterpriseId + - trustOrg + - name + - connectionKeySchema + - createdAt + - updatedAt + - clientId + - broker + - active + PartnerConnectionKeySchema: + title: PartnerConnectionKeySchema type: string - example: p2sh enum: - - p2sh - - p2shP2wsh - - p2wsh - - p2tr - - p2trMusig2 - AdvancedListRuleEntry1: - title: Advanced whitelist rule entry + - token + - tokenAndSignature + - apiKeyAndSecret + - clearloop + V1PartnerIncompleteSettlementOrErrorPayload: + title: V1PartnerIncompleteSettlementOrErrorPayload + oneOf: + - $ref: '#/components/schemas/V1PartnerSettlementIncompletePayload' + - $ref: '#/components/schemas/V1ErrorPayload' + V1PartnerSettlementIncompletePayload: + title: V1PartnerSettlementIncompletePayload type: object properties: - item: - allOf: - - oneOf: - - $ref: '#/components/schemas/AddressString3' - - $ref: '#/components/schemas/Id' - description: Either a valid address or a wallet or enterprise id. Must be unique in this whitelist. - metaData: - type: object - description: Any data about this entry that is not used to determine when to enforce the policy - properties: - label: - type: string - description: A client-specified label for this entry. Label must be unique or not set. - owner: - type: string - description: The legal owner of the address/ wallet/ enterprise - example: Legal Owner LLC - address: - type: string - description: The address of the receiver wallet if the whitelist is of type 'walletId'. - additionalProperties: true - type: - $ref: '#/components/schemas/ListRuleEntryType' + settlement: + oneOf: + - $ref: '#/components/schemas/V1PendingSettlementOutput' + - $ref: '#/components/schemas/V1FailedSettlementOutput' + - $ref: '#/components/schemas/V1RejectedSettlementOutput' required: - - item - - type - AnnotatedTransfer: - allOf: - - $ref: '#/components/schemas/Transfer' - - type: object - properties: - confirmations: - type: integer - description: The number of blocks that have been confirmed since this Transfer's block was confirmed - entries: - type: array - items: - type: object - properties: - label: - type: string - description: If this address was labeled by the user, this is the label - AnnotatedTransferWithInputsOutputs: - allOf: - - $ref: '#/components/schemas/AnnotatedTransfer' - - type: object - properties: - inputs: - type: array - description: If this is a Transfer on a UTXO coin, the array of inputs - items: - $ref: '#/components/schemas/Unspent' - outputs: - type: array - description: If this is a Transfer on a UTXO coin, the array of outputs - items: - $ref: '#/components/schemas/Unspent' - PlatformError3: - title: API error - allOf: - - $ref: '#/components/schemas/PlatformErrorNoName3' - - properties: - context: - type: object - description: Properties that apply to a specific error name - name: - type: string - description: Error code - required: - - name - PlatformErrorNoName3: + - settlement + V1PendingSettlementOutput: + title: V1PendingSettlementOutput type: object properties: - error: + id: type: string - description: Human-readable error message - requestId: + title: uuid + partnerId: type: string - description: Client request id - required: - - error - - requestId - AverageFee: - type: object - properties: - averageFee: - type: number - description: Calculated by summing the fees of the blocks over the number of blocks. - example: 16000000 - required: - - averageFee - BackupKeyType: - type: string - description: Coin name used to choose correct KRS public key for the given provider. Possible valid values are "btc", "eth", "bitcoin" - example: eth - Balance: - type: object - properties: - balance: - type: integer - description: | - The total balance of all wallets containing the given coin type. May lose - precision for large values. - example: 50000 - balanceString: + title: uuid + externalId: type: string - description: | - String representation of 'balance'. Guaranteed to not lose - precision. - example: '50000' - confirmedBalance: - type: integer - description: | - The total balance of confirmed transactions for all wallets containing the given - coin type. May lose precision for large values. - nullable: true - example: 40000 - confirmedBalanceString: + minLength: 1 + status: type: string - description: | - String representation of 'confirmedBalance'. Guaranteed to not lose - precision. - example: '40000' - spendableBalance: - type: integer - description: | - The total balance of all wallets containing the given coin which may - be used as inputs for creating new transactions. May lose precision - for large values. - nullable: true - example: 40000 - spendableBalanceString: + enum: + - pending + settlementType: + $ref: '#/components/schemas/SettlementTypes' + reconciled: + type: boolean + initiatedBy: type: string - description: | - String representation of 'spendableBalance'. Guaranteed to not lose - precision. - example: '40000' - stakedBalance: - type: integer - description: | - The total balance of all wallets containing the given coin which has been staked. - May lose precision for large values. - nullable: true - example: 40000 - stakedBalanceString: + minLength: 1 + notes: type: string - description: | - String representation of 'stakedBalance'. Guaranteed to not lose - precision. - example: '40000' - BalanceReserve: - type: object - properties: - baseFee: + minLength: 1 + createdAt: type: string - description: base fee used in transaction fees - example: '100' - baseReserve: + format: date-time + title: ISO Date String + updatedAt: type: string - description: base reserve used in minimum account balances - example: '5000000' - reserve: + format: date-time + title: ISO Date String + rtId: type: string - description: minimum account balance, calculated using base reserve - example: '25000000' - minimumFunding: - type: string - description: minimum funding balance, calculated using reserve and base fee - example: '25000500' - height: - type: integer - description: the height of the block that provides the base values - example: 11228504 - BalanceStaked: - type: array - items: - type: object - properties: - address: - allOf: - - type: string - - $ref: '#/components/schemas/AddressString3' - description: the address of the wallet - balances: - type: array - items: - type: object - description: an object containing of validators and the current staked amount - properties: - validator: - allOf: - - type: string - - $ref: '#/components/schemas/AddressString3' - description: the validator - staked_amount: - type: string - description: the amount delegated to the validator - example: '5000000000' - BalanceTotalRewards: - type: array - items: - type: object - properties: - address: - allOf: - - type: string - - $ref: '#/components/schemas/AddressString3' - description: the address of the wallet - rewards: - type: array - items: - type: object - description: an object containing the reward recipient address and the total rewards received - properties: - reward_recipient: - allOf: - - type: string - - $ref: '#/components/schemas/AddressString3' - description: the receiving address - reward_amount: - type: string - description: the total rewards received - example: '5000000000' - BankAccountCurrency: - title: BankAccountCurrency - description: | - The currency of the bank account. If null, defaults to 'fiatusd'. - type: string - nullable: true - enum: - - fiatusd - - fiateur - - null - example: fiatusd - BankAccountFee: - type: object - description: | - A fee that's associated with a bank account. - properties: - feeInfo: - type: object - properties: - bank: - type: string - enum: - - customers_sftp - - customers_api - - bcbgroup - description: | - The bank that the fee is associated with. - type: - type: string - enum: - - static - - variable - description: | - The type of fee. - amount: - type: string - description: | - The fee amount. - coin: - $ref: '#/components/schemas/BankAccountCurrency' - BankAccountId: - title: ID - type: string - pattern: ^[0-9a-f]{32}$ OR UUID - example: 59cd72485007a239fb00282ed480da1f - BankAccountIdHash: - type: string - example: 5c645791cf8eb19304292a8e3365fee3 - description: | - Unique identifier for this account, derived from 'accountNumber', - 'routingNumber', and 'swiftCode' - BankAccountPendingActivity: - type: string - enum: - - trust - BankAccountRequest: - anyOf: - - $ref: '#/components/schemas/DomesticWireBankAccount' - - $ref: '#/components/schemas/InternationalWireBankAccount' - - $ref: '#/components/schemas/CBITBankAccount' - BankAccountResponse: + lossSLAAlertSent: + type: boolean + gainSLAAlertSent: + type: boolean + required: + - id + - partnerId + - externalId + - status + - settlementType + - reconciled + - initiatedBy + - createdAt + - updatedAt + - lossSLAAlertSent + - gainSLAAlertSent + V1FailedSettlementOutput: + title: V1FailedSettlementOutput type: object - description: | - An external bank account. 'routingNumber' must be set for US bank accounts. - 'swiftCode' must be set for banks outside the US. properties: - accountNumber: - description: Bank account number or IBAN. + id: + type: string + title: uuid + partnerId: + type: string + title: uuid + externalId: type: string minLength: 1 - maxLength: 34 - example: 114584906 - enterpriseId: - $ref: '#/components/schemas/Id' - address: + reason: type: string - example: 2390 El Camino Real, Palo Alto, CA 94306 - address1: + minLength: 1 + status: type: string - example: 2390 El Camino Real - address2: + enum: + - failed + settlementType: + $ref: '#/components/schemas/SettlementTypes' + reconciled: + type: boolean + initiatedBy: type: string - example: Palo Alto, CA 94306 - address3: + minLength: 1 + notes: type: string - example: '' - id: - $ref: '#/components/schemas/Id' - name: + minLength: 1 + createdAt: type: string - example: America California Bank - ownerName: + format: date-time + title: ISO Date String + updatedAt: type: string - example: Donald E. Knuth - ownerAddress: + format: date-time + title: ISO Date String + rtId: type: string - example: 2390 El Camino Real, Palo Alto, CA 94306 - owner: - type: object - description: Bank account owner - properties: - name: - type: string - example: Donald E. Knuth - address1: - type: string - example: Computer Science Department - address2: - type: string - example: Stanford University - address3: - type: string - example: Stanford, CA 94305-9045 - required: - - name - - address1 - routingNumber: - description: US bank routing number + lossSLAAlertSent: + type: boolean + gainSLAAlertSent: + type: boolean + required: + - id + - partnerId + - externalId + - reason + - status + - settlementType + - reconciled + - initiatedBy + - createdAt + - updatedAt + - lossSLAAlertSent + - gainSLAAlertSent + V1RejectedSettlementOutput: + title: V1RejectedSettlementOutput + type: object + properties: + id: type: string - example: '129131673' - minLength: 9 - maxLength: 9 - pattern: ^[0-9]+$ - shortCountryCode: - $ref: '#/components/schemas/ShortCountryCode' - swiftCode: - description: Bank identifier code, as specified by ISO 9362. Used by banks outside the US. + title: uuid + partnerId: type: string - example: DEUTDEFF500 - minLength: 8 - maxLength: 11 - pattern: ^[A-Z]{6}[0-9A-Z]{2}([0-9A-Z]{3})?$ - type: - $ref: '#/components/schemas/BankAccountType' - currency: - $ref: '#/components/schemas/BankAccountCurrency' + title: uuid externalId: type: string - example: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6 - furtherCreditTo: + minLength: 1 + reason: type: string - example: Donald E. Knuth - intermediaryBankName: + minLength: 1 + status: type: string - example: America California Bank - intermediaryBankId: + enum: + - rejected + settlementType: + $ref: '#/components/schemas/SettlementTypes' + reconciled: + type: boolean + initiatedBy: type: string - example: 59cd72485007a239fb00282ed480da1f - idHash: - $ref: '#/components/schemas/BankAccountIdHash' - trustOrg: - $ref: '#/components/schemas/BitgoOrg1' - token: + minLength: 1 + notes: type: string - example: fiat - verificationState: - $ref: '#/components/schemas/BankAccountVerificationState' - pendingActivity: - $ref: '#/components/schemas/BankAccountPendingActivity' - fee: - $ref: '#/components/schemas/BankAccountFee' - BankAccountType: - title: BankAccountType - description: | - The type of bank account. If null, defaults 'wire'. - type: string - nullable: true - enum: - - wire - - cbit - - null - example: wire - BankAccountVerificationState: - type: string - enum: - - pending - - approved - - rejected - - removed - Bitcoin: - type: string - enum: - - btc - - tbtc4 - description: This route is only available for Bitcoin. - BitgoOrg1: + minLength: 1 + createdAt: + type: string + format: date-time + title: ISO Date String + updatedAt: + type: string + format: date-time + title: ISO Date String + finalizedAt: + type: string + format: date-time + title: ISO Date String + rtId: + type: string + lossSLAAlertSent: + type: boolean + gainSLAAlertSent: + type: boolean + required: + - id + - partnerId + - externalId + - reason + - status + - settlementType + - reconciled + - initiatedBy + - createdAt + - updatedAt + - finalizedAt + - lossSLAAlertSent + - gainSLAAlertSent + SettlementTypes: + title: SettlementTypes type: string - description: BitGo Organization related to this entity enum: - - BitGo Inc - - BitGo Trust - - BitGo New York - - BitGo Germany - - BitGo Switzerland - - Frankfurt DE Trust - - BitGo Sister Trust 1 - - BitGo Korea - - BitGo Singapore - - BitGo Europe ApS - - BitGo Mena Fze - BuildParams: + - onchain + - offchain + V1PartnerSettlementOkPayload: + title: V1PartnerSettlementOkPayload type: object properties: - type: + settlement: + $ref: '#/components/schemas/V1CompleteSettlementOutput' + required: + - settlement + V1CompleteSettlementOutput: + title: V1CompleteSettlementOutput + type: object + properties: + id: type: string - description: | - Required for transactions from MPC wallets. "acceleration" speeds up transactions with a certain nonce by adjusting the gas setting. "accountSet" is for XRP AccountSet transactions. "enabletoken" is for SOL. "stakingLock" and "stakingUnlock" are for Stacks delegations. "transfer" is for native-asset transfers. "trustline" is for Stellar trustline transactions. Possible types include: [acceleration, accountSet, enabletoken, stakingLock, stakingUnlock, transfer, transfertoken, trustline] - - For AVAX, possible types include: 'addValidator', 'export', and 'import'. - - For XRP, possible types include: 'payment' and 'accountSet'. The default is 'payment'. - - For STX, type is required. - numBlocks: - type: integer - description: | - (BTC only) The number of blocks required to confirm a transaction. You can use 'numBlocks' to estimate the fee rate by targeting confirmation within a given number of blocks. If both 'feeRate' and 'numBlocks' are absent, the transaction defaults to 2 blocks for confirmation. - - Note: The 'maxFeeRate' limits the fee rate generated by 'numBlocks'. - minimum: 2 - maximum: 1000 - feeRate: - allOf: - - $ref: '#/components/schemas/IntegerOrString' - - example: 10000 - description: | - Custom fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. - - If the 'feeRate' is less than the minimum required network fee, then the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000 microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is usually 4.5 times the open ledger fee. - - Note: The 'feeRate' overrides the 'maxFeeRate' and 'minFeeRate'. - maxFeeRate: - allOf: - - $ref: '#/components/schemas/IntegerOrIntegerString' - - example: 20000 - description: | - (BTC only) The maximum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. The 'maxFeeRate' limits the fee rate generated by both 'feeMultiplier' and 'numBlocks'. - - Note: The 'feeRate' overrides the 'maxFeeRate'. - feeMultiplier: - allOf: - - $ref: '#/components/schemas/NumberOrString' - - example: 1.5 - description: | - (UTXO only) Custom multiplier to the 'feeRate'. The resulting fee rate is limited by the 'maxFeeRate'. For replace-by-fee (RBF) transactions (that include 'rbfTxIds'), the 'feeMultiplier' must be greater than 1, since it's an absolute fee multiplier to the transaction being replaced. - - Note: The 'maxFeeRate' limits the fee rate generated by 'feeMultiplier'. - minConfirms: - type: integer - description: | - The unspent selection for the transaction will only consider unspents with at least this many confirmations to be used as inputs. Does not apply to change outputs unless used in combination with 'enforceMinConfirmsForChange'. - enforceMinConfirmsForChange: - type: boolean - description: When set to true, will enforce minConfirms for change outputs. Defaults to false. - default: false - gasPrice: - allOf: - - $ref: '#/components/schemas/IntegerOrIntegerString' - description: Custom gas price to be used for sending the transaction. Only for ETH and ERC20 tokens. - eip1559: - properties: - maxPriorityFeePerGas: - allOf: - - $ref: '#/components/schemas/IntegerOrIntegerString' - - maximum: 100000000000 - description: Max priority tip price for EIP1559 transactions. Only for ETH and ERC20 tokens. - maxFeePerGas: - allOf: - - $ref: '#/components/schemas/IntegerOrIntegerString' - description: Max total gasPrice for EIP1559 transactions. Only for ETH and ERC20 tokens. - gasLimit: - allOf: - - $ref: '#/components/schemas/IntegerOrIntegerString' - description: Custom gas limit to be used for sending the transaction. Only for ETH and ERC20 tokens. - targetWalletUnspents: - type: integer - description: | - Specifies the minimum count of good-sized unspents to maintain in the wallet. Change splitting ceases when the - wallet has 'targetWalletUnspents' good-sized unspents. - - **Note**: Wallets that continuously send a high count of transactions will automatically split large change amounts - into multiple good-sized change outputs while they have fewer than 'targetWalletUnspents' good-sized unspents in - their unspent pool. Breaking up large unspents helps to reduce the amount of unconfirmed funds in flight in future - transactions, and helps to avoid long chains of unconfirmed transactions. This is especially useful for newly - funded wallets or recently refilled send-only wallets. - default: 1000 - minValue: - allOf: - - $ref: '#/components/schemas/IntegerOrIntegerString' - description: Ignore unspents smaller than this amount of base units (e.g. satoshis). For doge, only string is allowed. - maxValue: - allOf: - - $ref: '#/components/schemas/IntegerOrIntegerString' - description: Ignore unspents larger than this amount of base units (e.g. satoshis). For doge, only string is allowed. - sequenceId: + title: uuid + partnerId: type: string - description: | - A 'sequenceId' is a unique and arbitrary wallet identifier applied to transfers and transactions at creation. It is optional but highly recommended. With a 'sequenceId' you can easily reference transfers and transactions—for example, to safely retry sending. Because the system only confirms one send request per 'sequenceId' (and fails all subsequent attempts), you can retry sending without the risk of double spending. The 'sequenceId' is only visible to users on the wallet and is not shared publicly. - nonce: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: | - (DOT only) A nonce ID is a number used to protect private communications by preventing replay attacks. - This is an advanced option where users can manually input a new nonce value - in order to correct or fill in a missing nonce ID value. - noSplitChange: - type: boolean - description: | - Set 'true' to disable automatic change splitting. - - Also see: 'targetWalletUnspents' - default: false - unspents: - type: array - items: - example: 12b147dd8b4f73c01f72bdbf5b589eea614f3de609ffdbdac84852d6505cf8a3:1 - type: string - description: | - Used to explicitly specify the unspents to be used in the input set in the transaction. Each unspent should be in the form 'prevTxId:nOutput'. - changeAddress: - allOf: - - $ref: '#/components/schemas/AddressString3' - description: Specifies a custom destination address for the transaction's change output(s) - txFormat: - $ref: '#/components/schemas/UtxoTransactionFormat' - instant: - type: boolean - description: (DASH only) Specifies whether or not to use Dash's "InstantSend" feature when sending a transaction. - memo: - type: object - properties: - type: - type: string - value: - type: string - description: | - Memo for Stellar or EOS. Type is only required for memos in Stellar transactions. The memo contains optional extra information that can also be used to identify payments in Stellar or EOS. - comment: + title: uuid + externalId: type: string - description: | - Optional metadata (only persisted in BitGo) to be applied to the transaction. Use this to add transaction-specific information such as the transaction's purpose or another identifier that you want to reference later. The value is shown in the UI in the transfer listing page. - maxLength: 256 - destinationChain: + minLength: 1 + status: type: string - description: (AVAXC and AVAXP only) Destination chain for an AVAX import/export transaction. One of [P, C]. - sourceChain: - type: string - description: (AVAXC and AVAXP only) Source chain for an AVAX import/export transaction. One of [P, C]. - addressType: - type: string - deprecated: true - description: |- - DEPRECATED - use 'changeAddressType'. - The type of address to create for change. One of 'p2sh', 'p2shP2wsh', 'p2wsh', or 'p2tr'. - changeAddressType: - anyOf: - - $ref: '#/components/schemas/AddressType' - - $ref: '#/components/schemas/ChangeAddressTypes' - description: The address type for the change address. One of 'p2sh', 'p2shP2wsh', 'p2wsh', 'p2tr' or 'p2trMusig2'. - startTime: - type: string - description: Unix timestamp in seconds.nanoseconds format, denoting the start of the validity window. Only for HBAR transactions. - example: 1714067129.1020603 - consolidateId: - allOf: - - $ref: '#/components/schemas/Id' - description: (ALGO/TEZOS only) Consolidation ID of this consolidation transaction. - lastLedgerSequence: - type: integer - description: (XRP only) Absolute max ledger the transaction should be accepted in, whereafter it will be rejected - ledgerSequenceDelta: - type: integer - description: (XRP only) Relative ledger height (in relation to the current ledger) that the transaction should be accepted in, whereafter it will be rejected - rbfTxIds: - type: array - items: - type: string - description: The list of transactions to accelerate using Replace-By-Fee (RBF) for UTXO coins (currently accelerating only one tx is supported). - isReplaceableByFee: + enum: + - completed + settlementType: + $ref: '#/components/schemas/SettlementTypes' + reconciled: type: boolean - description: It is used to mark an UTXO transaction eligible for Replace-By-Fee (RBF) later. - validFromBlock: - type: integer - description: Optional block this transaction is valid from - validToBlock: - type: integer - description: Optional block this transaction is valid until - trustlines: - type: array - items: - $ref: '#/components/schemas/Trustline' - description: List of trustlines to manage on the account. Available for Stellar. - stakingOptions: - anyOf: - - $ref: '#/components/schemas/CSPRStakingOptions' - - $ref: '#/components/schemas/STXStakingOptions' - description: Required object for staking. Only for CSPR and STX. - messageKey: - type: string - description: Optional parameter that takes a hexadecimal value to set 'messagekey' for an XRP 'accountSet' transaction. Recipients field should be empty when 'messageKey' is set. - reservation: - type: object - properties: - expireTime: - type: string - format: date-time - description: Required. The time that the unspent reservations should expire. - description: Optional parameter for UTXO coins to automatically reserve the unspents that are used in the build. Useful for Cold wallets. If using, must set expireTime. - CBITBankAccount: - title: CBIT Bank Account - type: object - description: | - An external bank account. 'routingNumber' must be set for US bank accounts. - 'swiftCode' must be set for banks outside the US. - properties: - accountNumber: - description: Bank account number or IBAN. + initiatedBy: type: string minLength: 1 - maxLength: 34 - example: 114584906 - enterpriseId: - $ref: '#/components/schemas/Id' - address: - type: string - example: 2390 El Camino Real, Palo Alto, CA 94306 - address1: + notes: type: string - example: 2390 El Camino Real - address2: + minLength: 1 + createdAt: type: string - example: Palo Alto, CA 94306 - address3: + format: date-time + title: ISO Date String + updatedAt: type: string - example: '' - name: + format: date-time + title: ISO Date String + finalizedAt: type: string - example: America California Bank - ownerName: + format: date-time + title: ISO Date String + rtId: type: string - example: Donald E. Knuth - ownerAddress: + lossSLAAlertSent: + type: boolean + gainSLAAlertSent: + type: boolean + required: + - id + - partnerId + - externalId + - status + - settlementType + - reconciled + - initiatedBy + - createdAt + - updatedAt + - finalizedAt + - lossSLAAlertSent + - gainSLAAlertSent + SettlementAmountsRecord: + title: SettlementAmountsRecord + oneOf: + - $ref: '#/components/schemas/PartySettlementAmountsRecord' + - $ref: '#/components/schemas/CounterpartyPartySettlementAmountsRecord' + PartySettlementAmountsRecord: + title: PartySettlementAmountsRecord + type: object + additionalProperties: + type: object + additionalProperties: type: string - example: 2390 El Camino Real, Palo Alto, CA 94306 - owner: + description: Record> + description: Record> For exchange-style settlements, where the exchange is always the source and client owned connections are the destination. + CounterpartyPartySettlementAmountsRecord: + title: CounterpartyPartySettlementAmountsRecord + type: object + additionalProperties: + type: object + additionalProperties: type: object - description: Bank account owner - properties: - name: - type: string - example: Donald E. Knuth - address1: - type: string - example: Computer Science Department - address2: - type: string - example: Stanford University - address3: - type: string - example: Stanford, CA 94305-9045 - required: - - name - - address1 - externalId: - description: Required for CBIT transfers. - type: string - example: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6 - shortCountryCode: - $ref: '#/components/schemas/ShortCountryCode' - type: - $ref: '#/components/schemas/BankAccountType' - currency: - $ref: '#/components/schemas/BankAccountCurrency' - furtherCreditTo: - type: string - example: Donald E. Knuth - intermediaryBankName: - type: string - example: America California Bank - intermediaryBankId: - type: string - example: 59cd72485007a239fb00282ed480da1f + additionalProperties: + type: string + description: Record> + description: Record> For exchange-style settlements, where the exchange is always the source and client owned connections are the destination. + description: Record>> For broker-style settlements, where the source and destination are both client owned connections. + V1PendingSettlementPayload: + title: V1PendingSettlementPayload + type: object + properties: + settlement: + $ref: '#/components/schemas/V1PendingSettlementOutput' required: - - accountNumber - - address1 - - shortCountryCode - - name - - owner - - enterpriseId - - externalId - CSPRStakingOptions: - title: CSPR + - settlement + V1SettlementPayload: + title: V1SettlementPayload type: object properties: - amount: - allOf: - - $ref: '#/components/schemas/IntegerOrIntegerString' - description: Required for CSPR. String representation of the amount to stake or unstake in base units (motes). - validator: - allOf: - - $ref: '#/components/schemas/AddressString3' - description: Required for CSPR. The validator address used to delegate or undelegate. - CannotRemoveAdmin: - title: Can't remove admin - allOf: - - $ref: '#/components/schemas/PlatformErrorNoName3' - - properties: - context: - type: object - properties: - adminCount: - type: integer - description: | - Current number of admins on the wallet. This number must be - greater than 'approvalsRequired', since an admin cannot approve - his/her own operation. - approvalsRequired: - description: Number of admins that must approve a wallet operation - type: integer - required: - - adminCount - - approvalsRequired - name: - type: string - description: Error code - enum: - - CannotRemoveAdmin - required: - - context - - name - Chain: - type: integer - example: 1 - enum: - - 0 - - 1 - - 10 - - 11 - - 20 - - 21 - - 30 - - 31 - - 40 - - 41 - ChangeAddressTypes: - type: array - items: - $ref: '#/components/schemas/AddressType' - description: The address types for the change address. Order by preference and BitGo uses the first available. Any subset of 'p2sh', 'p2shP2wsh', 'p2wsh', 'p2tr' or 'p2trMusig2'. - ConsolidateAccountBuildRequest: + settlement: + $ref: '#/components/schemas/V1SettlementOutput' + required: + - settlement + V1SettlementOutput: + title: V1SettlementOutput + oneOf: + - $ref: '#/components/schemas/V1PendingSettlementOutput' + - $ref: '#/components/schemas/V1FailedSettlementOutput' + - $ref: '#/components/schemas/V1CompleteSettlementOutput' + - $ref: '#/components/schemas/V1RejectedSettlementOutput' + V1ListSettlementsOkPayload: + title: V1ListSettlementsOkPayload type: object properties: - consolidateAddresses: - description: | - Optional: restrict the consolidation to the specified receive addresses. If not provided, will consolidate the - funds from all receive addresses up to 500 addresses. + settlements: type: array items: - type: string - apiVersion: - description: | - The Trasaction Request API version to use for MPC EdDSA Hot Wallets. - Defaults based on the wallet type and asset curve. - type: string - enum: - - full - - lite - ConsolidateAccountBuildResponse: + oneOf: + - $ref: '#/components/schemas/V1PendingSettlementOutput' + - $ref: '#/components/schemas/V1FailedSettlementOutput' + - $ref: '#/components/schemas/V1CompleteSettlementOutput' + - $ref: '#/components/schemas/V1RejectedSettlementOutput' + required: + - settlements + V1GetSettlementOkPayload: + title: V1GetSettlementOkPayload type: object properties: - keyDerivationPath: - type: string - ConsolidateTokenIntent1: - title: Consolidate Token - allOf: - - $ref: '#/components/schemas/BaseIntent2' - - $ref: '#/components/schemas/EthBuildOptions' - - type: object - properties: - intentType: - type: string - enum: - - consolidateToken - recipients: - type: array - items: - $ref: '#/components/schemas/RecipientEntry1' - consolidateId: - type: string - description: Consolidation ID of this consolidation transaction - keepAlive: - type: string - description: True, if excluding the minimum-funding amounts in an address during consolidation. - required: - - intentType - - recipients - ConsolidateUnspentsRequest: + settlement: + $ref: '#/components/schemas/V1SettlementOutput' + settlementTransfers: + type: array + items: + type: object + properties: + id: + type: string + title: uuid + createdAt: + type: string + format: date-time + title: ISO Date String + updatedAt: + type: string + format: date-time + title: ISO Date String + currency: + type: string + minLength: 1 + settlementId: + type: string + title: uuid + quantity: + $ref: '#/components/schemas/NonNegativeBigAmount' + txIds: + type: array + items: + type: string + minLength: 1 + status: + $ref: '#/components/schemas/SettlementTransferStatus' + sourceTradingAccountId: + type: string + minLength: 1 + sourceNetworkAccountId: + type: string + title: uuid + destinationTradingAccountId: + type: string + minLength: 1 + destinationNetworkAccountId: + type: string + title: uuid + required: + - id + - createdAt + - updatedAt + - currency + - settlementId + - quantity + - txIds + - status + - sourceTradingAccountId + - destinationTradingAccountId + - destinationNetworkAccountId + required: + - settlement + - settlementTransfers + V1ClientGetSettlementOkPayload: + title: V1ClientGetSettlementOkPayload type: object properties: - feeRate: - allOf: - - $ref: '#/components/schemas/IntegerOrString' - - example: 10000 - description: | - Custom fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. - - If the 'feeRate' is less than the minimum required network fee, then the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000 microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is usually 4.5 times the open ledger fee. - - Note: The 'feeRate' overrides the 'maxFeeRate' and 'minFeeRate'. - maxFeeRate: - allOf: - - $ref: '#/components/schemas/IntegerOrIntegerString' - - example: 20000 - description: | - (BTC only) The maximum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. The 'maxFeeRate' limits the fee rate generated by both 'feeMultiplier' and 'numBlocks'. - - Note: The 'feeRate' overrides the 'maxFeeRate'. - maxFeePercentage: - type: integer - description: Maximum relative portion that can be spent towards fees - feeTxConfirmTarget: - type: integer - description: Block target for fee estimation - bulk: - type: boolean - description: Build multiple transactions at the same time. This enables you to increase the maximum number of unspents on the 'limit' parameter up to 2,000. If true, you must pass the 'txFormat' as 'psbt' and you can't pass the 'targetAddress' or 'numUnspentsToMake' parameters. - minValue: - allOf: - - $ref: '#/components/schemas/IntegerOrIntegerString' - description: Minimum value of unspents to use in base units (e.g. satoshis). Can be used to skip very small unspents when consolidating at higher fee rates. For doge, only string is allowed. - maxValue: - allOf: - - $ref: '#/components/schemas/IntegerOrIntegerString' - description: | - Maximum value of unspents to use in base units (e.g. satoshis). Should be used to prevent larger unspents from being consolidated needlessly, and that some funds remain available for spending while the consolidation transactions are in flight. For doge, only string is allowed. - minHeight: - type: integer - description: Minimum height of unspents on the block chain to use - minConfirms: - type: integer - description: Minimum confirmation threshold for external inputs - enforceMinConfirmsForChange: - type: boolean - description: Flag for enforcing minConfirms for change inputs - limit: - type: integer - description: Maximum number of unspents to use in the transaction - numUnspentsToMake: - type: integer - description: Number of new unspents to make - targetAddress: - type: string - description: address to use for generated outputs. Must be wallet address. - txFormat: - $ref: '#/components/schemas/UtxoTransactionFormat' - ConsolidationCoins: - type: string - enum: - - algo - - talgo - - xtz - - txtz - - eth - - hteth - description: This route is only available for Algorand, Tezos, and Eth. - CreateBlockWebhook: + settlement: + $ref: '#/components/schemas/V1SettlementOutput' + settlementTransfers: + $ref: '#/components/schemas/MaskedV1SettlementTransfersOutput' + required: + - settlement + - settlementTransfers + V1PartnersPostOkPayload: + title: V1PartnersPostOkPayload type: object properties: - type: - $ref: '#/components/schemas/WebhookTypeBlock' - url: - type: string - format: uri - example: http://your.server.com/webhook - description: URL to fire the webhook to. - label: - type: string - description: Label of the new webhook. - numConfirmations: - type: integer - minimum: 0 - example: 6 - description: Number of confirmations before triggering the webhook. If 0 or unspecified, requests will be sent to the callback endpoint when the transfer is first seen and when it is confirmed. + partner: + $ref: '#/components/schemas/V1PartnersOutput' required: - - type - - url - CreateKey: + - partner + V1PartnersGetOkPayload: + title: V1PartnersGetOkPayload type: object properties: - coinSpecific: - $ref: '#/components/schemas/KeyCreateCoinSpecific' - encryptedPrv: - type: string - description: Private part of this key pair, encrypted with a passphrase that only the client knows. Required for all sources except 'bitgo'. - source: - $ref: '#/components/schemas/KeySource' - enterprise: - allOf: - - $ref: '#/components/schemas/Id' - description: The Enterprise that will own this key - newFeeAddress: - type: boolean - description: Create a new keychain instead of fetching enterprise key (only for Ethereum) - pub: - allOf: - - $ref: '#/components/schemas/Pub' - description: Public part of this key pair. If the key type is "independent" (default) it is required for user key and is optional for backup key. If key type is "tss" this field is not required. - isDistributedCustody: - type: boolean - description: Set to true if you want to create a key for distributed custody. This parameter is only valid if you have the distributed custody enterprise license enabled and are creating a BitGo key. Otherwise it will throw an error. - example: false - commonPub: - type: string - description: The commonPub for the key. This value is necessary for BLS keys when the source is either “user” or “backup”. Setting this indicates to BitGo that the owner of the key has received all key shares they needed for generating their key. - commonKeychain: - type: string - description: The commonKeychain for the key if this is a MPC key. This value is required to be set when the type is set to “tss” and when the source is either “user” or “backup”. Setting this indicates to BitGo that the owner of the key has received all key shares they needed for generating their key. This value is the common pub concatenated with the common chaincode. - keyShares: + partners: type: array items: - $ref: '#/components/schemas/KeyShare' - description: Only required for BitGo MPC keys. Those will be the shares from the user and the backup provider that BitGo will end up generating the BitGo key (share) from. - type: - $ref: '#/components/schemas/BackupKeyType' - keyType: - allOf: - - $ref: '#/components/schemas/KeyType' - - default: tss - userGPGPublicKey: + type: object + properties: + id: + type: string + title: uuid + name: + type: string + minLength: 1 + institutionId: + type: string + institutionIdentifier: + type: string + connectionKeySchema: + $ref: '#/components/schemas/PartnerConnectionKeySchema' + active: + type: boolean + settlementTransactionRouteId: + type: string + publicKey: + type: string + enterpriseId: + type: string + stablePartner: + type: boolean + required: + - id + - name + - connectionKeySchema + - active + - stablePartner + required: + - partners + V1ExtDepositsPayload: + title: V1ExtDepositsPayload + type: object + properties: + deposits: + $ref: '#/components/schemas/ExtDepositsResp' + required: + - deposits + ExtDepositsResp: + title: ExtDepositsResp + type: array + items: + type: object + properties: + onChainTxId: + type: string + minLength: 1 + transferId: + type: string + currency: + type: string + minLength: 1 + quantity: + type: number + id: + type: string + title: uuid + settlementId: + type: string + title: uuid + createdAt: + type: string + format: date-time + title: ISO Date String + updatedAt: + type: string + format: date-time + title: ISO Date String + externalSettlementId: + type: string + minLength: 1 + required: + - onChainTxId + - currency + - id + - settlementId + - createdAt + - updatedAt + - externalSettlementId + V1ReservedDeallocationOrErrorPayload: + title: V1ReservedDeallocationOrErrorPayload + oneOf: + - $ref: '#/components/schemas/V1ErrorPayload' + - $ref: '#/components/schemas/V1ReservedRetriableDeallocationOutput' + V1ReservedRetriableDeallocationOutput: + title: V1ReservedRetriableDeallocationOutput + type: object + properties: + deallocation: + $ref: '#/components/schemas/V1ReservedRetriableAllocationOutput' + required: + - deallocation + V1ReservedRetriableAllocationOutput: + title: V1ReservedRetriableAllocationOutput + type: object + properties: + id: type: string - description: User's public key in ASCII armored format. Only required for BitGo MPC keys. - backupGPGPublicKey: + title: uuid + amount: + $ref: '#/components/schemas/PositiveAllocationAmount' + connectionId: type: string - description: Backup public key in ASCII armored format (may be managed by user or KRS). Only required for BitGo MPC keys. - isMPCv2: + title: uuid + clientExternalId: + type: string + minLength: 1 + partnerExternalId: + type: string + minLength: 1 + initiatedBy: + type: string + minLength: 1 + notes: + type: string + minLength: 1 + createdAt: + type: string + format: date-time + title: ISO Date String + updatedAt: + type: string + format: date-time + title: ISO Date String + retriable: type: boolean - description: Whether a key or wallet is using the Multi-Party Computation version 2 protocol. Optional field. - CreatePolicyRule: - type: object - properties: - coin: + enum: + - true + reason: type: string - example: zrx - description: | - If set, the rule will only apply to the given coin or ERC20 token in an - Ethereum wallet. It is generally recommended to not set a coin for policy rules of the following types: - 'advancedWhitelist', 'allTx', 'coinAddressWhitelist', 'coinAddressBlacklist', 'webhook'. - id: + minLength: 1 + status: type: string - description: The id of the rule, must be unique among rules in the policy - type: - $ref: '#/components/schemas/CreatePolicyRuleTriggers' - condition: - $ref: '#/components/schemas/PolicyRuleUpdateConditions' - action: - $ref: '#/components/schemas/PolicyRuleActions' + enum: + - reserved required: - id - - type - - action - CreatePolicyRuleTriggers: - type: string - enum: - - advancedWhitelist - - allTx - - allTxNoFiat - - coinAddressWhitelist - - coinAddressBlacklist - - velocityLimit - - webhook - description: What causes this rule to trigger - CreateSendLabel: + - amount + - connectionId + - clientExternalId + - initiatedBy + - createdAt + - updatedAt + - retriable + - reason + - status + PositiveAllocationAmount: + title: PositiveAllocationAmount + oneOf: + - $ref: '#/components/schemas/PositiveCurrencyAmount' + - $ref: '#/components/schemas/PositiveBigNumberCurrencyAmount' + PositiveCurrencyAmount: + title: PositiveCurrencyAmount type: object properties: - coin: - $ref: '#/components/schemas/Coin' - address: - $ref: '#/components/schemas/AddressString3' - enterpriseId: - $ref: '#/components/schemas/Id' - label: + currency: + type: string + minLength: 1 + quantity: type: string - maxLength: 250 required: - - coin - - address - - enterpriseId - - label - CreateSignatureShareRequest: + - currency + - quantity + PositiveBigNumberCurrencyAmount: + title: PositiveBigNumberCurrencyAmount type: object properties: - signatureShare: - allOf: - - $ref: '#/components/schemas/SignatureShare' - description: A user-provided share to be used in the ECDSA or EDDSA MPC signing flow. Please use signatureShares instead - signatureShares: - type: array - items: - $ref: '#/components/schemas/SignatureShare' - description: User-provided shares to be used in the ECDSA or EDDSA MPC signing flow. - signerShare: + currency: type: string - description: | - An openPGP ascii armored message (encrypted to the known HSM public key) containing the - previous signer’s offset secret share as a 128 character hex string (64 bytes) consisting of - the new offset “u” private component from the user [or backup] new offset Y-share as a 64 character - hex string (32 bytes) concatenated with the new offset “chaincode” component of the new offset Y-share - as a 64 character hex string (32 bytes). Must be provided when uploading an R share. - userPublicGpgKey: + minLength: 1 + quantity: type: string - description: User’s public key of the gpg key. - CreateWallet: + required: + - currency + - quantity + V1DeallocationReleasedWithErrorPostPayload: + title: V1DeallocationReleasedWithErrorPostPayload + allOf: + - type: object + properties: {} + - $ref: '#/components/schemas/V1DeallocationReleasedPayload' + - $ref: '#/components/schemas/V1ErrorPayload' + V1DeallocationReleasedPayload: + title: V1DeallocationReleasedPayload type: object properties: - coinSpecific: - $ref: '#/components/schemas/WalletCreateCoinSpecific' - enterprise: - allOf: - - $ref: '#/components/schemas/Id' - description: This is required for Ethereum wallets since they can only be created as part of an enterprise. - keys: - allOf: - - $ref: '#/components/schemas/Keys' - description: This is required for all wallets where the client supplies the keys to be used. The only case where this is not required is when the type is set to 'custodial'. - keySignatures: - type: object - properties: - backup: - type: string - description: a signature of the backup pub key using the user key (useful for change address verification) - bitgo: - type: string - description: a signature of the bitgo pub key using the user key (useful for change address verification) - label: - $ref: '#/components/schemas/WalletLabel' - multisigType: - $ref: '#/components/schemas/WalletMultisigType' - address: - $ref: '#/components/schemas/WalletCustomAddress' - m: - allOf: - - $ref: '#/components/schemas/NumSignatures' - description: This is required for all wallets where the client supplies the keys to be used. The only case where this is not required is when the type is set to 'custodial'. - 'n': - allOf: - - $ref: '#/components/schemas/NumKeychains' - description: This is required for all wallets where the client supplies the keys to be used. The only case where this is not required is when the type is set to 'custodial'. - tags: - type: array - items: - $ref: '#/components/schemas/Id' - type: - $ref: '#/components/schemas/WalletTypePublic' - walletVersion: - type: integer - default: 1 - description: (ETH only) Specify the wallet creation contract version used when creating a wallet contract. Use 0 for the old wallet creation, 1 for the new wallet creation, where it is only deployed upon receiving funds. 2 for wallets with the same functionality as v1 but with NFT support. 3 for MPC wallets. 4 is same as v2 but with some changes related to network identifier and encoding of tx data. v4 is applicable for Arbitrum, Optimism, ZkSync, and other EVM-compatible chains that we will onboard in the future. 5 for MPC MPCv2 wallets. 6 for EVM MPCv2 wallets with receive addresses. - minimum: 0 - maximum: 6 - eip1559: - type: object - description: '(ETH walletVersion: 0 wallets only) Specify eip1559 fee parameters in wallet creation transactions.' - properties: - maxPriorityFeePerGas: - type: string - description: Max priority tip price for EIP1559 transactions. Only for ETH and ERC20 tokens. - maxFeePerGas: - type: string - description: Max total gasPrice for EIP1559 transactions. Only for ETH and ERC20 tokens. - required: - - maxPriorityFeePerGas - - maxFeePerGas + deallocation: + $ref: '#/components/schemas/V1ReleasedAllocation' required: - - label - CustomChangeKeySignatures: + - deallocation + V1ReleasedAllocation: + title: V1ReleasedAllocation type: object properties: - user: - type: string - backup: + id: type: string - bitgo: + title: uuid + amount: + $ref: '#/components/schemas/PositiveAllocationAmount' + connectionId: type: string - description: | - Signatures for the keys which will be used to derive custom change addresses. - - **Note:** These signatures may only be set once for each wallet and are not modifiable after being set. - DefaultChangeAddressType: - type: string - example: p2wsh - enum: - - p2sh - - p2shP2wsh - - p2wsh - - p2tr - - p2trMusig2 - - default - description: | - (UTXO only) The default script type to use for change for this wallet. Per transaction, you override the default with the 'changeAddressType' parameter. If 'default' is provided, it will clear the 'changeAddressType' default on the wallet. Note that each UTXO coin has different address types available. For example, Only BTC supports 'p2tr'. - DomesticWireBankAccount: - title: Domestic Wire Bank Account - type: object - description: | - An external bank account. 'routingNumber' must be set for US bank accounts. - 'swiftCode' must be set for banks outside the US. - properties: - accountNumber: - description: Bank account number or IBAN. + title: uuid + clientExternalId: type: string minLength: 1 - maxLength: 34 - example: 114584906 - enterpriseId: - $ref: '#/components/schemas/Id' - address: - type: string - example: 2390 El Camino Real, Palo Alto, CA 94306 - address1: - type: string - example: 2390 El Camino Real - address2: - type: string - example: Palo Alto, CA 94306 - address3: - type: string - example: '' - name: + partnerExternalId: type: string - example: America California Bank - ownerName: + minLength: 1 + initiatedBy: type: string - example: Donald E. Knuth - ownerAddress: + minLength: 1 + notes: type: string - example: 2390 El Camino Real, Palo Alto, CA 94306 - owner: - type: object - description: Bank account owner - properties: - name: - type: string - example: Donald E. Knuth - address1: - type: string - example: Computer Science Department - address2: - type: string - example: Stanford University - address3: - type: string - example: Stanford, CA 94305-9045 - required: - - name - - address1 - routingNumber: - description: US bank routing number. Required for domestic wire transfers within the US. + minLength: 1 + createdAt: type: string - example: '129131673' - minLength: 9 - maxLength: 9 - pattern: ^[0-9]+$ - shortCountryCode: - $ref: '#/components/schemas/ShortCountryCode' - type: - $ref: '#/components/schemas/BankAccountType' - currency: - $ref: '#/components/schemas/BankAccountCurrency' - furtherCreditTo: + format: date-time + title: ISO Date String + updatedAt: type: string - example: Donald E. Knuth - intermediaryBankName: + format: date-time + title: ISO Date String + retriable: + type: boolean + enum: + - false + status: type: string - example: America California Bank - intermediaryBankId: + enum: + - released + reason: type: string - example: 59cd72485007a239fb00282ed480da1f + minLength: 1 required: - - accountNumber - - address1 - - shortCountryCode - - name - - owner - - enterpriseId - - routingNumber - DotPaymentIntent1: - title: DOT Payment Intent - allOf: - - type: object - properties: - proxy: - $ref: '#/components/schemas/DotProxy' - owner: - $ref: '#/components/schemas/optionalString' - required: - - proxy - - owner - - $ref: '#/components/schemas/PaymentIntent1' - - $ref: '#/components/schemas/DotAccountBaseBuildOptions' - EnterpriseUser: + - id + - amount + - connectionId + - clientExternalId + - initiatedBy + - createdAt + - updatedAt + - retriable + - status + - reason + V1DeallocationClearedPostPayload: + title: V1DeallocationClearedPostPayload + type: object + properties: + deallocation: + $ref: '#/components/schemas/V1ClearedAllocation' + required: + - deallocation + V1ReservedDeallocationsPostPayload: + title: V1ReservedDeallocationsPostPayload + type: object + properties: + deallocation: + $ref: '#/components/schemas/V1ReservedAllocationOutput' + required: + - deallocation + V1ReservedAllocationOutput: + title: V1ReservedAllocationOutput + oneOf: + - $ref: '#/components/schemas/V1ReservedRetriableAllocationOutput' + - $ref: '#/components/schemas/V1ReservedNonRetriableAllocationOutput' + V1ReservedNonRetriableAllocationOutput: + title: V1ReservedNonRetriableAllocationOutput type: object properties: id: - $ref: '#/components/schemas/Id' - username: - $ref: '#/components/schemas/Email' - firstName: type: string - description: User first name - example: Jane - lastName: + title: uuid + amount: + $ref: '#/components/schemas/PositiveAllocationAmount' + connectionId: type: string - description: User last name - example: Doe - fullName: + title: uuid + clientExternalId: type: string - description: User full name - example: Jane Doe - isActive: - type: boolean - email: - type: object - properties: - email: - $ref: '#/components/schemas/Email' - verified: - type: boolean - description: User has verified their email - verified: - type: boolean - description: User has verified their email - identity: - type: object - properties: - kyc: - type: object - properties: - hasVideoID: - type: boolean - example: true - description: User has done initial video ID - overallState: - $ref: '#/components/schemas/UserKycState' - required: - type: boolean - example: true - description: Sanction screening is required for this User - EnterpriseUsersResponse: - type: object - properties: - adminUsers: - type: array - items: - $ref: '#/components/schemas/EnterpriseUser' - nonAdminUsers: - type: array - items: - $ref: '#/components/schemas/EnterpriseUser' - count: - type: integer - description: The total number of Users returned. - incomplete: + minLength: 1 + partnerExternalId: + type: string + minLength: 1 + initiatedBy: + type: string + minLength: 1 + notes: + type: string + minLength: 1 + createdAt: + type: string + format: date-time + title: ISO Date String + updatedAt: + type: string + format: date-time + title: ISO Date String + retriable: type: boolean - description: Set to true if the Enterprise has at least 500 v1 or v2 wallets. If there are more than 500 wallets (either v1 or v2) it could mean that some Wallets were not considered for finding all Users. - ErrorPayload: - type: object - properties: - error: + enum: + - false + reason: type: string - errorName: + minLength: 1 + status: type: string + enum: + - reserved required: - - error - - errorName - EstimateTransactionFees: - title: Bitcoin + - id + - amount + - connectionId + - clientExternalId + - initiatedBy + - createdAt + - updatedAt + - retriable + - reason + - status + V1ClearedAllocation: + title: V1ClearedAllocation type: object properties: - feePerKb: - type: integer - description: (BTC only) The fee (in base units) per kilobyte (or virtual kilobyte) required to confirm a transaction on 2 or more blocks. - example: 15902 - cpfpFeePerKb: - type: integer - description: | - (BTC only) Child-Pays-For-Parent (CPFP) fee (in base units) per kilobyte (or virtual kilobyte). Includes the fees for all unconfirmed transactions dependent on the CPFP transaction. - numBlocks: - type: integer - description: | - (BTC only) The number of blocks required to confirm a transaction. You can use 'numBlocks' to estimate the fee rate by targeting confirmation within a given number of blocks. If both 'feeRate' and 'numBlocks' are absent, the transaction defaults to 2 blocks for confirmation. - - Note: The 'maxFeeRate' limits the fee rate generated by 'numBlocks'. - example: 2 - confidence: - type: integer - minimum: 0 - maximum: 100 - description: (BTC only) The confidence (as a percentage) in the accuracy of the fee estimate. - example: 80 - feeByBlockTarget: - type: object - description: | - (UTXO only) Custom multiplier to the 'feeRate'. The resulting fee rate is limited by the 'maxFeeRate'. For replace-by-fee (RBF) transactions (that include 'rbfTxIds'), the 'feeMultiplier' must be greater than 1, since it's an absolute fee multiplier to the transaction being replaced. - - Note: The 'maxFeeRate' limits the fee rate generated by 'feeMultiplier'. - example: - '1': 50536 - '2': 15902 - '3': 1579 + id: + type: string + title: uuid + amount: + $ref: '#/components/schemas/PositiveAllocationAmount' + connectionId: + type: string + title: uuid + clientExternalId: + type: string + minLength: 1 + partnerExternalId: + type: string + minLength: 1 + initiatedBy: + type: string + minLength: 1 + notes: + type: string + minLength: 1 + createdAt: + type: string + format: date-time + title: ISO Date String + updatedAt: + type: string + format: date-time + title: ISO Date String + retriable: + type: boolean + enum: + - false + status: + type: string + enum: + - cleared required: - - feePerKb - - numBlocks - EstimateTransactionFeesAccountCoin: - title: Account-based + - id + - amount + - connectionId + - clientExternalId + - initiatedBy + - createdAt + - updatedAt + - retriable + - status + PositiveBNCurrencyAmount: + title: PositiveBNCurrencyAmount type: object properties: - feeEstimate: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: fee estimate for a transaction for the given account-based coin, denominated in the base units of that coin (i.e. Drops for XRP, Stroops for XLM, etc) + currency: + $ref: '#/components/schemas/BNSupportedCurrency' + quantity: + type: string required: - - feeEstimate - EstimateTransactionFeesAlgo: - title: ALGO + - currency + - quantity + V1ConnectionPayload: + title: V1ConnectionPayload type: object properties: - feeRate: - description: Calculated by transaction size. Fee rate is in microAlgo (base unit). - type: integer - example: 1 - minimumFee: - description: Always 1000. - type: integer - default: 1000 - example: 1000 + connection: + $ref: '#/components/schemas/V1ConnectionOutput' required: - - feeRate - - minimumFee - EstimateTransactionFeesEth: - title: ETH + - connection + V1ConnectionOutput: + title: V1ConnectionOutput type: object properties: - feeEstimate: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: fee estimate for a transaction for the given account-based coin, denominated in base units (i.e. Wei) - gasLimitEstimate: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: The amount of gas that the transaction will use, if recipient is provided in the request - minGasPrice: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: minimum gas price that can be provided in base units - minGasLimit: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: minimum gas limit that can be provided in base units - maxGasLimit: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: maximum gas limit that can be provided in base units - minGasIncreaseBy: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: gas price must not be increased by less than this after being introduced to the network - eip1559: - allOf: - - $ref: '#/components/schemas/EstimateTransactionFeesEthEip1559' - description: EIP 1559 fee estimates + id: + type: string + title: uuid + name: + type: string + minLength: 1 + clientId: + type: string + title: uuid + partnerId: + type: string + title: uuid + networkAccountId: + type: string + title: uuid + createdAt: + type: string + format: date-time + title: ISO Date String + updatedAt: + type: string + format: date-time + title: ISO Date String + active: + type: boolean + proof: + type: string + minLength: 1 + nonce: + type: string + minLength: 1 + partnersConnectionId: + nullable: true + type: string + minLength: 1 + partnersClientId: + nullable: true + type: string + minLength: 1 + initialized: + type: boolean required: - - feeEstimate - - minGasPrice - - minGasLimit - - maxGasLimit - - minGasIncreaseBy - EstimateTransactionFeesEthEip1559: + - id + - name + - clientId + - partnerId + - networkAccountId + - createdAt + - updatedAt + - active + - proof + - nonce + - partnersConnectionId + - partnersClientId + - initialized + ConnectionKey: + title: ConnectionKey + oneOf: + - $ref: '#/components/schemas/TokenConnectionKey' + - $ref: '#/components/schemas/TokenAndSignatureConnectionKey' + - $ref: '#/components/schemas/ApiKeyAndSecretConnectionKey' + - $ref: '#/components/schemas/ClearLoopConnectionKey' + TokenConnectionKey: + title: TokenConnectionKey type: object properties: - baseFee: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: Block base fees, in base units (i.e. Wei), per gas. Zeroes are returned for pre-EIP-1559 blocks - gasUsedRatio: - description: Block gas used ratio. Calculated as the ratio of gasUsed and gasLimit + schema: type: string - safeLowMinerTip: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: 25th percentile of the tips spent in the last block - normalMinerTip: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: 35th percentile of the tips spent in the last block - standardMinerTip: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: 50th percentile of the tips spent in the last block - fastestMinerTip: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: 75th percentile of the tips spent in the last block - ludicrousMinerTip: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: 97th percentile of the tips spent in the last block + enum: + - token + connectionToken: + type: string + minLength: 1 required: - - baseFee - - gasUsedRatio - EstimateTransactionFeesTrx: - title: TRX + - schema + - connectionToken + TokenAndSignatureConnectionKey: + title: TokenAndSignatureConnectionKey type: object properties: - fee: - description: Maximum fee for a payment transaction, denominated in base units (i.e. sun). It varies for TRX and TRC20 Token based on the coin parameter - type: integer - example: 100000000 - newAccountFee: - description: Fee for wallet initialization - type: integer - example: 100000000 - netFee: - description: Fee rate per unit of tx size. Not used currently ('fee' is a maximum limit, the network charges the cost of the transaction) - type: integer - example: 1000 + schema: + type: string + enum: + - tokenAndSignature + connectionToken: + type: string + minLength: 1 + signature: + type: string + minLength: 1 required: - - fee - - newAccountFee - - netFee - ExpressAccelerateTxRequest: - type: object - properties: - cpfpTxIds: - type: array - description: | - txids of the transactions to bump - - **Notes**: - Each target unconfirmed transaction must be sending funds to the calling wallet. - Accepts only a single txid at this stage. - items: - $ref: '#/components/schemas/TxId' - cpfpFeeRate: - type: integer - description: Desired effective feerate of the bumped transactions and the CPFP transaction in satoshi per kilobyte - maxFee: - type: integer - description: | - Maximum allowed fee for the CPFP transaction in satoshi - - **Note**: - A CPFP transaction accelerates the target transactions and all of the unconfirmed transactions the target transactions depends on. - As it can be difficult to discern the complete transaction ancestry at times, we recommend limiting the total fee for each CPFP attempt as a safety net to prevent CPFP transactions that exceed your cost expectations. - rbfTxIds: - type: array - items: - type: string - description: The list of transactions to accelerate using Replace-By-Fee (RBF) for UTXO coins (currently accelerating only one tx is supported). - feeMultiplier: - allOf: - - type: number - minimum: 1 - - example: 1.5 - description: | - (UTXO only) Custom multiplier to the 'feeRate'. The resulting fee rate is limited by the 'maxFeeRate'. For replace-by-fee (RBF) transactions (that include 'rbfTxIds'), the 'feeMultiplier' must be greater than 1, since it's an absolute fee multiplier to the transaction being replaced. - - Note: The 'maxFeeRate' limits the fee rate generated by 'feeMultiplier'. - ExpressAcceptShareRequest: + - schema + - connectionToken + - signature + ApiKeyAndSecretConnectionKey: + title: ApiKeyAndSecretConnectionKey type: object properties: - userPassword: + schema: type: string - description: User's password to decrypt the shared wallet (required if the wallet was shared with spend permission) - newWalletPassphrase: + enum: + - apiKeyAndSecret + apiKey: type: string - description: New wallet passphrase for saving the shared wallet private key If not provided and the wallet was shared with spend permission, then the userPassword is used - overrideEncryptedPrv: + minLength: 1 + apiSecret: type: string - description: Encrypted private key received out-of-band - ExpressAcceptShareResponse: + minLength: 1 + required: + - schema + - apiKey + - apiSecret + ClearLoopConnectionKey: + title: ClearLoopConnectionKey type: object properties: - state: + schema: type: string - allOf: - - $ref: '#/components/schemas/WalletShareState1' - description: State of the share - changed: - type: boolean - description: Indicates if the share changed - ExpressCalculateMinerFeeInfoRequest: - type: object - properties: - feeRate: - allOf: - - $ref: '#/components/schemas/IntegerOrString' - - example: 10000 - description: | - Custom minimum fee rate in a coin's base unit per kilobyte (or virtual kilobyte)--for example, satoshis per kvByte or microAlgos per kByte. If the applied 'feeRate' does not meet a coin's required minimum transaction fee amount, the minimum is still applied (for example, 1000 sat/kvByte or a flat 1000 microAlgos). - nP2shInputs: - type: integer - description: Number of P2SH (multi-signature) inputs - example: 2 - nP2pkhInputs: - type: integer - description: Number of P2PKH (single-signature) inputs - example: 0 - nP2shP2wshInputs: - type: integer - description: Number of P2SH_P2WSH (wrapped segwit multi-signature) inputs - example: 1 - nOutputs: - type: integer - description: Number of outputs - example: 2 + enum: + - clearloop + apiKey: + type: string + minLength: 1 + apiSecret: + type: string + minLength: 1 + clientAccountId: + type: string + minLength: 1 + companyRegistrationNumber: + type: string + minLength: 1 required: - - nOutputs - ExpressCalculateMinerFeeInfoResponse: - type: object - properties: - size: - type: integer - description: Estimated size of the transaction in bytes - example: 776 - fee: - type: integer - description: Estimated fee in base units for the transaction - example: 38800 - feeRate: - type: integer - description: The fee rate in base units per kB used to estimate the fee for the transaction - example: 50000 - ExpressCanonicalAddressRequest: + - schema + - apiKey + - apiSecret + - clientAccountId + - companyRegistrationNumber + V1ConnectionsGetOkPayload: + title: V1ConnectionsGetOkPayload type: object properties: - address: - type: string - description: Address to canonicalize - version: - oneOf: - - type: string - default: base58 - description: Version of the desired BCH address. - enum: - - base58 - - bech32 - - type: integer - description: Version of the desired LTC address. - enum: - - 1 - - 2 - ExpressConsolidateAccountRequest: - type: object - properties: - consolidateAddresses: - description: | - Optional: restrict the consolidation to the specified receive addresses. If not provided, will consolidate the - funds from all receive addresses up to 500 addresses. + connections: type: array items: - type: string - walletPassphrase: - description: | - Passphrase to decrypt the user key on the wallet. - Required if External Signer is not used to sign the transactions. - type: string - prv: - description: | - The un-encrypted user private key in string form. - If the key is a JSON object it must be stringified. - Required if 'walletPassphrase' is not available or encrypted private key is not stored by BitGo. - type: string - apiVersion: - description: | - The Trasaction Request API version to use for MPC EdDSA Hot Wallets. - Defaults based on the wallet type and asset curve. - type: string - enum: - - full - - lite - ExpressConsolidateUnspentsRequest: + type: object + properties: + id: + type: string + title: uuid + name: + type: string + minLength: 1 + clientId: + type: string + title: uuid + partnerId: + type: string + title: uuid + networkAccountId: + type: string + title: uuid + createdAt: + type: string + format: date-time + title: ISO Date String + updatedAt: + type: string + format: date-time + title: ISO Date String + active: + type: boolean + proof: + type: string + minLength: 1 + nonce: + type: string + minLength: 1 + partnersConnectionId: + nullable: true + type: string + minLength: 1 + partnersClientId: + nullable: true + type: string + minLength: 1 + initialized: + type: boolean + required: + - id + - name + - clientId + - partnerId + - networkAccountId + - createdAt + - updatedAt + - active + - proof + - nonce + - partnersConnectionId + - partnersClientId + - initialized + required: + - connections + V1ClientsPostOkPayload: + title: V1ClientsPostOkPayload type: object properties: - walletPassphrase: - type: string - description: Passphrase to decrypt the user key on the wallet - xprv: - type: string - description: Private key in string form, if walletPassphrase is not available - feeRate: - allOf: - - $ref: '#/components/schemas/IntegerOrString' - - example: 10000 - description: | - Custom fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. - - If the 'feeRate' is less than the minimum required network fee, then the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000 microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is usually 4.5 times the open ledger fee. - - Note: The 'feeRate' overrides the 'maxFeeRate' and 'minFeeRate'. - maxFeeRate: - allOf: - - $ref: '#/components/schemas/IntegerOrIntegerString' - - example: 20000 - description: | - (BTC only) The maximum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. The 'maxFeeRate' limits the fee rate generated by both 'feeMultiplier' and 'numBlocks'. - - Note: The 'feeRate' overrides the 'maxFeeRate'. - maxFeePercentage: - type: integer - description: Maximum relative portion that can be spent towards fees - feeTxConfirmTarget: - type: integer - description: Block target for fee estimation - bulk: - type: boolean - description: Build multiple transactions at the same time. This enables you to increase the maximum number of unspents on the 'limit' parameter up to 2,000. If true, you must pass the 'txFormat' as 'psbt' and you can't pass the 'targetAddress' or 'numUnspentsToMake' parameters. - minValue: - allOf: - - $ref: '#/components/schemas/IntegerOrIntegerString' - description: Minimum value of unspents to use in base units (e.g. satoshis). Can be used to skip very small unspents when consolidating at higher fee rates. For doge, only string is allowed. - maxValue: - allOf: - - $ref: '#/components/schemas/IntegerOrIntegerString' - description: | - Maximum value of unspents to use in base units (e.g. satoshis). Should be used to prevent larger unspents from being consolidated needlessly, and that some funds remain available for spending while the consolidation transactions are in flight. For doge, only string is allowed. - minHeight: - type: integer - description: Minimum height of unspents on the block chain to use - minConfirms: - type: integer - description: Minimum confirmation threshold for external inputs - enforceMinConfirmsForChange: - type: boolean - description: Flag for enforcing minConfirms for change inputs - limit: - type: integer - description: Maximum number of unspents to use in the transaction - numUnspentsToMake: - type: integer - description: Number of new unspents to make - targetAddress: - type: string - description: address to use for generated outputs. Must be wallet address. - txFormat: - $ref: '#/components/schemas/UtxoTransactionFormat' - ExpressCreateKeychainResponse: + client: + $ref: '#/components/schemas/V1ClientsOutput' + required: + - client + V1ClientsOutput: + title: V1ClientsOutput type: object - description: Generated key pair properties: - prv: + id: type: string - description: Private key - example: xprv9s21ZrQH143K2Y4th5Bn8sCRCMNjVr3sm9TLj9yw9SRKxYbJdB18bpc7cZFHKKWKuWZUBATfbDVE26u7w2iUhmWD8Gsp8UkaemhLEfopC35 - pub: - $ref: '#/components/schemas/Pub' - ExpressDecryptRequest: - type: object - properties: - input: + title: uuid + enterpriseId: type: string - description: Ciphertext to decrypt - password: + minLength: 1 + trustOrg: type: string - description: Key which is used for decryption - ExpressDecryptResponse: - type: object - properties: - decrypted: + walletId: type: string - ExpressEncryptRequest: - type: object - properties: - input: + minLength: 1 + createdAt: type: string - description: Plaintext message which should be encrypted - password: + format: date-time + title: ISO Date String + updatedAt: type: string - description: Password which should be used to encrypt message - ExpressEncryptResponse: + format: date-time + title: ISO Date String + balanceAlertLastSent: + type: string + required: + - id + - enterpriseId + - trustOrg + - walletId + - createdAt + - updatedAt + AccountBalanceRecord: + title: AccountBalanceRecord + type: object + additionalProperties: + type: object + properties: + available: + type: string + held: + type: string + required: + - available + - held + V1ClientBalancesGetPayload: + title: V1ClientBalancesGetPayload type: object properties: - encrypted: + clientId: type: string - ExpressFanOutUnspentsRequest: + title: uuid + balances: + $ref: '#/components/schemas/AccountBalanceRecord' + networkBalances: + $ref: '#/components/schemas/NetworkAccountBalanceRecordForClient' + required: + - clientId + - balances + - networkBalances + NetworkAccountBalanceRecordForClient: + title: NetworkAccountBalanceRecordForClient + type: object + additionalProperties: + type: object + properties: + partnerId: + type: string + title: uuid + partnersConnectionId: + type: string + minLength: 1 + name: + type: string + minLength: 1 + balances: + $ref: '#/components/schemas/AccountBalanceRecord' + partnerInstitutionIdentifier: + type: string + minLength: 1 + required: + - partnerId + - partnersConnectionId + - name + - balances + V1PartnerBalancesGetPayload: + title: V1PartnerBalancesGetPayload type: object properties: - walletPassphrase: - type: string - description: Passphrase to decrypt the user key on the wallet - xprv: - type: string - description: Private key in string form, if walletPassphrase is not available - feeRate: - allOf: - - $ref: '#/components/schemas/IntegerOrString' - - example: 10000 - description: | - Custom fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. - - If the 'feeRate' is less than the minimum required network fee, then the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000 microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is usually 4.5 times the open ledger fee. - - Note: The 'feeRate' overrides the 'maxFeeRate' and 'minFeeRate'. - maxFeeRate: - allOf: - - $ref: '#/components/schemas/IntegerOrIntegerString' - - example: 20000 - description: | - (BTC only) The maximum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. The 'maxFeeRate' limits the fee rate generated by both 'feeMultiplier' and 'numBlocks'. - - Note: The 'feeRate' overrides the 'maxFeeRate'. - maxFeePercentage: - type: integer - description: Maximum relative portion that can be spent towards fees - feeTxConfirmTarget: - type: integer - description: Block target for fee estimation - minValue: - allOf: - - $ref: '#/components/schemas/IntegerOrIntegerString' - description: Minimum value of unspents to use in base units (e.g. satoshis). For doge, only string is allowed. - maxValue: - allOf: - - $ref: '#/components/schemas/IntegerOrIntegerString' - description: Maximum value of unspents to use in base units (e.g. satoshis). For doge, only string is allowed. - minHeight: - type: integer - description: Minimum height of unspents on the block chain to use - minConfirms: - type: integer - description: Minimum confirmation threshold for external inputs - enforceMinConfirmsForChange: - type: boolean - description: Flag for enforcing minConfirms for change inputs - unspents: - type: array - items: + networkBalances: + $ref: '#/components/schemas/NetworkAccountBalanceRecordForPartner' + balances: + $ref: '#/components/schemas/AccountBalanceRecord' + required: + - networkBalances + NetworkAccountBalanceRecordForPartner: + title: NetworkAccountBalanceRecordForPartner + type: object + additionalProperties: + type: object + properties: + clientId: type: string - description: Unspents to fan out in the transaction. Mutually exclusive with maxNumInputsToUse. - maxNumInputsToUse: - type: integer - description: Maximum number of unspents to use in the transaction. Mutually exclusive with unspents. - numUnspentsToMake: - type: integer - description: Number of new unspents to make - targetAddress: - type: string - description: address to use for generated outputs. Must be wallet address. - txFormat: - $ref: '#/components/schemas/UtxoTransactionFormat' - ExpressGenerateWalletRequest: + title: uuid + partnerId: + type: string + title: uuid + partnersConnectionId: + type: string + minLength: 1 + balances: + $ref: '#/components/schemas/AccountBalanceRecord' + required: + - clientId + - partnerId + - partnersConnectionId + - balances + V1AllocationGetPayload: + title: V1AllocationGetPayload type: object properties: - label: - $ref: '#/components/schemas/WalletLabel' - multisigType: + allocation: + $ref: '#/components/schemas/V1AllocationGetOutput' + required: + - allocation + V1AllocationGetOutput: + title: V1AllocationGetOutput + type: object + properties: + id: type: string - enum: - - onchain - - tss - - blsdkg - description: If absent, BitGo uses the default wallet type for the asset. - type: + title: uuid + amount: + $ref: '#/components/schemas/PositiveAllocationAmount' + connectionId: type: string - enum: - - hot - - cold - - custodial - description: The type of wallet, defined by key management and signing protocols. 'hot' and 'cold' are both self-managed wallets. If absent, defaults to 'hot'. - passphrase: + title: uuid + clientExternalId: type: string - description: Passphrase to be used to encrypt the user key on the wallet - userKey: + minLength: 1 + partnerExternalId: type: string - description: User provided public key - backupXpub: - $ref: '#/components/schemas/Pub' - backupXpubProvider: + minLength: 1 + initiatedBy: type: string - enum: - - dai - description: Optional key recovery service to provide and store the backup key - enterprise: - allOf: - - $ref: '#/components/schemas/Id' - description: Enterprise id. This is required for Ethereum wallets since they can only be created as part of an enterprise - disableTransactionNotifications: - type: boolean - description: Flag for disabling wallet transaction notifications - passcodeEncryptionCode: + minLength: 1 + notes: type: string - description: The passphrase used for decrypting the encrypted wallet passphrase during wallet recovery - coldDerivationSeed: + minLength: 1 + createdAt: type: string - description: Seed that derives an extended user key or common keychain for a cold wallet. - gasPrice: - type: integer - description: Gas price to use when deploying an Ethereum wallet - disableKRSEmail: - type: boolean - description: Flag for preventing KRS from sending email after creating backup key - walletVersion: - type: integer - default: 1 - description: (ETH only) Specify the wallet creation contract version used when creating a wallet contract. Use 0 for the old wallet creation, 1 for the new wallet creation, where it is only deployed upon receiving funds. 2 for wallets with the same functionality as v1 but with NFT support. 3 for MPC wallets. - minimum: 0 - maximum: 3 - isDistributedCustody: + format: date-time + title: ISO Date String + updatedAt: + type: string + format: date-time + title: ISO Date String + retriable: type: boolean - description: True, if the wallet type is a distributed-custodial. If passed, you must also pass the 'enterprise' parameter. - bitgoKeyId: - allOf: - - $ref: '#/components/schemas/Id' - description: BitGo key ID for self-managed cold MPC wallets. - commonKeychain: + reason: + nullable: true type: string - description: Common keychain for self-managed cold MPC wallets. + minLength: 1 + status: + $ref: '#/components/schemas/AllocationStatus' + type: + $ref: '#/components/schemas/AllocationType' required: - - label - - enterprise - ExpressGenerateWalletResponse: + - id + - amount + - connectionId + - clientExternalId + - initiatedBy + - createdAt + - updatedAt + - retriable + - reason + - status + - type + AllocationStatus: + title: AllocationStatus + type: string + enum: + - cleared + - released + - reserved + AllocationType: + title: AllocationType + type: string + enum: + - allocation + - deallocation + V1ReservedAllocationOrErrorPayload: + title: V1ReservedAllocationOrErrorPayload oneOf: - - $ref: '#/components/schemas/ExpressWallet' - - title: Wallet (including keychains) - type: object - description: Wallet with user, bitgo and backup keychains (when 'includeKeychains' query param is 'true'). - properties: - wallet: - $ref: '#/components/schemas/ExpressWallet' - encryptedWalletPassphrase: - type: string - description: Encrypted wallet passphrase. Used only with 'passcodeEncryptionCode'. You can use the encrypted wallet passphrase in the BitGo web app during password recovery for the wallet. - example: '"{\"iv\":\"IpwAFi0+TDsLJCV4pg8T6w==\",\"v\":1,\"iter\":10000,\"ks\":256,\"ts\":64,\"mode\":\"ccm\",\"adata\":\"\",\"cipher\":\"aes\",\"salt\":\"3lkIc47rjzo=\",\"ct\":\"/m6JL/ttTJWXNmHm+dzI\"}"' - userKeychain: - type: object - description: User keychain - properties: - id: - $ref: '#/components/schemas/Id' - encryptedPrv: - type: string - description: User private key encrypted with the user passphrase - example: '{"iv":"TEd5eouui6hKashuVi5WHQ==","v":1,"iter":10000,"ks":256,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"dHu4PWoX2M8=","ct":"fYr9Y/6kU40AosONkV0xi+fWsyhpYSew0L2YKH/qEZjOlxeDjpC2aTJ0Yc/KdmXheUGolcAxGSx93ykN21Zim1DGc/UGa25IUA/3ARgX7gBsYnYEy5e5Ol0YZYb9pa7KFeaDZSLMXrxxoahg5zL4AJsUx90Pwcg="}' - prv: - type: string - description: User private key - example: xprv9s21ZrQH143K3e1981rUcbKjJ9G57SDCDZ9HY4Sqhx5ZqMoyK1j49kAf1vuM1G9nhRr6kzqbUQb3gj5zuzrsvNRQ84tYf32EcyapRgBNpp4 - pub: - $ref: '#/components/schemas/Pub' - ethAddress: - type: string - description: Ethereum address corresponding to this keychain - example: '0xf5b7cca8621691f9dde304cb7128b6bb3d409363' - source: - type: string - description: Party that created the key - example: user - coinSpecific: - type: object - description: Coin specific key data - backupKeychain: - type: object - description: Backup keychain - properties: - id: - $ref: '#/components/schemas/Id' - prv: - type: string - description: Backup private key - example: xprv9s21ZrQH143K47iEnAFZRJz36E5ZxuEDBJETFYxJTsTVxuPc9z7oGWADUK6icX5P3ruoe244yxMt9uZ2LjWhddvnJJ4zB7zK93qBtxYrmN6 - pub: - $ref: '#/components/schemas/Pub' - source: - type: string - description: Party that created the key - example: backup - ethAddress: - type: string - description: Ethereum address corresponding to this keychain - example: '0xf5b7cca8621691f9dde304cb7128b6bb3d409363' - coinSpecific: - type: object - description: Coin specific key data - bitgoKeychain: - type: object - description: BitGo keychain - properties: - id: - $ref: '#/components/schemas/Id' - pub: - $ref: '#/components/schemas/Pub' - isBitGo: - type: boolean - description: Flag for identifying keychain as created by BitGo - example: true - source: - type: string - description: Party that created the key - example: bitgo - ethAddress: - type: string - description: Ethereum address corresponding to this keychain - example: '0xa487900d0de75107b1cc7ade0e2662980e5ce940' - coinSpecific: - type: object - description: Coin specific key data - warning: - type: string - description: If the backup key is held by the user, this is a message warning the user to securely backup their backup keychain. - example: Be sure to backup the backup keychain -- it is not stored anywhere else! - ExpressPingResponse: + - $ref: '#/components/schemas/V1ErrorPayload' + - $ref: '#/components/schemas/V1ReservedRetriableAllocationsPostPayload' + V1ReservedRetriableAllocationsPostPayload: + title: V1ReservedRetriableAllocationsPostPayload type: object properties: - status: - type: string - ExpressSendCoinsRequest: + allocation: + $ref: '#/components/schemas/V1ReservedRetriableAllocationOutput' + required: + - allocation + V1AllocationsReleasedWithErrorPostPayload: + title: V1AllocationsReleasedWithErrorPostPayload allOf: - type: object - properties: - address: - allOf: - - $ref: '#/components/schemas/AddressString3' - description: Destination address - amount: - allOf: - - $ref: '#/components/schemas/IntegerOrIntegerString' - description: Amount in base units (e.g. satoshi, wei, drops, stroops). For doge, only string is allowed. - walletPassphrase: - type: string - description: Passphrase to decrypt the user key on the wallet - prv: - type: string - description: Optional, private key in string form, if 'walletPassphrase' is not available or encrypted private key is not stored by BitGo. - - $ref: '#/components/schemas/BuildParams' - - type: object - properties: - data: - type: string - description: (ETH only) Optional data to pass to the transaction - hop: - type: boolean - description: (ETH, AVAXC and POLYGON) Set to true if funds to destination need to come from single sig address - tokenName: - type: string - description: Token name, defined in the BitGoJS Statics package. - ExpressSendCoinsResponse: + properties: {} + - $ref: '#/components/schemas/V1AllocationsReleasedPayload' + - $ref: '#/components/schemas/V1ErrorPayload' + V1AllocationsReleasedPayload: + title: V1AllocationsReleasedPayload type: object properties: - transfer: - allOf: - - $ref: '#/components/schemas/Transfer' - description: New transfer - txid: - type: string - description: Unique transaction identifier - tx: - oneOf: - - type: string - description: Encoded transaction hex (or base64 for XLM) - - $ref: '#/components/schemas/PsbtHex' - status: - type: string - description: Transfer status - enum: - - signed - - signed (suppressed) - - pendingApproval - ExpressSendConsolidationResponse: + allocation: + $ref: '#/components/schemas/V1ReleasedAllocation' + required: + - allocation + V1AllocationsClearedPostPayload: + title: V1AllocationsClearedPostPayload type: object properties: - success: - description: An Array of TransactionRequest or Transfers. - type: array - items: - oneOf: - - $ref: '#/components/schemas/TransactionRequestLite1' - - $ref: '#/components/schemas/TransactionRequestFull1' - - $ref: '#/components/schemas/Transfer' - failure: + allocation: + $ref: '#/components/schemas/V1ClearedAllocation' + required: + - allocation + V1ReservedNonRetriableAllocationsPostPayload: + title: V1ReservedNonRetriableAllocationsPostPayload + type: object + properties: + allocation: + $ref: '#/components/schemas/V1ReservedNonRetriableAllocationOutput' + required: + - allocation + V1AllocationsGetPayload: + title: V1AllocationsGetPayload + type: object + properties: + allocations: type: array - description: An Array of Error messages. items: - type: string + type: object + properties: + id: + type: string + title: uuid + amount: + $ref: '#/components/schemas/PositiveAllocationAmount' + connectionId: + type: string + title: uuid + clientExternalId: + type: string + minLength: 1 + partnerExternalId: + type: string + minLength: 1 + initiatedBy: + type: string + minLength: 1 + notes: + type: string + minLength: 1 + createdAt: + type: string + format: date-time + title: ISO Date String + updatedAt: + type: string + format: date-time + title: ISO Date String + retriable: + type: boolean + reason: + nullable: true + type: string + minLength: 1 + status: + $ref: '#/components/schemas/AllocationStatus' + type: + $ref: '#/components/schemas/AllocationType' + required: + - id + - amount + - connectionId + - clientExternalId + - initiatedBy + - createdAt + - updatedAt + - retriable + - reason + - status + - type required: - - success - - failure - ExpressSendManyRequest: - allOf: - - type: object + - allocations + HistoricalPrice: + type: object + required: + - time + - open + - high + - low + - close + - base_volume + - quote_volume + properties: + time: + type: string + format: date-time + open: + type: number + format: float + high: + type: number + format: float + low: + type: number + format: float + close: + type: number + format: float + base_volume: + type: number + format: float + quote_volume: + type: number + format: float + example: + time: '2014-11-07T22:19:28.578Z' + open: 576.0590066 + high: 576.0590066 + low: 575.8330204 + close: 575.978887 + base_volume: 296.23 + quote_volume: 170627.62385 + HistoricalPriceResult: + type: object + required: + - data + properties: + data: + type: object + required: + - prices + - nextBatchPrevId properties: - recipients: - type: array - items: - type: object - description: List of recipient addresses and amounts to send - properties: - address: - allOf: - - $ref: '#/components/schemas/AddressString3' - description: Destination address - amount: - allOf: - - $ref: '#/components/schemas/IntegerOrIntegerString' - description: The amount in base units (e.g. satoshis) to send. For doge, only string is allowed. - tokenName: - type: string - description: The token name. Required for MPC wallets token transactions. - example: sol:natix - tokenData: - allOf: - - $ref: '#/components/schemas/RecipientTokenData' - description: Data set to build a transaction that involves a token interaction. - description: A list of recipient addresses and amounts. Must be present but empty for CPFP transactions. - otp: - type: string - description: Two factor auth code to enable sending the transaction. Not necessary if using a long lived access token within the spending limit. - walletPassphrase: - type: string - description: | - Passphrase to decrypt the user key on the wallet. - Required if External Signer is not used to sign the transactions. - prv: + prices: + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/HistoricalPrice' + nextBatchPrevId: type: string - description: | - The un-encrypted user private key in string form. - If the key is a JSON object it must be stringified. - Required if 'walletPassphrase' is not available or encrypted private key is not stored by BitGo. - - $ref: '#/components/schemas/BuildParams' + example: + data: + prices: + BTC-USD: + - time: '2014-11-07T22:19:28.578Z' + open: 576.0590066 + high: 576.0590066 + low: 575.8330204 + close: 575.978887 + base_volume: 296.23 + quote_volume: 170627.62385 + nextBatchPrevId: a0dbb6aad06d9a37c9882231d8dc32ef + MarketDataError: + type: object + description: Market Data Error + properties: + error: + type: string + errorName: + type: string + required: + - error + - errorName + example: + errorName: backend:common:invalidArgument + error: backend:common:invalidArgument key=instrument + BlockHash: + type: string + example: 0000000000000296ed56abee6cb78e40b00c47a03d92e71dd92c4862ca636b95 + IdentityOccupation: + title: IdentityOccupation + type: string + enum: + - Agriculture + - Art Dealer / Auctioneer / Import / Export Company + - Financial Services (Asset Mgmt., Bank, Broker Dealer, Commodities, Mutual Fund, Ins. Co) + - Casinos and Gambling Establishments + - Charity/NGO/Non-Profit/Foundation/Endowment + - Computer Programmer / Administrator / Software Engineer / IT or Software / Technology Company + - Crypto Services (ATM, Exchange, Lender, Coins/Token) + - Education / Teacher + - Extractive Industry (Oil, Gas, etc.) / Jewels / Gemstones / Precious Metals + - Family Office + - Film / TV / Entertainment (not adult) + - Government/State owned/Political Org. (i.e. Sovereign Wealth Fund) + - Healthcare + - Law Enforcement / Military / Protective Services + - Miner / Mining Pool + - Money Service Business + - Other + - Private Equity / Venture Capital + - Professional Service Providers (lawyers accountants etc.) + - Real estate brokers developers and appraisers + - Recreation / Hospitality + - Student / Unemployed / Retired + - Traders / Trading (High Frequency, Proprietary, Market Maker) + - Other - Default + - Weapons Dealers + PersonaIdClass: + title: PersonaIdClass + type: string + enum: + - cct + - cid + - dl + - foid + - hic + - id + - ipp + - keyp + - ltpass + - munid + - myn + - nbi + - nric + - ofw + - rp + - pan + - pid + - pp + - ppc + - pr + - sss + - td + - tribalid + - umid + - vid + - visa + - wp + PlatformError2: + title: PlatformError + allOf: - type: object properties: - data: + name: type: string - description: (ETH only) Optional data to pass to the transaction - ExpressShareWalletRequest: + context: + type: object + additionalProperties: {} + status: + type: number + additionalDetails: + type: object + properties: + retryAfter: + type: number + required: + - retryAfter + required: + - context + - $ref: '#/components/schemas/PlatformErrorNoName2' + PlatformErrorNoName2: + title: PlatformErrorNoName type: object properties: - email: - type: string - description: Email address of the user being invited - example: foo@bar.com - permissions: - type: string - allOf: - - $ref: '#/components/schemas/WalletPermission' - walletPassphrase: + error: type: string - description: Wallet passphrase of the user sharing the wallet - message: + requestId: type: string - description: User readable message to display to the share recipient - reshare: - type: boolean - description: Flag for reinviting a user to the wallet. This is required if the invitee has already been invited to the wallet, but has changed their password and needs a new invite - skipKeychain: - type: boolean - description: If true, skips using a shared key (for when the wallet is shared without spend permission). - disableEmail: - type: boolean - description: Flag for disabling invite notification email required: - - email - - permissions - ExpressSignTssTx: - anyOf: - - $ref: '#/components/schemas/TransactionRequestLite1' - - $ref: '#/components/schemas/ExpressSignTssTxFull' - ExpressSignTssTxFull: - title: Full + - error + - requestId + PutIdentityDocumentUpdateResponse: + title: PutIdentityDocumentUpdateResponse type: object properties: - txRequestId: - description: | - The transaction request ID. - This is the ID returned by the Create Transaction Request API. - type: string - walletPassphrase: - description: | - The wallet passphrase. - Required if External Signer is not used to sign the transactions. + id: type: string - prv: - description: | - The un-encrypted user private key of the wallet. - If the key is a JSON object it must be stringified. - Required for Self-Managed Cold wallets when External Signer is not used to sign the transactions. + title: uuid + status: type: string + minLength: 1 + selectedIdClass: + $ref: '#/components/schemas/PersonaIdClass' required: - - txRequestId - ExpressSignTxRequest: + - id + - status + - selectedIdClass + IdentityDocumentType: + title: IdentityDocumentType + type: string + enum: + - frontPhoto + - backPhoto + - proofOfResidency + IdentityDocumentGetResponse: + title: IdentityDocumentGetResponse type: object properties: - prv: - type: string - description: user private key - example: xprv9s21ZrQH143K3xQwj4yx3fHjDieEdqFDweBvFxn28qGvfQGvweUWuUuDRpepDu6opq3jiWHU9h3yYTKk5vvu4ykRuGA4i4Kz1vmFMPLTsoC - txPrebuild: - type: object - properties: - wallet: - $ref: '#/components/schemas/Id' - txHex: - type: string - description: Serialized transaction hex - txBase64: - type: string - description: Serialized transaction base64 (applies to XLM only) The request must include this or a txHex - txInfo: - oneOf: - - $ref: '#/components/schemas/UtxoTxInfo' - - $ref: '#/components/schemas/XlmTxInfo' - feeInfo: - type: object - properties: - size: - type: integer - description: Estimated size of the transaction in bytes - example: 776 - fee: - type: integer - description: Estimated fee in base units for the transaction - example: 38800 - feeRate: - allOf: - - $ref: '#/components/schemas/IntegerOrString' - - example: 10000 - description: | - Custom fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. - - If the 'feeRate' is less than the minimum required network fee, then the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000 microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is usually 4.5 times the open ledger fee. - - Note: The 'feeRate' overrides the 'maxFeeRate' and 'minFeeRate'. - payGoFee: - type: integer - description: BitGo fee of the transaction (in base units) - example: 0 - payGoFeeString: - type: integer - description: BitGo fee of the transaction (in base units) represented as a String - example: '0' - isLastSignature: - type: boolean - description: Should be set to true if you are signing the second time, attaching the final signature. Default to false. - pubs: + documents: type: array - description: Public Keys (user, backup, bitgo) for the wallet (UTXO coins only) items: - type: string - example: - - string - - string - - string - ExpressSignTxResponse: - type: object - properties: - txInfo: - oneOf: - - title: Hex - type: object - properties: - txHex: - $ref: '#/components/schemas/TxHex' - - title: Base64 - type: object - properties: - halfSigned: + type: object + properties: + id: + type: string + title: uuid + identityId: + type: string + title: uuid + status: + type: string + minLength: 1 + createdAt: + type: string + format: date-time + title: ISO Date String + updatedAt: + type: string + format: date-time + title: ISO Date String + fileUploads: + type: array + items: type: object properties: - txBase64: - $ref: '#/components/schemas/TxBase64' - ExpressSweepRequest: + fileName: + type: string + minLength: 1 + fileSize: + type: number + uploadStatus: + type: string + minLength: 1 + documentType: + $ref: '#/components/schemas/IdentityDocumentType' + required: + - fileName + - fileSize + - uploadStatus + - documentType + selectedIdClass: + $ref: '#/components/schemas/PersonaIdClass' + required: + - id + - identityId + - status + - createdAt + - updatedAt + required: + - documents + PostIdentityDocumentCreateResponse: + title: PostIdentityDocumentCreateResponse type: object properties: - address: + id: type: string - description: The destination address for the sweep transaction - walletPassphrase: + title: uuid + status: type: string - description: Passphrase to decrypt the user key on the wallet - xprv: + minLength: 1 + selectedIdClass: + $ref: '#/components/schemas/PersonaIdClass' + fileUploads: + type: array + items: + type: object + properties: + fileName: + type: string + minLength: 1 + fileSize: + type: number + uploadStatus: + type: string + minLength: 1 + documentType: + $ref: '#/components/schemas/IdentityDocumentType' + required: + - fileName + - fileSize + - uploadStatus + - documentType + required: + - id + - status + - selectedIdClass + - fileUploads + IdentityUpdateResponse: + title: IdentityUpdateResponse + type: object + properties: + id: type: string - description: Private key in string form, if walletPassphrase is not available - otp: + title: uuid + status: type: string - description: Two factor auth code to enable sending the transaction - feeTxConfirmTarget: + minLength: 1 + organizationId: type: string - description: Number of blocks to wait to confirm the transaction - feeRate: - allOf: - - $ref: '#/components/schemas/IntegerOrString' - - example: 10000 - description: | - Custom fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. - - If the 'feeRate' is less than the minimum required network fee, then the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000 microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is usually 4.5 times the open ledger fee. - - Note: The 'feeRate' overrides the 'maxFeeRate' and 'minFeeRate'. - maxFeeRate: - allOf: - - $ref: '#/components/schemas/IntegerOrIntegerString' - - example: 20000 - description: | - (BTC only) The maximum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. The 'maxFeeRate' limits the fee rate generated by both 'feeMultiplier' and 'numBlocks'. - - Note: The 'feeRate' overrides the 'maxFeeRate'. - allowPartialSweep: - type: boolean - default: false - description: | - Use 'allowPartialSweep: true' to sweep part of a wallet when there are too many unspents to empty the wallet in a - single transaction. While the expected outcome of a single sweep call would usually be an empty wallet, using the - allowPartialSweep option may leave some funds in the wallet. Making repeated calls with the allowPartialSweep - option allows emptying wallets with many unspents without consolidating first. - txFormat: - $ref: '#/components/schemas/UtxoTransactionFormat' - ExpressVerifyCoinAddressRequest: - type: object - properties: - address: + minLength: 1 + enterpriseId: type: string - allOf: - - $ref: '#/components/schemas/AddressString3' - description: Address which should be verified for correct format - ExpressWallet: - title: Wallet + minLength: 1 + userId: + type: string + minLength: 1 + createdAt: + type: string + format: date-time + title: ISO Date String + updatedAt: + type: string + format: date-time + title: ISO Date String + errorDescription: + type: string + minLength: 1 + signaturesSubmitted: + $ref: '#/components/schemas/ContractTypes' + signaturesRequired: + $ref: '#/components/schemas/ContractTypes' + required: + - id + - status + - organizationId + ContractTypes: + title: ContractTypes + type: array + items: + type: string + enum: + - csa + - mpa + - mic + - wvr + ESignatures: + title: ESignatures + type: array + items: + type: object + properties: + contractSignerNameFull: + type: string + minLength: 1 + contractSignedDate: + type: string + format: date-time + title: ISO Date String + contractSignedIPAddress: + type: string + minLength: 1 + contractType: + $ref: '#/components/schemas/ContractType' + contractVersion: + type: string + minLength: 1 + userAgreesToTerms: + type: boolean + required: + - contractSignerNameFull + - contractSignedDate + - contractSignedIPAddress + - contractType + - contractVersion + - userAgreesToTerms + ContractType: + title: ContractType + type: string + enum: + - csa + - mpa + - mic + - wvr + IdentityGetResponse: + title: IdentityGetResponse type: object properties: - id: - $ref: '#/components/schemas/Id' - users: + identities: type: array - description: Ids of users with access to the wallet items: type: object properties: - user: - $ref: '#/components/schemas/Id' - permissions: + id: + type: string + title: uuid + status: + type: string + minLength: 1 + organizationId: + type: string + minLength: 1 + enterpriseId: + type: string + minLength: 1 + userId: + type: string + minLength: 1 + createdAt: + type: string + format: date-time + title: ISO Date String + updatedAt: + type: string + format: date-time + title: ISO Date String + errorDescription: + type: string + minLength: 1 + occupation: + type: string + countryOfCitizenship: + type: string + govIdCountryOfIssuance: + type: string + politicallyExposedPerson: + type: boolean + debugStatus: + type: string + country: + type: string + countryOfResidence: + type: string + addressCity: + type: string + addressPostalCode: + type: string + addressStreet1: + type: string + addressStreet2: + type: string + addressSubdivision: + type: string + birthDate: + type: string + format: date-time + title: ISO Date String + identificationNumber: + type: string + nameFirst: + type: string + nameLast: + type: string + nameMiddle: + type: string + phoneNumber: + type: string + selectedIdClass: + type: string + debugFailureReason: + type: string + emailAddress: + type: string + contractSignerNameFull: + type: string + contractSignedDate: + type: string + format: date-time + title: ISO Date String + contractSignedIPAddress: + type: string + contractVersion: + type: string + userAgreesToTerms: + type: string + signatureSubmitted: + type: string + signaturesSubmitted: type: array - description: Array of permissions for the user items: type: string - example: - - admin - - view - - spend - coin: + enum: + - csa + - mpa + - mic + - wvr + signaturesRequired: + type: array + items: + type: string + enum: + - csa + - mpa + - mic + - wvr + required: + - id + - status + - organizationId + required: + - identities + IdentityCreateResponse: + title: IdentityCreateResponse + type: object + properties: + id: type: string - description: Name of the blockchain the wallet is on - example: tbtc4 - label: + title: uuid + status: type: string - description: Name the user assigned to the wallet - example: My TBTC4 Wallet - m: - type: integer - description: Number of signatures required for the wallet to send - example: 2 - 'n': - type: integer - description: Number of signers on the wallet - example: 3 - keys: - type: array - description: Ids of wallet keys - items: - $ref: '#/components/schemas/Id' - keySignatures: - type: object - description: Signatures for the backup and BitGo public keys signed by the user key + minLength: 1 + required: + - id + - status + AdaStakeIntent1: + title: Ada Stake + allOf: + - $ref: '#/components/schemas/StakeIntent2' + - type: object properties: - backupPub: - type: string - description: Signature for the backup pub - example: 1fe81d0c91457d89993b01475bfb9e5809067ae046926faeab6e63beea009d8dd460387e0c3843034570798a9c2bcc1dbbea2988ee5a36979e0bbe6e02f7840af2 - bitgoPub: + poolKeyHash: type: string - description: Signature for the BitGo pub - example: 209d0e9a6d4352b66fae0a35ce62c1059bcc4db9e2883abc4f1b3d20481c5cebb7299c581efd9e0151abaf2496da7c6d75d276de36ed3de37c94e9cc5a2ea77e59 - tags: - type: array - description: Tags set on the wallet - items: - $ref: '#/components/schemas/Id' - receiveAddress: - $ref: '#/components/schemas/Address2' - balance: - type: integer - description: Wallet balance as number - example: 0 - balanceString: - type: string - description: Wallet balance as string - example: '0' - confirmedBalance: + description: | + The pool key hash to which the coins will be delegated to. + required: + - poolKeyHash + Address21: + type: object + properties: + id: + allOf: + - $ref: '#/components/schemas/Id' + description: platform public id for an address + address: + $ref: '#/components/schemas/AddressString3' + chain: + $ref: '#/components/schemas/Chain' + index: type: integer - description: Confirmed wallet balance as number - example: 0 - confirmedBalanceString: + coin: type: string - description: Confirmed wallet balance as string - example: '0' - spendableBalance: + lastNonce: type: integer - description: Spendable wallet balance as number - example: 0 - spendableBalanceString: - type: string - description: Spendable wallet balance as string - example: '0' - deleted: - type: boolean - description: Flag which indicates the wallet has been deleted - example: false - isCold: - type: boolean - description: Flag for identifying cold wallets - example: false - freeze: + default: -1 + wallet: + allOf: + - $ref: '#/components/schemas/Id' + description: The wallet which contains this address + coinSpecific: type: object - description: Freeze state (used to stop the wallet from spending) + description: Properties which are specific to certain coin types properties: - time: - type: string - format: date-time - description: Time when the wallet becomes frozen - expires: - type: string - format: date-time - description: Time when the wallet is unfrozen and allowed to spend - example: {} - disableTransactionNotifications: - type: boolean - description: Flag for disabling wallet transaction notifications - example: false - admin: - type: object - description: Admin data (wallet policies) - example: {} - approvalsRequired: - type: integer - description: Number of admin approvals required for an action to fire - example: 1 - pendingApprovals: - type: array - description: Pending approvals on the wallet - items: - $ref: '#/components/schemas/PendingApproval1' - example: [] - allowBackupKeySigning: - type: boolean - description: Flag for allowing signing with backup key - example: false - coinSpecific: - type: object - description: Coin-specific data - clientFlags: - type: array - items: - type: string - recoverable: - type: boolean - description: Flag indicating whether this wallet's user key is recoverable with the passphrase held by the user. - startDate: - type: string - format: date-time - description: Time when this wallet was created - hasLargeNumberOfAddresses: - type: boolean - description: | - Flag indicating that this wallet is large (more than 100,000 addresses). If this is set, some APIs may omit - properties which are expensive to calculate for wallets with many addresses (for example, the total address - counts returned by the List Addresses API). - config: - type: object - description: Custom configuration options for this wallet - ExpressWalletRecoverTokenRequest: - type: object - properties: - tokenContractAddress: - type: string - description: Contract address of the unsupported token - recipient: - type: string - description: Destination address recovered tokens should be sent to - walletPassphrase: - type: string - description: Wallet passphrase - prv: - type: string - description: User private key - broadcast: - type: boolean - description: Whether to send to BitGo for cosigning and broadcast the transaction. If false, a half-siged transaction will be returned. - ExpressWalletRecoverTokenResponse: + xlm: + $ref: '#/components/schemas/AddressCoinSpecificXlm' + txlm: + $ref: '#/components/schemas/AddressCoinSpecificXlm' + balance: + allOf: + - type: object + - $ref: '#/components/schemas/AddressBalance' + description: Balance of the address. In case of Eth and Celo, if returnBalancesForToken is passed with includeBalances, then it will return token balance in the address object. This field will be present only when 'includeBalances' query param is passed as true. + label: + $ref: '#/components/schemas/AddressLabel' + addressType: + $ref: '#/components/schemas/AddressType' + AddressString3: + title: Address + type: string + example: 2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZS + maxLength: 250 + AdvancedListRuleEntry1: + title: Advanced whitelist rule entry type: object properties: - halfSigned: + item: + allOf: + - oneOf: + - $ref: '#/components/schemas/AddressString3' + - $ref: '#/components/schemas/Id' + description: Either a valid address or a wallet or enterprise id. Must be unique in this whitelist. + metaData: type: object + description: Any data about this entry that is not used to determine when to enforce the policy properties: - contractSequenceId: - type: integer - example: 1101 - expireTime: - type: integer - example: 1550088020 - gasLimit: - type: integer - example: 500000 - gasPrice: - type: integer - example: 20000000000 - operationHash: + label: type: string - example: 9.44792020725999e+76 - recipient: - type: object - properties: - address: - type: string - example: 4.7261295088313645e+47 - amount: - type: string - example: '2400' - signature: + description: A client-specified label for this entry. Label must be unique or not set. + owner: type: string - example: 1.9519588812712557e+156 - tokenContractAddress: + description: The legal owner of the address/ wallet/ enterprise + example: Legal Owner LLC + address: type: string - example: 3.8941146273864216e+46 - walletId: - $ref: '#/components/schemas/Id' - ExpressWalletSignTxRequest: - type: object - properties: - keychain: - type: object + description: The address of the receiver wallet if the whitelist is of type 'walletId'. + additionalProperties: true + type: + $ref: '#/components/schemas/ListRuleEntryType' + required: + - item + - type + AnnotatedTransfer: + allOf: + - $ref: '#/components/schemas/Transfer' + - type: object properties: - encryptedPrv: - type: string - description: Encrypted user private key - description: | - The user's keychain object with an 'encryptedPrv' property. The 'walletPassphrase' parameter is required when using 'keychain'. Any request must include either 'keychain' or 'prv'. - prv: - type: string - description: | - User private key - - Note: The request must include either 'prv' or 'keychain' - example: xprv9s21ZrQH143K3xQwj4yx3fHjDieEdqFDweBvFxn28qGvfQGvweUWuUuDRpepDu6opq3jiWHU9h3yYTKk5vvu4ykRuGA4i4Kz1vmFMPLTsoC - txPrebuild: - type: object + confirmations: + type: integer + description: The number of blocks that have been confirmed since this Transfer's block was confirmed + entries: + type: array + items: + type: object + properties: + label: + type: string + description: If this address was labeled by the user, this is the label + AnnotatedTransferWithInputsOutputs: + allOf: + - $ref: '#/components/schemas/AnnotatedTransfer' + - type: object properties: - wallet: - $ref: '#/components/schemas/Id' - txHex: - type: string - description: Serialized transaction hex - txBase64: + inputs: + type: array + description: If this is a Transfer on a UTXO coin, the array of inputs + items: + $ref: '#/components/schemas/Unspent' + outputs: + type: array + description: If this is a Transfer on a UTXO coin, the array of outputs + items: + $ref: '#/components/schemas/Unspent' + PlatformError3: + title: API error + allOf: + - $ref: '#/components/schemas/PlatformErrorNoName3' + - properties: + context: + type: object + description: Properties that apply to a specific error name + name: type: string - description: Serialized transaction base64 (applies to XLM only). The request must include this or a txHex - txInfo: - oneOf: - - $ref: '#/components/schemas/UtxoTxInfo' - - $ref: '#/components/schemas/XlmTxInfo' - feeInfo: - oneOf: - - $ref: '#/components/schemas/UtxoFeeInfo' - - $ref: '#/components/schemas/XlmFeeInfo' - description: The transaction description object as created by 'Build Transaction' - coldDerivationSeed: - type: string - description: | - A seed used to create a deterministic BIP-32 path which is then used to derive a private key. This is useful when one wants to create multiple BitGo cold wallets but only protect a single master private key. Using the seed one can create a child key for a specific wallet, for instance an Ethereum wallet could use the "eth" seed while an XRP wallet could use "xrp" as a seed. Both of these child keys would be derived from a single master key and so only the master key needs to be stored and protected. - walletPassphrase: - type: string - description: | - Passphrase to decrypt the user keychain. 'walletPassphrase' is a required parameter when the parameter 'keychain' is provided. - recipients: - type: array - items: - type: object - description: Array of objects describing the recipients. See buildTransaction for more detail. Required on ETH. - FederationError: + description: Error code + required: + - name + PlatformErrorNoName3: type: object properties: - status: - type: number - description: HTTP status code - detail: - type: string - description: Human-readable error message error: type: string description: Human-readable error message - name: - type: string - description: Error code requestId: type: string description: Client request id required: - - status - - detail - error - - name - requestId - FeeAddressBalanceResponse: + AverageFee: type: object properties: - balance: - type: string - description: | - Total balance in enterprise gas tank. - Freeze1: + averageFee: + type: number + description: Calculated by summing the fees of the blocks over the number of blocks. + example: 16000000 + required: + - averageFee + BackupKeyType: + type: string + description: Coin name used to choose correct KRS public key for the given provider. Possible valid values are "btc", "eth", "bitcoin" + example: eth + BalanceReserve: type: object properties: - time: + baseFee: type: string - format: date-time - description: When the freeze started - expires: + description: base fee used in transaction fees + example: '100' + baseReserve: type: string - format: date-time - description: When the freeze will end - InitiateTrustlineParams: + description: base reserve used in minimum account balances + example: '5000000' + reserve: + type: string + description: minimum account balance, calculated using base reserve + example: '25000000' + minimumFunding: + type: string + description: minimum funding balance, calculated using reserve and base fee + example: '25000500' + height: + type: integer + description: the height of the block that provides the base values + example: 11228504 + BalanceStaked: + type: array + items: + type: object + properties: + address: + allOf: + - type: string + - $ref: '#/components/schemas/AddressString3' + description: the address of the wallet + balances: + type: array + items: + type: object + description: an object containing of validators and the current staked amount + properties: + validator: + allOf: + - type: string + - $ref: '#/components/schemas/AddressString3' + description: the validator + staked_amount: + type: string + description: the amount delegated to the validator + example: '5000000000' + BalanceTotalRewards: + type: array + items: + type: object + properties: + address: + allOf: + - type: string + - $ref: '#/components/schemas/AddressString3' + description: the address of the wallet + rewards: + type: array + items: + type: object + description: an object containing the reward recipient address and the total rewards received + properties: + reward_recipient: + allOf: + - type: string + - $ref: '#/components/schemas/AddressString3' + description: the receiving address + reward_amount: + type: string + description: the total rewards received + example: '5000000000' + BankAccountCurrency: + title: BankAccountCurrency + description: | + The currency of the bank account. If null, defaults to 'fiatusd'. + type: string + nullable: true + enum: + - fiatusd + - fiateur + - null + example: fiatusd + BankAccountFee: type: object + description: | + A fee that's associated with a bank account. properties: - memo: + feeInfo: type: object properties: + bank: + type: string + enum: + - customers_sftp + - customers_api + - bcbgroup + description: | + The bank that the fee is associated with. type: type: string - value: + enum: + - static + - variable + description: | + The type of fee. + amount: type: string - description: | - The memo contains optional extra information that can also be used to identify payments in Stellar. - comment: - type: string - description: | - Optional metadata (only persisted in BitGo) to be applied to the transaction. Use this to add transaction-specific information such as the transaction's purpose or another identifier that you want to reference later. The value is shown in the UI in the transfer listing page. - maxLength: 256 - trustlines: - type: array - items: - $ref: '#/components/schemas/Trustline' - description: List of trustlines to manage on the account. - required: - - trustlines - RecipientAmount: - oneOf: - - type: string - pattern: ^(-?\d+|max)$ - example: '2000000' - - type: integer - IntentType1: - title: IntentType + description: | + The fee amount. + coin: + $ref: '#/components/schemas/BankAccountCurrency' + BankAccountId: + title: ID + type: string + pattern: ^[0-9a-f]{32}$ OR UUID + example: 59cd72485007a239fb00282ed480da1f + BankAccountIdHash: + type: string + example: 5c645791cf8eb19304292a8e3365fee3 + description: | + Unique identifier for this account, derived from 'accountNumber', + 'routingNumber', and 'swiftCode' + BankAccountPendingActivity: type: string enum: - - payment - - transferToken - - consolidate - - consolidateToken - - fanout - - stake - - unstake - - delegate - - undelegate - - switchValidator - - claim - - stakeClaimRewards - - pledge - - vote - - createAccount - - updateAccount - - addTrustLine - - removeTrustLine - - signMessage - - signTypedStructuredData - - enableToken - - authorize - - acceleration - - fillNonce - - walletRecovery - - contractCall - - deactivate - - customTx - - closeAssociatedTokenAccount - InternationalWireBankAccount: - title: International Wire Bank Account + - trust + BankAccountRequest: + anyOf: + - $ref: '#/components/schemas/DomesticWireBankAccount' + - $ref: '#/components/schemas/InternationalWireBankAccount' + - $ref: '#/components/schemas/CBITBankAccount' + BankAccountResponse: type: object description: | An external bank account. 'routingNumber' must be set for US bank accounts. @@ -38099,6 +37488,8 @@ components: address3: type: string example: '' + id: + $ref: '#/components/schemas/Id' name: type: string example: America California Bank @@ -38127,19 +37518,29 @@ components: required: - name - address1 + routingNumber: + description: US bank routing number + type: string + example: '129131673' + minLength: 9 + maxLength: 9 + pattern: ^[0-9]+$ + shortCountryCode: + $ref: '#/components/schemas/ShortCountryCode' swiftCode: - description: Bank identifier code, as specified by ISO 9362. Required for international wire transfers. + description: Bank identifier code, as specified by ISO 9362. Used by banks outside the US. type: string example: DEUTDEFF500 minLength: 8 maxLength: 11 pattern: ^[A-Z]{6}[0-9A-Z]{2}([0-9A-Z]{3})?$ - shortCountryCode: - $ref: '#/components/schemas/ShortCountryCode' type: $ref: '#/components/schemas/BankAccountType' currency: $ref: '#/components/schemas/BankAccountCurrency' + externalId: + type: string + example: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6 furtherCreditTo: type: string example: Donald E. Knuth @@ -38149,956 +37550,618 @@ components: intermediaryBankId: type: string example: 59cd72485007a239fb00282ed480da1f - required: - - accountNumber - - address1 - - shortCountryCode - - name - - owner - - enterpriseId - - swiftCode - InvalidAddress1: - title: Invalid address - allOf: - - $ref: '#/components/schemas/PlatformErrorNoName3' - - properties: - context: - type: object - properties: - address: - type: string - coin: - $ref: '#/components/schemas/Coin' - required: - - address - - coin - name: - type: string - description: Error code - enum: - - InvalidAddress - required: - - coin - - context - - address - - name - InvalidEnterpriseId1: - title: Invalid enterprise ID - allOf: - - $ref: '#/components/schemas/InvalidId1' - - properties: - name: - type: string - description: Error code - enum: - - InvalidEnterpriseId - required: - - name - InvalidId1: - allOf: - - $ref: '#/components/schemas/PlatformErrorNoName3' - - properties: - context: - type: object - properties: - id: - $ref: '#/components/schemas/Id' - required: - - context - InvalidOFAC: - title: Address error - allOf: - - $ref: '#/components/schemas/PlatformErrorNoName3' - - properties: - name: - type: string - description: Error code - enum: - - AddressError - error: - type: string - description: Human-readable error message - example: Address cannot be used - required: - - name - InvalidTransferId: - title: Invalid transfer ID - allOf: - - $ref: '#/components/schemas/InvalidId1' - - properties: - name: - type: string - description: Error code - enum: - - InvalidTransferId - required: - - name - InvalidUserId: - title: Invalid user ID - allOf: - - $ref: '#/components/schemas/InvalidId1' - - properties: - name: - type: string - description: Error code - enum: - - InvalidUserId - required: - - name - InvalidWalletId1: - title: Invalid wallet id - allOf: - - $ref: '#/components/schemas/InvalidId1' - - properties: - name: - type: string - description: Error code - enum: - - InvalidWalletId - required: - - name - Key: - title: Multisig - allOf: - - $ref: '#/components/schemas/KeyCommon' - - type: object - properties: - pub: - $ref: '#/components/schemas/Pub' - required: - - id - - type - KeyCommon: - type: object - properties: - encryptedPrv: + idHash: + $ref: '#/components/schemas/BankAccountIdHash' + trustOrg: + $ref: '#/components/schemas/BitgoOrg1' + token: type: string - description: The encrypted private key - id: - $ref: '#/components/schemas/Id' - isBitGo: - type: boolean - description: True, if this key is owned by BitGo - example: false - source: - $ref: '#/components/schemas/KeySource' - type: - $ref: '#/components/schemas/KeyType' - required: - - id - - type - KeyCreateCoinSpecific: - type: object - properties: - lnbtc: - $ref: '#/components/schemas/KeyCreateCoinSpecificLnbtc' - tlnbtc: - $ref: '#/components/schemas/KeyCreateCoinSpecificLnbtc' - KeyCreateCoinSpecificLnbtc: - type: object - properties: - purpose: - allOf: - - $ref: '#/components/schemas/KeyPurpose' - description: The purpose of the key. - KeyPurpose: + example: fiat + verificationState: + $ref: '#/components/schemas/BankAccountVerificationState' + pendingActivity: + $ref: '#/components/schemas/BankAccountPendingActivity' + fee: + $ref: '#/components/schemas/BankAccountFee' + BankAccountType: + title: BankAccountType + description: | + The type of bank account. If null, defaults 'wire'. type: string + nullable: true enum: - - userAuth - - nodeAuth - example: userAuth - KeyShare: - type: object - properties: - from: - allOf: - - $ref: '#/components/schemas/KeyShareSource' - description: The source of the key share. - to: - allOf: - - $ref: '#/components/schemas/KeyShareSource' - description: The recipient of the key share. - publicShare: - type: string - description: Public part of the share concatenated with chain code (64+64 characters hex string). - privateShare: - type: string - description: Private part of the share concatenated with chain code (64+64 characters hex string). Depending on who the source and the recipient are, the share might be encrypted against the recipient's public key. - privateShareProof: - type: string - description: The certificate of the private share, signed by the source of the key share. - vssProof: - type: string - description: The verifiable shamir share verification value - required: - - from - - to - - publicShare - - privateShare - KeyShareResponse: - allOf: - - $ref: '#/components/schemas/KeyShare' - - type: object - properties: - hsmSig: - type: string - description: openPGP ASCII armored public key format string. Can be used to ensure that the "u" value came from the HSM. This contains the HSM signature/certification (signed by bitgo GPG key pair) of the public form of the "u" value and notation packets that indicate the commonPublicKey and the key ids of the two GPG keys used to share wrapping (userGPGPublicKey and backupGPGPublicKey). - required: - - hsmSig - KeySource: + - wire + - cbit + - null + example: wire + BankAccountVerificationState: type: string enum: - - backup - - bitgo - - cold - - user - example: user - KeyTSS: - title: MPC - allOf: - - $ref: '#/components/schemas/KeyCommon' - - type: object - properties: - commonKeychain: - type: string - description: The commonKeychain for the key if this is a MPC key. This value is required to be set when the type is set to “tss” and when the source is either “user” or “backup”. Setting this indicates to BitGo that the owner of the key has received all key shares they needed for generating their key. This value is the concatenation of the common public key (32-byte) with the common chaincode (32-byte) as a hex string. - commonPub: - type: string - description: The common public key. This value is required to be set for BLS keys when the source is either "user" or "backup". Setting this indicates to BitGo that the owner of the key has received all key shares they needed for generating their key. - required: - - id - - type - - source - KeyTSSCreated: - title: MPC key - description: This schema contains KeyTSS attributes and several ephemeral fileds which are only available during the key creation since they are not stored. - allOf: - - $ref: '#/components/schemas/KeyTSS' - - type: object - properties: - commonKeychainSig: - type: string - description: openPGP ASCII armored pubkey format string. This contains the HSM signature/certification (signed by BitGo MPC GPG key pair) of the commonKeychain. This is necessary for verification purposes to ensure that the commonKeychain value came from BitGo's HSM. Used for full custody/OVC operations. - commonPublicKeySig: - type: string - description: OpenPGP ASCII pubkey armoured string containing HSM signature certification. Allows to ensure that commonPublicKey came from the HSM - keyShares: - type: array - items: - $ref: '#/components/schemas/KeyShareResponse' - walletHSMGPGPublicKeySigs: - type: string - description: GPG ASCII armored public key format that consists of HSM signature/certification and GPG notation data appended to the key signature subpackets - required: - - id - - type - - source - KeyType: + - pending + - approved + - rejected + - removed + Bitcoin: type: string enum: - - tss - - independent - - blsdkg - default: independent - description: A value from a string enum denoting what kind of key this is. Defaults to “independent” indicating an on-chain key is requested. If set to “tss” this tells us that a “tss” key is requested. - example: tss - Keys: - type: array - items: - $ref: '#/components/schemas/Id' - example: - - 585951a5df8380e0e304a553 - - 585951a5df8380e0e30d645c - - 585951a5df8380e0e30b6147 - KeysResponse: - type: object - properties: - keys: - type: array - items: - oneOf: - - $ref: '#/components/schemas/Key' - - $ref: '#/components/schemas/KeyTSS' - required: - - keys - ListBankAccountsResponse: - type: object - properties: - bankAccounts: - type: array - items: - $ref: '#/components/schemas/BankAccountResponse' - ListWalletSharesResponse: - type: object - properties: - incoming: - type: array - items: - $ref: '#/components/schemas/WalletShare1' - outgoing: - type: array - items: - $ref: '#/components/schemas/WalletShare1' - LockedSession: + - btc + - tbtc4 + description: This route is only available for Bitcoin. + BitgoOrg1: + type: string + description: BitGo Organization related to this entity + enum: + - BitGo Inc + - BitGo Trust + - BitGo New York + - BitGo Germany + - BitGo Switzerland + - Frankfurt DE Trust + - BitGo Sister Trust 1 + - BitGo Korea + - BitGo Singapore + - BitGo Europe ApS + - BitGo Mena Fze + BuildParams: type: object properties: - created: + type: type: string - format: date-time - expires: + description: | + Required for transactions from MPC wallets. "acceleration" speeds up transactions with a certain nonce by adjusting the gas setting. "accountSet" is for XRP AccountSet transactions. "enabletoken" is for SOL. "stakingLock" and "stakingUnlock" are for Stacks delegations. "transfer" is for native-asset transfers. "trustline" is for Stellar trustline transactions. Possible types include: [acceleration, accountSet, enabletoken, stakingLock, stakingUnlock, transfer, transfertoken, trustline] + + For AVAX, possible types include: 'addValidator', 'export', and 'import'. + + For XRP, possible types include: 'payment' and 'accountSet'. The default is 'payment'. + + For STX, type is required. + numBlocks: + type: integer + description: | + (BTC only) The number of blocks required to confirm a transaction. You can use 'numBlocks' to estimate the fee rate by targeting confirmation within a given number of blocks. If both 'feeRate' and 'numBlocks' are absent, the transaction defaults to 2 blocks for confirmation. + + Note: The 'maxFeeRate' limits the fee rate generated by 'numBlocks'. + minimum: 2 + maximum: 1000 + feeRate: + allOf: + - $ref: '#/components/schemas/IntegerOrString' + - example: 10000 + description: | + Custom fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. + + If the 'feeRate' is less than the minimum required network fee, then the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000 microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is usually 4.5 times the open ledger fee. + + Note: The 'feeRate' overrides the 'maxFeeRate' and 'minFeeRate'. + maxFeeRate: + allOf: + - $ref: '#/components/schemas/IntegerOrIntegerString' + - example: 20000 + description: | + (BTC only) The maximum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. The 'maxFeeRate' limits the fee rate generated by both 'feeMultiplier' and 'numBlocks'. + + Note: The 'feeRate' overrides the 'maxFeeRate'. + feeMultiplier: + allOf: + - $ref: '#/components/schemas/NumberOrString' + - example: 1.5 + description: | + (UTXO only) Custom multiplier to the 'feeRate'. The resulting fee rate is limited by the 'maxFeeRate'. For replace-by-fee (RBF) transactions (that include 'rbfTxIds'), the 'feeMultiplier' must be greater than 1, since it's an absolute fee multiplier to the transaction being replaced. + + Note: The 'maxFeeRate' limits the fee rate generated by 'feeMultiplier'. + minConfirms: + type: integer + description: | + The unspent selection for the transaction will only consider unspents with at least this many confirmations to be used as inputs. Does not apply to change outputs unless used in combination with 'enforceMinConfirmsForChange'. + enforceMinConfirmsForChange: + type: boolean + description: When set to true, will enforce minConfirms for change outputs. Defaults to false. + default: false + gasPrice: + allOf: + - $ref: '#/components/schemas/IntegerOrIntegerString' + description: Custom gas price to be used for sending the transaction. Only for ETH and ERC20 tokens. + eip1559: + properties: + maxPriorityFeePerGas: + allOf: + - $ref: '#/components/schemas/IntegerOrIntegerString' + - maximum: 100000000000 + description: Max priority tip price for EIP1559 transactions. Only for ETH and ERC20 tokens. + maxFeePerGas: + allOf: + - $ref: '#/components/schemas/IntegerOrIntegerString' + description: Max total gasPrice for EIP1559 transactions. Only for ETH and ERC20 tokens. + gasLimit: + allOf: + - $ref: '#/components/schemas/IntegerOrIntegerString' + description: Custom gas limit to be used for sending the transaction. Only for ETH and ERC20 tokens. + targetWalletUnspents: + type: integer + description: | + Specifies the minimum count of good-sized unspents to maintain in the wallet. Change splitting ceases when the + wallet has 'targetWalletUnspents' good-sized unspents. + + **Note**: Wallets that continuously send a high count of transactions will automatically split large change amounts + into multiple good-sized change outputs while they have fewer than 'targetWalletUnspents' good-sized unspents in + their unspent pool. Breaking up large unspents helps to reduce the amount of unconfirmed funds in flight in future + transactions, and helps to avoid long chains of unconfirmed transactions. This is especially useful for newly + funded wallets or recently refilled send-only wallets. + default: 1000 + minValue: + allOf: + - $ref: '#/components/schemas/IntegerOrIntegerString' + description: Ignore unspents smaller than this amount of base units (e.g. satoshis). For doge, only string is allowed. + maxValue: + allOf: + - $ref: '#/components/schemas/IntegerOrIntegerString' + description: Ignore unspents larger than this amount of base units (e.g. satoshis). For doge, only string is allowed. + sequenceId: type: string - format: date-time - id: - $ref: '#/components/schemas/Id' - ip: + description: | + A 'sequenceId' is a unique and arbitrary wallet identifier applied to transfers and transactions at creation. It is optional but highly recommended. With a 'sequenceId' you can easily reference transfers and transactions—for example, to safely retry sending. Because the system only confirms one send request per 'sequenceId' (and fails all subsequent attempts), you can retry sending without the risk of double spending. The 'sequenceId' is only visible to users on the wallet and is not shared publicly. + nonce: allOf: - - $ref: '#/components/schemas/Ip' - description: IP address of the client that requested this access token - ipRestrict: + - $ref: '#/components/schemas/IntegerString' + description: | + (DOT only) A nonce ID is a number used to protect private communications by preventing replay attacks. + This is an advanced option where users can manually input a new nonce value + in order to correct or fill in a missing nonce ID value. + noSplitChange: + type: boolean + description: | + Set 'true' to disable automatic change splitting. + + Also see: 'targetWalletUnspents' + default: false + unspents: type: array items: + example: 12b147dd8b4f73c01f72bdbf5b589eea614f3de609ffdbdac84852d6505cf8a3:1 type: string - format: ipv4 - description: IP addresses of clients that are allowed to use this token - origin: - type: string - example: test.bitgo.com - description: BitGo environment that issued this token. The token is only valid in this environment. - scope: + description: | + Used to explicitly specify the unspents to be used in the input set in the transaction. Each unspent should be in the form 'prevTxId:nOutput'. + changeAddress: allOf: - - $ref: '#/components/schemas/Scope' - description: Session permissions - user: - $ref: '#/components/schemas/Id' - required: - - created - - expires - - id - - origin - - scope - - user - MemoObject: - type: object - properties: - type: - type: string - value: - type: string - description: | - Memo for Stellar or EOS. Type is only required for memos in Stellar transactions. The memo contains optional extra information that can also be used to identify payments in Stellar or EOS. - MemoString: - type: string - maxLength: 100 - description: A memo for this specific transaction. This format is only available for Stacks. - Message1: - type: object - properties: - coin: + - $ref: '#/components/schemas/AddressString3' + description: Specifies a custom destination address for the transaction's change output(s) + txFormat: + $ref: '#/components/schemas/UtxoTransactionFormat' + instant: + type: boolean + description: (DASH only) Specifies whether or not to use Dash's "InstantSend" feature when sending a transaction. + memo: + type: object + properties: + type: + type: string + value: + type: string + description: | + Memo for Stellar or EOS. Type is only required for memos in Stellar transactions. The memo contains optional extra information that can also be used to identify payments in Stellar or EOS. + comment: type: string - description: The coin associated with the wallet. - combineSigShare: + description: | + Optional metadata (only persisted in BitGo) to be applied to the transaction. Use this to add transaction-specific information such as the transaction's purpose or another identifier that you want to reference later. The value is shown in the UI in the transfer listing page. + maxLength: 256 + destinationChain: type: string - createdDate: - description: The date the message was created. + description: (AVAXC and AVAXP only) Destination chain for an AVAX import/export transaction. One of [P, C]. + sourceChain: type: string - format: date-time - messageEncoded: - description: The message encoded as a hex string. + description: (AVAXC and AVAXP only) Source chain for an AVAX import/export transaction. One of [P, C]. + addressType: type: string - messageRaw: - description: The message as human readable text. + deprecated: true + description: |- + DEPRECATED - use 'changeAddressType'. + The type of address to create for change. One of 'p2sh', 'p2shP2wsh', 'p2wsh', or 'p2tr'. + changeAddressType: + anyOf: + - $ref: '#/components/schemas/AddressType' + - $ref: '#/components/schemas/ChangeAddressTypes' + description: The address type for the change address. One of 'p2sh', 'p2shP2wsh', 'p2wsh', 'p2tr' or 'p2trMusig2'. + startTime: type: string - signatureShares: + description: Unix timestamp in seconds.nanoseconds format, denoting the start of the validity window. Only for HBAR transactions. + example: 1714067129.1020603 + consolidateId: + allOf: + - $ref: '#/components/schemas/Id' + description: (ALGO/TEZOS only) Consolidation ID of this consolidation transaction. + lastLedgerSequence: + type: integer + description: (XRP only) Absolute max ledger the transaction should be accepted in, whereafter it will be rejected + ledgerSequenceDelta: + type: integer + description: (XRP only) Relative ledger height (in relation to the current ledger) that the transaction should be accepted in, whereafter it will be rejected + rbfTxIds: type: array items: - $ref: '#/components/schemas/SignatureShare' - state: - $ref: '#/components/schemas/TransactionRequestState1' - txHash: - type: string - description: The signed hex of the message. - updatedDate: - description: The date when the message state was updated. + type: string + description: The list of transactions to accelerate using Replace-By-Fee (RBF) for UTXO coins (currently accelerating only one tx is supported). + isReplaceableByFee: + type: boolean + description: It is used to mark an UTXO transaction eligible for Replace-By-Fee (RBF) later. + validFromBlock: + type: integer + description: Optional block this transaction is valid from + validToBlock: + type: integer + description: Optional block this transaction is valid until + trustlines: + type: array + items: + $ref: '#/components/schemas/Trustline' + description: List of trustlines to manage on the account. Available for Stellar. + stakingOptions: + anyOf: + - $ref: '#/components/schemas/CSPRStakingOptions' + - $ref: '#/components/schemas/STXStakingOptions' + description: Required object for staking. Only for CSPR and STX. + messageKey: type: string - format: date-time - required: - - messageRaw - - state - MultisigTypeVersion: - type: string - enum: - - MPCv2 - MutabilityConstraint1: - type: string - description: | - Specifies whether a BitGo admin can change 'lockDate' - * 'managed' - Not locked, but requires approval from a BitGo admin to change - * 'permanent' - 'lockDate' cannot be changed - * 'sticky' - Not included in bulk unlock, but 'lockDate' can be individually changed - enum: - - managed - - permanent - - sticky - Name: + description: Optional parameter that takes a hexadecimal value to set 'messagekey' for an XRP 'accountSet' transaction. Recipients field should be empty when 'messageKey' is set. + reservation: + type: object + properties: + expireTime: + type: string + format: date-time + description: Required. The time that the unspent reservations should expire. + description: Optional parameter for UTXO coins to automatically reserve the unspents that are used in the build. Useful for Cold wallets. If using, must set expireTime. + CBITBankAccount: + title: CBIT Bank Account type: object + description: | + An external bank account. 'routingNumber' must be set for US bank accounts. + 'swiftCode' must be set for banks outside the US. properties: - first: + accountNumber: + description: Bank account number or IBAN. type: string - example: Jane - full: + minLength: 1 + maxLength: 34 + example: 114584906 + enterpriseId: + $ref: '#/components/schemas/Id' + address: type: string - example: Jane Doe - last: + example: 2390 El Camino Real, Palo Alto, CA 94306 + address1: type: string - example: Doe - NearStakeIntent1: - title: Near Stake - allOf: - - $ref: '#/components/schemas/StakeIntent2' - - type: object - properties: - recipients: - type: array - items: - $ref: '#/components/schemas/RecipientEntry1' - required: - - recipients - NearUnstakeIntent1: - title: Near Unstake - allOf: - - $ref: '#/components/schemas/UnstakeIntent2' - - type: object - properties: - recipients: - type: array - items: - $ref: '#/components/schemas/RecipientEntry1' - required: - - recipients - NearWithdrawIntent1: - title: Near Claim Unstake - allOf: - - $ref: '#/components/schemas/WithdrawIntent2' - - type: object + example: 2390 El Camino Real + address2: + type: string + example: Palo Alto, CA 94306 + address3: + type: string + example: '' + name: + type: string + example: America California Bank + ownerName: + type: string + example: Donald E. Knuth + ownerAddress: + type: string + example: 2390 El Camino Real, Palo Alto, CA 94306 + owner: + type: object + description: Bank account owner properties: - recipients: - type: array - items: - $ref: '#/components/schemas/RecipientEntry1' + name: + type: string + example: Donald E. Knuth + address1: + type: string + example: Computer Science Department + address2: + type: string + example: Stanford University + address3: + type: string + example: Stanford, CA 94305-9045 required: - - recipients - NextBatchPrevId: - type: string - format: uuid - example: 585951a5df8380e0e3063e9f - description: When a result set is truncated, this field returns the id of the last object in the previous batch. To get the next batch of results, pass this value via the 'prevId' query parameter. - NonParticipationTransactionBuildRequest: - title: Non participation transaction + - name + - address1 + externalId: + description: Required for CBIT transfers. + type: string + example: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6 + shortCountryCode: + $ref: '#/components/schemas/ShortCountryCode' + type: + $ref: '#/components/schemas/BankAccountType' + currency: + $ref: '#/components/schemas/BankAccountCurrency' + furtherCreditTo: + type: string + example: Donald E. Knuth + intermediaryBankName: + type: string + example: America California Bank + intermediaryBankId: + type: string + example: 59cd72485007a239fb00282ed480da1f + required: + - accountNumber + - address1 + - shortCountryCode + - name + - owner + - enterpriseId + - externalId + CSPRStakingOptions: + title: CSPR + type: object + properties: + amount: + allOf: + - $ref: '#/components/schemas/IntegerOrIntegerString' + description: Required for CSPR. String representation of the amount to stake or unstake in base units (motes). + validator: + allOf: + - $ref: '#/components/schemas/AddressString3' + description: Required for CSPR. The validator address used to delegate or undelegate. + CannotRemoveAdmin: + title: Can't remove admin allOf: - - $ref: '#/components/schemas/BuildParams' - - type: object - properties: - nonParticipation: - type: boolean + - $ref: '#/components/schemas/PlatformErrorNoName3' + - properties: + context: + type: object + properties: + adminCount: + type: integer + description: | + Current number of admins on the wallet. This number must be + greater than 'approvalsRequired', since an admin cannot approve + his/her own operation. + approvalsRequired: + description: Number of admins that must approve a wallet operation + type: integer + required: + - adminCount + - approvalsRequired + name: + type: string + description: Error code + enum: + - CannotRemoveAdmin required: - - nonParticipation - NumKeychains: - description: | - Number of keys provided. This value must be 3 for hot wallets, - 1 for **ofc** wallets, and not specified for custodial wallets. - type: integer - example: 3 - NumSignatures: - description: | - Number of signatures required. This value must be 2 for - hot wallets, 1 for **ofc** wallets, and not specified for custodial - wallets. - type: integer - example: 2 - NumberOrString: - oneOf: - - type: string - pattern: ^-?[\d\.]+$ - example: '1.5' - - type: number - PendingApproval1: - title: Pending approval + - context + - name + ChangeAddressTypes: + type: array + items: + $ref: '#/components/schemas/AddressType' + description: The address types for the change address. Order by preference and BitGo uses the first available. Any subset of 'p2sh', 'p2shP2wsh', 'p2wsh', 'p2tr' or 'p2trMusig2'. + ConsolidateAccountBuildRequest: type: object properties: - id: - $ref: '#/components/schemas/Id' - coin: - $ref: '#/components/schemas/Coin' - wallet: - $ref: '#/components/schemas/Id' - enterprise: - $ref: '#/components/schemas/Id' - organization: - $ref: '#/components/schemas/Id' - creator: - $ref: '#/components/schemas/Id' - createDate: - type: string - format: date-time - info: - anyOf: - - $ref: '#/components/schemas/PendingApprovalTransactionRequest' - - $ref: '#/components/schemas/PendingApprovalTransactionRequestFull1' - - $ref: '#/components/schemas/PendingApprovalUserChangeRequest' - - $ref: '#/components/schemas/PendingApprovalPolicyRuleRequest' - - $ref: '#/components/schemas/PendingApprovalUpdateApprovalsRequiredRequest' - - $ref: '#/components/schemas/PendingApprovalEnterpriseModificationResponse' - - $ref: '#/components/schemas/PendingApprovalEnterpriseInviteRequest' - state: - $ref: '#/components/schemas/PendingApprovalState1' - scope: - description: What kind of entity the Pending Approval is tied to - type: string - enum: - - enterprise - - wallet - userIds: - description: All the Users who should see this Pending Approval + consolidateAddresses: + description: | + Optional: restrict the consolidation to the specified receive addresses. If not provided, will consolidate the + funds from all receive addresses up to 500 addresses. type: array items: - $ref: '#/components/schemas/Id' - approvalsRequired: - $ref: '#/components/schemas/ApprovalsRequired' - walletLabel: + type: string + apiVersion: + description: | + The Trasaction Request API version to use for MPC EdDSA Hot Wallets. + Defaults based on the wallet type and asset curve. type: string - resolvers: - type: array - items: - type: object - properties: - user: - type: string - date: - type: string - resolutionType: - type: string - enum: - - approved - - awaitingSignature - - pending - - pendingBitGoAdminApproval - - pendingCryptographicApproval - - pendingCustodianApproval - - pendingFinalApproval - - pendingIdVerification - - pendingVideoApproval - - processing - - rejected - signatures: - type: array - items: - type: string - videoApprover: - type: string - videoLink: - type: string - videoException: - type: string - required: - - user - - date - - resolutionType - - signatures - addressLabels: - type: array - items: - $ref: '#/components/schemas/PendingApprovalAddressLabel1' - PendingApprovalAddressLabel1: - description: Address labels of recipients in this Pending Approval - type: object - properties: - address: - $ref: '#/components/schemas/AddressString3' - label: - $ref: '#/components/schemas/AddressLabel' - walletLabel: - $ref: '#/components/schemas/WalletLabel' - required: - - address - - label - PendingApprovalState1: - anyOf: - - $ref: '#/components/schemas/PendingApprovalStatePending1' - - $ref: '#/components/schemas/PendingApprovalStateResolved1' - PendingApprovalStatePending1: - title: Pending - type: string - enum: - - pending - - awaitingSignature - - pendingFinalApproval - - pendingCustodianApproval - - pendingVideoApproval - - pendingIdVerification - PendingApprovalStateResolved1: - title: Resolved - type: string - enum: - - approved - - processing - - rejected - PendingApprovalTransactionRequestFull1: - title: Transaction request (full) + enum: + - full + - lite + ConsolidateAccountBuildResponse: type: object properties: - transactionRequestFull: - type: object + keyDerivationPath: + type: string + ConsolidateTokenIntent1: + title: Consolidate Token + allOf: + - $ref: '#/components/schemas/BaseIntent2' + - $ref: '#/components/schemas/EthBuildOptions' + - type: object properties: - txRequestId: + intentType: type: string - policyUniqueId: - $ref: '#/components/schemas/Id' - verificationItems: + enum: + - consolidateToken + recipients: type: array items: - type: string - verificationRuleId: + $ref: '#/components/schemas/RecipientEntry1' + consolidateId: type: string - videoApprovers: - $ref: '#/components/schemas/IdArray' - walletRebalanceEventId: - $ref: '#/components/schemas/Id' - txRequest: - $ref: '#/components/schemas/TransactionRequest1' + description: Consolidation ID of this consolidation transaction + keepAlive: + type: string + description: True, if excluding the minimum-funding amounts in an address during consolidation. required: - - txRequestId - type: - type: string - enum: - - transactionRequestFull - PendingApprovals: - title: Pending approvals + - intentType + - recipients + ConsolidateUnspentsRequest: type: object properties: - pendingApprovals: - type: array - items: - $ref: '#/components/schemas/PendingApproval1' - Policy1: + feeRate: + allOf: + - $ref: '#/components/schemas/IntegerOrString' + - example: 10000 + description: | + Custom fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. + + If the 'feeRate' is less than the minimum required network fee, then the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000 microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is usually 4.5 times the open ledger fee. + + Note: The 'feeRate' overrides the 'maxFeeRate' and 'minFeeRate'. + maxFeeRate: + allOf: + - $ref: '#/components/schemas/IntegerOrIntegerString' + - example: 20000 + description: | + (BTC only) The maximum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. The 'maxFeeRate' limits the fee rate generated by both 'feeMultiplier' and 'numBlocks'. + + Note: The 'feeRate' overrides the 'maxFeeRate'. + maxFeePercentage: + type: integer + description: Maximum relative portion that can be spent towards fees + feeTxConfirmTarget: + type: integer + description: Block target for fee estimation + bulk: + type: boolean + description: Build multiple transactions at the same time. This enables you to increase the maximum number of unspents on the 'limit' parameter up to 2,000. If true, you must pass the 'txFormat' as 'psbt' and you can't pass the 'targetAddress' or 'numUnspentsToMake' parameters. + minValue: + allOf: + - $ref: '#/components/schemas/IntegerOrIntegerString' + description: Minimum value of unspents to use in base units (e.g. satoshis). Can be used to skip very small unspents when consolidating at higher fee rates. For doge, only string is allowed. + maxValue: + allOf: + - $ref: '#/components/schemas/IntegerOrIntegerString' + description: | + Maximum value of unspents to use in base units (e.g. satoshis). Should be used to prevent larger unspents from being consolidated needlessly, and that some funds remain available for spending while the consolidation transactions are in flight. For doge, only string is allowed. + minHeight: + type: integer + description: Minimum height of unspents on the block chain to use + minConfirms: + type: integer + description: Minimum confirmation threshold for external inputs + enforceMinConfirmsForChange: + type: boolean + description: Flag for enforcing minConfirms for change inputs + limit: + type: integer + description: Maximum number of unspents to use in the transaction + numUnspentsToMake: + type: integer + description: Number of new unspents to make + targetAddress: + type: string + description: address to use for generated outputs. Must be wallet address. + txFormat: + $ref: '#/components/schemas/UtxoTransactionFormat' + ConsolidationCoins: + type: string + enum: + - algo + - talgo + - xtz + - txtz + - eth + - hteth + description: This route is only available for Algorand, Tezos, and Eth. + CreateBlockWebhook: type: object properties: - id: - $ref: '#/components/schemas/Id' - date: + type: + $ref: '#/components/schemas/WebhookTypeBlock' + url: type: string - format: date-time + format: uri + example: http://your.server.com/webhook + description: URL to fire the webhook to. label: type: string - latest: - type: boolean - rules: - type: array - items: - $ref: '#/components/schemas/PolicyRule1' - version: + description: Label of the new webhook. + numConfirmations: type: integer + minimum: 0 + example: 6 + description: Number of confirmations before triggering the webhook. If 0 or unspecified, requests will be sent to the callback endpoint when the transfer is first seen and when it is confirmed. required: - - id - - latest - - rules - - version - PolicyRule1: + - type + - url + CreateKey: type: object properties: - id: + coinSpecific: + $ref: '#/components/schemas/KeyCreateCoinSpecific' + encryptedPrv: type: string - lockDate: + description: Private part of this key pair, encrypted with a passphrase that only the client knows. Required for all sources except 'bitgo'. + source: + $ref: '#/components/schemas/KeySource' + enterprise: + allOf: + - $ref: '#/components/schemas/Id' + description: The Enterprise that will own this key + newFeeAddress: + type: boolean + description: Create a new keychain instead of fetching enterprise key (only for Ethereum) + pub: + allOf: + - $ref: '#/components/schemas/Pub' + description: Public part of this key pair. If the key type is "independent" (default) it is required for user key and is optional for backup key. If key type is "tss" this field is not required. + isDistributedCustody: + type: boolean + description: Set to true if you want to create a key for distributed custody. This parameter is only valid if you have the distributed custody enterprise license enabled and are creating a BitGo key. Otherwise it will throw an error. + example: false + commonPub: type: string - description: The time at which this rule becomes immutable - format: date-time - mutabilityConstraint: - $ref: '#/components/schemas/MutabilityConstraint1' - coin: - $ref: '#/components/schemas/Coin' - type: - $ref: '#/components/schemas/PolicyRuleTriggers' - condition: - $ref: '#/components/schemas/PolicyRuleConditions1' - action: - $ref: '#/components/schemas/PolicyRuleActions' - required: - - id - - lockDate - - type - - action - PolicyRuleConditions1: - title: Type - description: Parameters for the type - oneOf: - - title: Velocity limit - type: object - properties: - amountString: - $ref: '#/components/schemas/IntegerString' - timeWindow: - type: integer - minimum: 0 - maximum: 2678400 - description: Time window in seconds for a velocity limit, between 1 and a month - - title: USD velocity limit - type: object - properties: - amountString: - $ref: '#/components/schemas/IntegerString' - timeWindow: - type: integer - minimum: 0 - maximum: 2678400 - description: Time window in seconds for a velocity limit, between 1 and 30 days - - title: Whitelist - type: object - properties: - addresses: - description: Addresses allowed/restricted for a whitelist/blacklist - type: array - items: - oneOf: - - type: string - - $ref: '#/components/schemas/Id' - - title: Advanced whitelist - type: object - properties: - entries: - description: Entries specifying which addresses/ wallets/ enterprises are on the whitelist - type: array - items: - $ref: '#/components/schemas/AdvancedListRuleEntry1' - - title: Webhook - type: object - properties: - url: - type: string - description: the url to query for the webhook - PolicyRuleUpdateConditions: - title: Type - description: Parameters for the type - anyOf: - - title: Advanced whitelist - type: object - properties: - add: - $ref: '#/components/schemas/AdvancedListRuleEntry1' - required: - - add - - title: Whitelist - type: object - properties: - add: - description: Address to add to the list - oneOf: - - type: string - - $ref: '#/components/schemas/Id' - metaData: - type: object - description: An object with arbitrary metadata about the added address. - properties: - addedBy: - type: string - description: Text indicating who added this address to the whitelist - additionalProperties: true - required: - - add - - title: Remove address from whitelist - type: object - properties: - remove: - description: Address to remove from the list - oneOf: - - type: string - - $ref: '#/components/schemas/Id' - - $ref: '#/components/schemas/AdvancedListRuleEntry1' - required: - - remove - - type: object - PsbtHex: - type: string - description: BIP174 serialization of a PSBT - example: 70736274ff0100530100000001ccf3d1b853dcff06a939afef91d8b178d74028516bb831d77fcfd5b1ce6715f00000000000ffffffff01f0b9f5050000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf24387000000004f010488b21e0000000000000000003a922e29f0c8eb0db2a60484cbdcb631f6b107c9caae3ffdcf3e7d2ec1f6bcd00312148715f361dab685a669d42431e5d6d3f973404dab9c9fd1b950b279ad763404cc18ae084f010488b21e0000000000000000006d1d656d3ddd91c194c04565a3603702a21016ced14a265f38982d6275e67b6403d3bac2313a7c6b21cbb11b14b0d10341f922c0a403a8bd8c87f0dc820f35af6e04f65cd8694f010488b21e000000000000000000cb04fd63ab34d90fe6466b880e2a02ccf8a863374312991af8911b1aaab443340336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b62909504f2ef0389000100c00100000000010101010101010101010101010101010101010101010101010101010101010101010000000000ffffffff0100e1f5050000000017a914d909474404c124a3d04c3fbff61faa49cf43c58b87024730440220360d495738071ed6930084713724262ef55d710e06d85f90b56727ab83c91b5702200ae452a812717ef0ac8866989ffc963d88c14f9694fa57ef046dd699bea1d5da01210247496797efe8b56780cd9bee19ac3d916624829cacd3f1236fa608000193e54d0000000001012000e1f5050000000017a914d909474404c124a3d04c3fbff61faa49cf43c58b87010469522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae220602cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b420914f2ef038900000000000000000000000000000000220602d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab14cc18ae080000000000000000000000000000000022060344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f114f65cd8690000000000000000000000000000000000010069522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae2202035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf214cc18ae0800000000000000000100000000000000220203e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b14f65cd86900000000000000000100000000000000220203f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f14f2ef03890000000000000000010000000000000000 - Pub: - type: string - description: public part of a key pair - example: xpub661MyMwAqRbcGMVhmc7wqQRYMtcX9LAvSj1pjB213y5TsrkV2uuzJjWnjBrT1FUeNWGPjaVm5p7o6jdNcQJrV1cy3a1R8NQ9m7LuYKA8RpH - RecipientEntry1: - type: object - properties: - address: - $ref: '#/components/schemas/TxAddress' - amount: - $ref: '#/components/schemas/Amount2' - data: - type: string - tokenData: - $ref: '#/components/schemas/TokenData1' - required: - - address - - amount - RecipientTokenData: - type: object - properties: - tokenName: - type: string - description: Name of token, as represented in BitGoJS Statics package. - tokenContractAddress: - type: string - description: Address of token or smart contract. Required if token is unsupported by BitGo. Not required if passing "tokenName". - decimalPlaces: - type: integer - description: Relevant for fungible tokens. Not required if passing "tokenName". Defaults to smallest base unit. - tokenType: + description: The commonPub for the key. This value is necessary for BLS keys when the source is either “user” or “backup”. Setting this indicates to BitGo that the owner of the key has received all key shares they needed for generating their key. + commonKeychain: type: string - description: Token standard - enum: - - ERC20 - - ERC721 - - ERC1155 - tokenId: + description: The commonKeychain for the key if this is a MPC key. This value is required to be set when the type is set to “tss” and when the source is either “user” or “backup”. Setting this indicates to BitGo that the owner of the key has received all key shares they needed for generating their key. This value is the common pub concatenated with the common chaincode. + keyShares: + type: array + items: + $ref: '#/components/schemas/KeyShare' + description: Only required for BitGo MPC keys. Those will be the shares from the user and the backup provider that BitGo will end up generating the BitGo key (share) from. + type: + $ref: '#/components/schemas/BackupKeyType' + keyType: + allOf: + - $ref: '#/components/schemas/KeyType' + - default: tss + userGPGPublicKey: type: string - description: ID of token to use when constructing transaction or calldata. Required for NFTs. - tokenQuantity: + description: User's public key in ASCII armored format. Only required for BitGo MPC keys. + backupGPGPublicKey: type: string - description: Quantity of token to use when constructing calldata (amount to transfer). - RejectReshare: - type: object - properties: - userId: - $ref: '#/components/schemas/Id' - required: - - userId - ResendShareEmailResponse: - type: object - properties: - resent: + description: Backup public key in ASCII armored format (may be managed by user or KRS). Only required for BitGo MPC keys. + isMPCv2: type: boolean - ReservedUnspent: + description: Whether a key or wallet is using the Multi-Party Computation version 2 protocol. Optional field. + CreatePolicyRule: type: object - description: a ReservedUnspent object properties: - id: + coin: type: string - description: The id of the unspent in the form : - example: 003f688cc349f1fca8ac5ffa21671ca911b6ef351085c60733ed8c2ebf162cb8:2 - walletId: - $ref: '#/components/schemas/Id' - expireTime: + example: zrx + description: | + If set, the rule will only apply to the given coin or ERC20 token in an + Ethereum wallet. It is generally recommended to not set a coin for policy rules of the following types: + 'advancedWhitelist', 'allTx', 'coinAddressWhitelist', 'coinAddressBlacklist', 'webhook'. + id: type: string - format: date-time - userId: - $ref: '#/components/schemas/Id' + description: The id of the rule, must be unique among rules in the policy + type: + $ref: '#/components/schemas/CreatePolicyRuleTriggers' + condition: + $ref: '#/components/schemas/PolicyRuleUpdateConditions' + action: + $ref: '#/components/schemas/PolicyRuleActions' required: - id - - walletId - - expireTime - - userId - STXStakingOptions: - title: STX - type: object - properties: - contractName: - type: string - description: The STX staking contract name. Use pox-3. - default: pox-3 - functionName: - type: string - description: STX staking contract function. - oneOf: - - type: string - description: Function name used to delegate funds. - default: delegate-stx - - type: string - description: Function name used to revoke delegated funds. - default: revoke-delegate-stx - functionArgs: - type: array - description: The 4 Objects are required and in the order expressed. - items: - anyOf: - - title: uint128 - type: object - properties: - type: - type: string - default: uint128 - description: Type of argument. Use the default. - val: - type: string - description: Amount in micro-stx - - title: principal - type: object - properties: - type: - type: string - default: principal - description: Type of argument. Use the default. - val: - type: string - description: Address of the validator - - title: optional - type: object - properties: - type: - type: string - default: optional - description: Type of argument. Use the default. - val: - type: string - description: The number of cycles that the delegation will last. This is a mandatory field that must be greater than 1. - - title: optional - type: object - properties: - type: - type: string - default: optional - description: Type of argument. Use the default. - val: - type: object - properties: - type: - type: string - default: tuple - description: Type of argument. Use the default. - val: - type: array - description: The 2 objects are required and in the order expressed. - items: - anyOf: - - title: hash - type: object - properties: - key: - type: string - default: hashbytes - description: Type of argument. Use the default. - type: - type: string - default: buffer - description: Type of argument. Use the default. - val: - type: string - description: The BTC Address hash. - - title: version - type: object - properties: - key: - type: string - default: version - description: Type of argument. Use the default. - type: - type: string - default: buffer - description: Type of argument. Use the default. - val: - type: string - description: The BTC Address version. - SendLabel: + - type + - action + CreatePolicyRuleTriggers: + type: string + enum: + - advancedWhitelist + - allTx + - allTxNoFiat + - coinAddressWhitelist + - coinAddressBlacklist + - velocityLimit + - webhook + description: What causes this rule to trigger + CreateSendLabel: type: object properties: - id: - $ref: '#/components/schemas/Id' coin: $ref: '#/components/schemas/Coin' address: @@ -39109,3366 +38172,4596 @@ components: type: string maxLength: 250 required: - - id - coin - address - enterpriseId - label - SendTransaction: - title: Sent Transaction - allOf: - - $ref: '#/components/schemas/BuildParams' - - type: object - description: Include buildParams from the build request to be stored in case of rebuilding. - type: object - description: This endpoint broadcasts half-signed transactions. - properties: - comment: - type: string - description: An optional memo for the transaction. - maxLength: 256 - halfSigned: - type: object - properties: - txHex: - type: string - description: The half-signed transaction. The request must include this or a txHex. - txHex: - type: string - description: The half-signed, serialized transaction hex. Alternative to sending halfSigned. - sequenceId: - type: string - description: Your own unique ID - videoApprovers: - $ref: '#/components/schemas/VideoApprovers' - Session1: + CreateSignatureShareRequest: type: object properties: - created: - type: string - format: date-time - expires: - type: string - format: date-time - id: - $ref: '#/components/schemas/Id' - ip: + signatureShare: allOf: - - $ref: '#/components/schemas/Ip' - description: IP address of the client that requested this access token - ipRestrict: + - $ref: '#/components/schemas/SignatureShare' + description: A user-provided share to be used in the ECDSA or EDDSA MPC signing flow. Please use signatureShares instead + signatureShares: type: array items: - type: string - format: ipv4 - description: IP addresses of clients that are allowed to use this token - origin: - type: string - example: test.bitgo.com - description: BitGo environment that issued this token - scope: - allOf: - - $ref: '#/components/schemas/Scope' - description: Session permissions - unlock: - allOf: - - $ref: '#/components/schemas/Unlock1' - description: The Unlock object, returned if this session is currently unlocked. - user: - $ref: '#/components/schemas/Id' - required: - - created - - expires - - id - - origin - - scope - - user - ShareWalletRequest: - type: object - properties: - permission: + $ref: '#/components/schemas/SignatureShare' + description: User-provided shares to be used in the ECDSA or EDDSA MPC signing flow. + signerShare: type: string description: | - Comma-separated list of privileges for a wallet. Includes: - - - 'admin' - Can manage wallet policies and users and approve or reject pending approvals. - - 'freeze' - Can freeze a wallet, disabling all withdrawals. - - 'spend' - Can initiate withdrawals and generate new receive addresses. - - 'trade' - Can initiate trades from a Go Account ('trading' wallet type). - - 'view' - Can view balances and transactions. - - Permissions don't overlap. Required parameter if 'reshare' is false. - enum: - - admin - - spend - - trade - - view - example: spend,view - message: + An openPGP ascii armored message (encrypted to the known HSM public key) containing the + previous signer’s offset secret share as a 128 character hex string (64 bytes) consisting of + the new offset “u” private component from the user [or backup] new offset Y-share as a 64 character + hex string (32 bytes) concatenated with the new offset “chaincode” component of the new offset Y-share + as a 64 character hex string (32 bytes). Must be provided when uploading an R share. + userPublicGpgKey: type: string - description: User readable message to display to the share recipient - reshare: - type: boolean - description: Flag for reinviting a user to the wallet. This is required if the invitee has already been invited to the wallet, but has changed their password and needs a new invite - disableEmail: - type: boolean - description: Flag for disabling invite notification email - user: - $ref: '#/components/schemas/Id' - keychain: - $ref: '#/components/schemas/WalletShareKeychain' - skipKeychain: - type: boolean - description: If true, allows creating wallet shares without a sharing a key (keychain) when the wallet is shared with spend permission. - required: - - user - ShareWalletResponse: + description: User’s public key of the gpg key. + CreateWallet: type: object - description: Wallet share object properties: - id: + coinSpecific: + $ref: '#/components/schemas/WalletCreateCoinSpecific' + enterprise: allOf: - $ref: '#/components/schemas/Id' - description: Wallet share id - coin: - allOf: - - $ref: '#/components/schemas/Coin' - description: Coin of the wallet - wallet: + description: This is required for Ethereum wallets since they can only be created as part of an enterprise. + keys: allOf: - - $ref: '#/components/schemas/Id' - description: Wallet id - walletLabel: + - $ref: '#/components/schemas/Keys' + description: This is required for all wallets where the client supplies the keys to be used. The only case where this is not required is when the type is set to 'custodial'. + keySignatures: + type: object + properties: + backup: + type: string + description: a signature of the backup pub key using the user key (useful for change address verification) + bitgo: + type: string + description: a signature of the bitgo pub key using the user key (useful for change address verification) + label: $ref: '#/components/schemas/WalletLabel' - fromUser: - allOf: - - $ref: '#/components/schemas/Id' - description: Id of the user sharing the wallet - toUser: - allOf: - - $ref: '#/components/schemas/Id' - description: Id of the user receiving the share - permissions: - type: string - allOf: - - $ref: '#/components/schemas/WalletPermission' - message: - type: string - description: Message for the user receiving the share - state: - type: string - allOf: - - $ref: '#/components/schemas/WalletShareState1' - description: State of the share - enterprise: + multisigType: + $ref: '#/components/schemas/WalletMultisigType' + address: + $ref: '#/components/schemas/WalletCustomAddress' + m: allOf: - - $ref: '#/components/schemas/Id' - description: If the wallet belongs to an enterprise, the id of that enterprise - pendingApprovalId: + - $ref: '#/components/schemas/NumSignatures' + description: This is required for all wallets where the client supplies the keys to be used. The only case where this is not required is when the type is set to 'custodial'. + 'n': allOf: - - $ref: '#/components/schemas/Id' - description: If the share generated a pending approval, the id of that pending approval - keychain: - $ref: '#/components/schemas/WalletShareKeychain' - ShortCountryCode: - type: string - description: Two-letter country code, as specified by ISO 3166-1 alpha-2 - minLength: 2 - maxLength: 2 - example: US - enum: - - AD - - AE - - AF - - AG - - AI - - AL - - AM - - AO - - AQ - - AR - - AS - - AT - - AU - - AW - - AX - - AZ - - BA - - BB - - BD - - BE - - BF - - BG - - BH - - BI - - BJ - - BL - - BM - - BN - - BO - - BQ - - BR - - BS - - BT - - BV - - BW - - BY - - BZ - - CA - - CC - - CD - - CF - - CG - - CH - - CI - - CK - - CL - - CM - - CN - - CO - - CR - - CU - - CV - - CW - - CX - - CY - - CZ - - DE - - DJ - - DK - - DM - - DO - - DZ - - EC - - EE - - EG - - EH - - ER - - ES - - ET - - FI - - FJ - - FK - - FM - - FO - - FR - - GA - - GB - - GD - - GE - - GF - - GG - - GH - - GI - - GL - - GM - - GN - - GP - - GQ - - GR - - GS - - GT - - GU - - GW - - GY - - HK - - HM - - HN - - HR - - HT - - HU - - ID - - IE - - IL - - IM - - IN - - IO - - IQ - - IR - - IS - - IT - - JE - - JM - - JO - - JP - - KE - - KG - - KH - - KI - - KM - - KN - - KP - - KR - - KW - - KY - - KZ - - LA - - LB - - LC - - LI - - LK - - LR - - LS - - LT - - LU - - LV - - LY - - MA - - MC - - MD - - ME - - MF - - MG - - MH - - MK - - ML - - MM - - MN - - MO - - MP - - MQ - - MR - - MS - - MT - - MU - - MV - - MW - - MX - - MY - - MZ - - NA - - NC - - NE - - NF - - NG - - NI - - NL - - 'NO' - - NP - - NR - - NU - - NZ - - OM - - PA - - PE - - PF - - PG - - PH - - PK - - PL - - PM - - PN - - PR - - PS - - PT - - PW - - PY - - QA - - RE - - RO - - RS - - RU - - RW - - SA - - SB - - SC - - SD - - SE - - SG - - SH - - SI - - SJ - - SK - - SL - - SM - - SN - - SO - - SR - - SS - - ST - - SV - - SX - - SY - - SZ - - TC - - TD - - TF - - TG - - TH - - TJ - - TK - - TL - - TM - - TN - - TO - - TR - - TT - - TV - - TW - - TZ - - UA - - UG - - UM - - US - - UY - - UZ - - VA - - VC - - VE - - VG - - VI - - VN - - VU - - WF - - WS - - YE - - YT - - ZA - - ZM - - ZW - SimulateWalletWebhookRequestBody: - oneOf: - - title: Transfer - type: object - properties: - transferId: - allOf: - - $ref: '#/components/schemas/Id' - description: The ID of a transfer on the specified wallet. This must be provided if the webhook is of type 'transfer'. - required: - - transferId - - title: Pending Approval - type: object - properties: - pendingApprovalId: - allOf: - - $ref: '#/components/schemas/Id' - description: The ID of a pending approval on the specified wallet. This must be provided if the webhook is of type 'pendingApproval'. - required: - - pendingApprovalId - - title: Transaction request + - $ref: '#/components/schemas/NumKeychains' + description: This is required for all wallets where the client supplies the keys to be used. The only case where this is not required is when the type is set to 'custodial'. + tags: + type: array + items: + $ref: '#/components/schemas/Id' + type: + $ref: '#/components/schemas/WalletTypePublic' + walletVersion: + type: integer + default: 1 + description: (ETH only) Specify the wallet creation contract version used when creating a wallet contract. Use 0 for the old wallet creation, 1 for the new wallet creation, where it is only deployed upon receiving funds. 2 for wallets with the same functionality as v1 but with NFT support. 3 for MPC wallets. 4 is same as v2 but with some changes related to network identifier and encoding of tx data. v4 is applicable for Arbitrum, Optimism, ZkSync, and other EVM-compatible chains that we will onboard in the future. 5 for MPC MPCv2 wallets. 6 for EVM MPCv2 wallets with receive addresses. + minimum: 0 + maximum: 6 + eip1559: type: object + description: '(ETH walletVersion: 0 wallets only) Specify eip1559 fee parameters in wallet creation transactions.' properties: - txRequestId: + maxPriorityFeePerGas: type: string - description: The txRequestId of a transaction request on the specified wallet. This must be provided if the webhook is of type 'txRequest' or 'txRequestTransaction'. + description: Max priority tip price for EIP1559 transactions. Only for ETH and ERC20 tokens. + maxFeePerGas: + type: string + description: Max total gasPrice for EIP1559 transactions. Only for ETH and ERC20 tokens. required: - - txRequestId - TokenData1: + - maxPriorityFeePerGas + - maxFeePerGas + required: + - label + DomesticWireBankAccount: + title: Domestic Wire Bank Account type: object + description: | + An external bank account. 'routingNumber' must be set for US bank accounts. + 'swiftCode' must be set for banks outside the US. properties: - tokenType: + accountNumber: + description: Bank account number or IBAN. type: string - description: The type of standard of the token. - example: ERC721 - tokenQuantity: + minLength: 1 + maxLength: 34 + example: 114584906 + enterpriseId: + $ref: '#/components/schemas/Id' + address: type: string - description: The quantity of token to transfer (should be 1 for ERC721). - example: '101' - tokenContractAddress: + example: 2390 El Camino Real, Palo Alto, CA 94306 + address1: type: string - description: Address of the token contract which is necessary if the token is not supported on WP. - example: '0x3d8e90d5F403a0A18dfeeAd36E30EF95D5E1ad3a' - tokenName: + example: 2390 El Camino Real + address2: type: string - description: Name of the token as it is supported on WP. - example: tpolygon:name - tokenId: + example: Palo Alto, CA 94306 + address3: type: string - description: Id of the token to be transferred which is required for NFTs. - example: '123' - decimalPlaces: - type: number - description: Number of decimal places the token uses (for fungible tokens unsupported in WP). - example: 18 - TotalBalances: - type: object - properties: - balances: - type: array - items: - type: object - properties: - balanceString: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: | - String representation of the balance in base units. Guaranteed to not lose - precision. - coin: - $ref: '#/components/schemas/Coin' - Transaction1: - type: object - properties: - state: - $ref: '#/components/schemas/TransactionState1' - unsignedTx: - allOf: - - $ref: '#/components/schemas/TransactionRequestUnsignedTransaction' - description: Holds the unsigned transaction for this transaction in a tx-request. - signatureShares: - type: array - description: Only used for MPC coins. This is used to collect signature shares from and exchange them with the user. Holds the signature shares for this transaction in a tx-request. - items: - $ref: '#/components/schemas/SignatureShare' - commitmentShares: - type: array - description: Only used for MPC coins on EdDSA curve. This is used to collect commitment shares from and exchange them with the user. Holds the commitment shares for this transaction in a tx-request. - items: - $ref: '#/components/schemas/CommitmentShare' - txHash: + example: '' + name: type: string - description: The hash of the transaction from the TxRequest that has been signed and is pending broadcast. - bitgoPaillierChallenge: - description: BitGo-to-user paillier challenge. Required when signing with ECDSA MPC wallets. + example: America California Bank + ownerName: + type: string + example: Donald E. Knuth + ownerAddress: + type: string + example: 2390 El Camino Real, Palo Alto, CA 94306 + owner: type: object + description: Bank account owner properties: - p: - type: array - items: - type: string + name: + type: string + example: Donald E. Knuth + address1: + type: string + example: Computer Science Department + address2: + type: string + example: Stanford University + address3: + type: string + example: Stanford, CA 94305-9045 + required: + - name + - address1 + routingNumber: + description: US bank routing number. Required for domestic wire transfers within the US. + type: string + example: '129131673' + minLength: 9 + maxLength: 9 + pattern: ^[0-9]+$ + shortCountryCode: + $ref: '#/components/schemas/ShortCountryCode' + type: + $ref: '#/components/schemas/BankAccountType' + currency: + $ref: '#/components/schemas/BankAccountCurrency' + furtherCreditTo: + type: string + example: Donald E. Knuth + intermediaryBankName: + type: string + example: America California Bank + intermediaryBankId: + type: string + example: 59cd72485007a239fb00282ed480da1f required: - - state - - unsignedTx - TransactionBuildRequest: - title: Withdrawal + - accountNumber + - address1 + - shortCountryCode + - name + - owner + - enterpriseId + - routingNumber + DotPaymentIntent1: + title: DOT Payment Intent allOf: - - $ref: '#/components/schemas/BuildParams' - type: object properties: - recipients: - type: array - items: - type: object - properties: - amount: - allOf: - - $ref: '#/components/schemas/RecipientAmount' - description: String representation of the amount to send in base units (satoshis/litoshis/zatoshis/duffs). For doge, only string is allowed. Passing in 'max' will send the recipient the maximum amount available, minus fees and amounts for other recipients. Only a single recipient with a 'max' amount is allowed. - address: - allOf: - - $ref: '#/components/schemas/AddressString3' - description: The address to send to - memo: - anyOf: - - $ref: '#/components/schemas/MemoString' - - $ref: '#/components/schemas/MemoObject' - description: A list of recipient addresses and amounts. Must be present but empty for Child-Pays-For-Parent transactions. - txFormat: - $ref: '#/components/schemas/UtxoTransactionFormat' + proxy: + $ref: '#/components/schemas/DotProxy' + owner: + $ref: '#/components/schemas/optionalString' required: - - recipients - TransactionBuildResult: + - proxy + - owner + - $ref: '#/components/schemas/PaymentIntent1' + - $ref: '#/components/schemas/DotAccountBaseBuildOptions' + EnterpriseUser: type: object properties: - keyDerivationPath: + id: + $ref: '#/components/schemas/Id' + username: + $ref: '#/components/schemas/Email' + firstName: type: string - TransactionInitiateRequest: - allOf: - - $ref: '#/components/schemas/BuildParams' - - type: object + description: User first name + example: Jane + lastName: + type: string + description: User last name + example: Doe + fullName: + type: string + description: User full name + example: Jane Doe + isActive: + type: boolean + email: + type: object properties: - recipients: - type: array - items: - type: object - properties: - amount: - allOf: - - $ref: '#/components/schemas/RecipientAmount' - description: String representation of the amount to send in base units (satoshis/litoshis/zatoshis/duffs). For doge, only string is allowed. Passing in 'max' will send the recipient the maximum amount available, minus fees and amounts for other recipients. Only a single recipient with a 'max' amount is allowed. - address: - allOf: - - $ref: '#/components/schemas/AddressString3' - description: The address to send to - memo: - anyOf: - - $ref: '#/components/schemas/MemoString' - - $ref: '#/components/schemas/MemoObject' - description: A list of recipient addresses and amounts. Must be present but empty for Child-Pays-For-Parent transactions. - TransactionRequest1: - anyOf: - - $ref: '#/components/schemas/TransactionRequestLite1' - - $ref: '#/components/schemas/TransactionRequestFull1' - required: - - txRequestId - - version - - latest - - walletId - - state - - date - - userId - - intent - TransactionRequestBase1: + email: + $ref: '#/components/schemas/Email' + verified: + type: boolean + description: User has verified their email + verified: + type: boolean + description: User has verified their email + identity: + type: object + properties: + kyc: + type: object + properties: + hasVideoID: + type: boolean + example: true + description: User has done initial video ID + overallState: + $ref: '#/components/schemas/UserKycState' + required: + type: boolean + example: true + description: Sanction screening is required for this User + EnterpriseUsersResponse: type: object properties: - txRequestId: - type: string - description: A unique ID for the TxRequest document across all wallets. The combination of the txRequestId and version will always be unique. - version: - type: number - description: The version of the document. Data changes are done only with inserts and incrementing the version. - latest: - type: boolean - description: A boolean flag that indicates whether the document is the latest version of the TxRequest. - walletId: - type: string - description: The id of the Wallet the TxRequest is for. - walletType: - allOf: - - $ref: '#/components/schemas/WalletTypePublic' - description: The type describes who owns the keys to the wallet associated to the TxRequest. - enterpriseId: - type: string - description: If the wallet that owns the TxRequest is owned by an enterprise then this is the Id of said enterprise. - state: - $ref: '#/components/schemas/TransactionRequestState1' - date: - allOf: - - $ref: '#/components/schemas/DateTime' - description: The date and time this version of the TxRequest document was created. - createdDate: - allOf: - - $ref: '#/components/schemas/DateTime' - description: The date and time the version 1 TxRequest document was created. - userId: - type: string - description: The Id of the User that produced this version of the TxRequest document. Could have created a new document or updated an existing document. - initiatedBy: - type: string - description: The Id of the User that originally created the TxRequest document (initiated the TxRequest). - updatedBy: - type: string - description: The Id of the User that last updated the TxRequest document. This is an alias for the userId field. - intent: - $ref: '#/components/schemas/TransactionRequestIntent1' - intents: + adminUsers: type: array items: - $ref: '#/components/schemas/TransactionRequestIntent1' - pendingApprovalId: - type: string - description: The id of the Pending Approval that was created for the TxRequest if one was required. - isCanceled: + $ref: '#/components/schemas/EnterpriseUser' + nonAdminUsers: + type: array + items: + $ref: '#/components/schemas/EnterpriseUser' + count: + type: integer + description: The total number of Users returned. + incomplete: type: boolean - description: True, if the transaction request is canceled. - required: - - txRequestId - - version - - latest - - walletId - - state - - date - - createdDate - - userId - - initiatedBy - - updatedBy - - intents - TransactionRequestFull1: - title: Full - allOf: - - $ref: '#/components/schemas/TransactionRequestBase1' - - type: object - properties: - transactions: - description: Transaction information. - type: array - items: - $ref: '#/components/schemas/Transaction1' - messages: - description: Messages for the transaction request. - type: array - items: - $ref: '#/components/schemas/Message1' - required: - - txRequestId - - version - - latest - - walletId - - state - - date - - userId - - intent - - transactions - TransactionRequestIntent1: - anyOf: - - $ref: '#/components/schemas/AdaStakeIntent1' - - $ref: '#/components/schemas/ConsolidateTokenIntent1' - - $ref: '#/components/schemas/CosmosContractCallIntent' - - $ref: '#/components/schemas/DOTClaimIntent' - - $ref: '#/components/schemas/DotPaymentIntent1' - - $ref: '#/components/schemas/DotStakingIntent' - - $ref: '#/components/schemas/DotUnstakingIntent' - - $ref: '#/components/schemas/EthAccelerationIntent' - - $ref: '#/components/schemas/EthFillNonceIntent' - - $ref: '#/components/schemas/EthPaymentIntent' - - $ref: '#/components/schemas/ETHSignMessageIntent' - - $ref: '#/components/schemas/EthStakingIntent' - - $ref: '#/components/schemas/NearStakeIntent1' - - $ref: '#/components/schemas/NearUnstakeIntent1' - - $ref: '#/components/schemas/NearWithdrawIntent1' - - $ref: '#/components/schemas/SolClaimIntent' - - $ref: '#/components/schemas/SolCreateAssociatedTokenAccountIntent' - - $ref: '#/components/schemas/SolStakeIntent' - - $ref: '#/components/schemas/SolUnstakeIntent' - - $ref: '#/components/schemas/TransferTokenIntent1' - - $ref: '#/components/schemas/UnstakeIntent2' - - $ref: '#/components/schemas/WalletRecoveryIntent1' - - $ref: '#/components/schemas/WithdrawIntent2' - TransactionRequestLite1: - title: Lite - allOf: - - $ref: '#/components/schemas/TransactionRequestBase1' - - type: object - properties: - unsignedTxs: - type: array - description: Holds all unsigned transactions that will be used to fulfill the TxRequest for MPC wallets. - items: - $ref: '#/components/schemas/TransactionRequestUnsignedTransaction' - signatureShares: - type: array - description: Only used for MPC coins. This is used to collect signature shares from and exchange them with the user. - items: - $ref: '#/components/schemas/SignatureShare' - commitmentShares: - type: array - description: Only used for MPC coins on EdDSA curve. This is used to collect commitment shares from and exchange them with the user. - items: - $ref: '#/components/schemas/CommitmentShare' - txHashes: - type: array - items: - type: string - description: The hashes of all transactions from the TxRequest that have been signed and are pending broadcast. - required: - - txRequestId - - version - - latest - - walletId - - state - - date - - userId - - intent - TransactionRequestState1: - type: string - enum: - - initialized - - pendingApproval - - pendingUserCommitment - - pendingUserRShare - - pendingUserGShare - - readyToSend - - pendingUserSignature - - pendingDelivery - - signed - - delivered - - canceled - - rejected - - failed - TransactionResponse: + description: Set to true if the Enterprise has at least 500 v1 or v2 wallets. If there are more than 500 wallets (either v1 or v2) it could mean that some Wallets were not considered for finding all Users. + ErrorPayload: type: object properties: - transfer: - $ref: '#/components/schemas/Transfer' - txid: + error: type: string - description: The transaction's unique identifier - tx: + errorName: type: string - description: The encoded transaction, either base64 for XLM or hex for other coins - status: - $ref: '#/components/schemas/TransferState' - TransactionState1: - type: string - enum: - - initialized - - pendingSignature - - eddsaPendingCommitment - - eddsaPendingRShare - - eddsaPendingGShare - - readyToCombineShares - - signed - - held - - delivered - - invalidSignature - - rejected - - ecdsaMPCv2Round1 - - ecdsaMPCv2Round2 - - ecdsaMPCv2Round3 - Transfer: + required: + - error + - errorName + EstimateTransactionFees: + title: Bitcoin type: object properties: - coin: - $ref: '#/components/schemas/Coin' - id: - $ref: '#/components/schemas/Id' - wallet: - $ref: '#/components/schemas/Id' - enterprise: - $ref: '#/components/schemas/Id' - txid: - $ref: '#/components/schemas/TxId' - txidType: - type: string - description: The type of the transaction id - enum: - - transactionHash - - blockHash - height: + feePerKb: type: integer - description: The height of the block this Transfer was confirmed in (999999999 if unconfirmed) - heightId: - type: string - description: The unique height id of the block - date: - type: string - format: date-time - description: The date this Transfer was last updated - confirmations: + description: (BTC only) The fee (in base units) per kilobyte (or virtual kilobyte) required to confirm a transaction on 2 or more blocks. + example: 15902 + cpfpFeePerKb: type: integer - description: The number of blocks that have been confirmed since this Transfer's block was confirmed - type: - type: string - description: Defines whether or not this Transfer was sent or received by the user - enum: - - send - - receive - value: + description: | + (BTC only) Child-Pays-For-Parent (CPFP) fee (in base units) per kilobyte (or virtual kilobyte). Includes the fees for all unconfirmed transactions dependent on the CPFP transaction. + numBlocks: type: integer - description: The total value (in base units) sent by this Transfer (may be approximate for ETH and other coins where amounts in base units can exceed 2^53 - 1) - valueString: + description: | + (BTC only) The number of blocks required to confirm a transaction. You can use 'numBlocks' to estimate the fee rate by targeting confirmation within a given number of blocks. If both 'feeRate' and 'numBlocks' are absent, the transaction defaults to 2 blocks for confirmation. + + Note: The 'maxFeeRate' limits the fee rate generated by 'numBlocks'. + example: 2 + confidence: + type: integer + minimum: 0 + maximum: 100 + description: (BTC only) The confidence (as a percentage) in the accuracy of the fee estimate. + example: 80 + feeByBlockTarget: + type: object + description: | + (UTXO only) Custom multiplier to the 'feeRate'. The resulting fee rate is limited by the 'maxFeeRate'. For replace-by-fee (RBF) transactions (that include 'rbfTxIds'), the 'feeMultiplier' must be greater than 1, since it's an absolute fee multiplier to the transaction being replaced. + + Note: The 'maxFeeRate' limits the fee rate generated by 'feeMultiplier'. + example: + '1': 50536 + '2': 15902 + '3': 1579 + required: + - feePerKb + - numBlocks + EstimateTransactionFeesAccountCoin: + title: Account-based + type: object + properties: + feeEstimate: allOf: - $ref: '#/components/schemas/IntegerString' - description: The total value (in base units) sent by this Transfer represented as a String - intendedValueString: - description: A string representation (in base units) of the initial value for the transfer. This is present because when a transaction fails on chain, its value is mutated to be zero. This string is immutable and will always be the intended value of the initial transfer regardless of the final state of the transaction. + description: fee estimate for a transaction for the given account-based coin, denominated in the base units of that coin (i.e. Drops for XRP, Stroops for XLM, etc) + required: + - feeEstimate + EstimateTransactionFeesAlgo: + title: ALGO + type: object + properties: + feeRate: + description: Calculated by transaction size. Fee rate is in microAlgo (base unit). + type: integer + example: 1 + minimumFee: + description: Always 1000. + type: integer + default: 1000 + example: 1000 + required: + - feeRate + - minimumFee + EstimateTransactionFeesEth: + title: ETH + type: object + properties: + feeEstimate: allOf: - $ref: '#/components/schemas/IntegerString' - baseValue: - type: integer - description: The value (in base units) sent by this transfer, excluding network fees. BitGo is deprecating this field in the future. Instead, use baseValueWithoutFees. - baseValueString: + description: fee estimate for a transaction for the given account-based coin, denominated in base units (i.e. Wei) + gasLimitEstimate: allOf: - $ref: '#/components/schemas/IntegerString' - description: The value (in base units) sent by this transfer, excluding network fees represented as a string. BitGo is deprecating this field in the future. Instead, use baseValueWithoutFees. - baseValueWithoutFees: - type: integer - description: The value (in base units) sent by this transfer excluding network fees. - baseValueWithoutFeesString: + description: The amount of gas that the transaction will use, if recipient is provided in the request + minGasPrice: allOf: - $ref: '#/components/schemas/IntegerString' - description: The value (in base units) sent by this transfer, excluding network fees, represented as a string - feeString: + description: minimum gas price that can be provided in base units + minGasLimit: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: minimum gas limit that can be provided in base units + maxGasLimit: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: maximum gas limit that can be provided in base units + minGasIncreaseBy: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: gas price must not be increased by less than this after being introduced to the network + eip1559: + allOf: + - $ref: '#/components/schemas/EstimateTransactionFeesEthEip1559' + description: EIP 1559 fee estimates + required: + - feeEstimate + - minGasPrice + - minGasLimit + - maxGasLimit + - minGasIncreaseBy + EstimateTransactionFeesEthEip1559: + type: object + properties: + baseFee: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: Block base fees, in base units (i.e. Wei), per gas. Zeroes are returned for pre-EIP-1559 blocks + gasUsedRatio: + description: Block gas used ratio. Calculated as the ratio of gasUsed and gasLimit type: string - description: The Transfer's fee (in base units) represented as a String - payGoFee: + safeLowMinerTip: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: 25th percentile of the tips spent in the last block + normalMinerTip: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: 35th percentile of the tips spent in the last block + standardMinerTip: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: 50th percentile of the tips spent in the last block + fastestMinerTip: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: 75th percentile of the tips spent in the last block + ludicrousMinerTip: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: 97th percentile of the tips spent in the last block + required: + - baseFee + - gasUsedRatio + EstimateTransactionFeesTrx: + title: TRX + type: object + properties: + fee: + description: Maximum fee for a payment transaction, denominated in base units (i.e. sun). It varies for TRX and TRC20 Token based on the coin parameter type: integer - description: The Transfer's BitGo fee (in base units) - payGoFeeString: - type: string - description: The Transfer's BitGo fee (in base units) represented as a String - usd: - type: number - description: The amount of USD of this Transfer (will be negative if it's a send) - usdRate: - type: number - description: The USD price at the time this Transfer was created - state: - $ref: '#/components/schemas/TransferState' - tags: - type: array - description: The tags to be used on this Transfer (used in Policies) - items: - $ref: '#/components/schemas/Id' - history: + example: 100000000 + newAccountFee: + description: Fee for wallet initialization + type: integer + example: 100000000 + netFee: + description: Fee rate per unit of tx size. Not used currently ('fee' is a maximum limit, the network charges the cost of the transaction) + type: integer + example: 1000 + required: + - fee + - newAccountFee + - netFee + ExpressAccelerateTxRequest: + type: object + properties: + cpfpTxIds: type: array - description: An audit log of events that have happened to the Transfer during its lifecycle + description: | + txids of the transactions to bump + + **Notes**: + Each target unconfirmed transaction must be sending funds to the calling wallet. + Accepts only a single txid at this stage. items: - type: object - properties: - date: - type: string - format: date-time - description: The date of this history object - user: - $ref: '#/components/schemas/Id' - action: - type: string - enum: - - created - - signed - - unconfirmed - - confirmed - - approved - - commented - - removed - - failed - - rejected - comment: - type: string - description: If this history object is of action 'commented', this is the comment from the user - comment: - type: string - description: A comment from the user - vSize: + $ref: '#/components/schemas/TxId' + cpfpFeeRate: + type: integer + description: Desired effective feerate of the bumped transactions and the CPFP transaction in satoshi per kilobyte + maxFee: type: integer - description: The size of the transaction - coinSpecific: - type: object - description: Transfer fields specific to each coin type - sequenceId: - type: string description: | - A 'sequenceId' is a unique and arbitrary wallet identifier applied to transfers and transactions at creation. It is optional but highly recommended. With a 'sequenceId' you can easily reference transfers and transactions—for example, to safely retry sending. Because the system only confirms one send request per 'sequenceId' (and fails all subsequent attempts), you can retry sending without the risk of double spending. The 'sequenceId' is only visible to users on the wallet and is not shared publicly. - entries: + Maximum allowed fee for the CPFP transaction in satoshi + + **Note**: + A CPFP transaction accelerates the target transactions and all of the unconfirmed transactions the target transactions depends on. + As it can be difficult to discern the complete transaction ancestry at times, we recommend limiting the total fee for each CPFP attempt as a safety net to prevent CPFP transactions that exceed your cost expectations. + rbfTxIds: type: array - description: An array of objects describing the change in address balances made as a result of this Transfer - items: - type: object - properties: - address: - type: string - description: An address affected by this Transfer - example: 2NAUwNgXaoFj2VVnSEvNLGuez8CfdU2UCMZ - wallet: - allOf: - - $ref: '#/components/schemas/Id' - description: Only visible when the user has access to the wallet - value: - type: integer - description: The change (in base units) in the address's balance - valueString: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: The change (in base units) in the address's balance represented as a String - isChange: - type: boolean - description: True if this address is a change address (only exists for UTXO coins) and if this is a 'sent' Transfer - isPayGo: - type: boolean - description: True if this address is the BitGo PayGo wallet - token: - type: string - description: If this is a token entry, the token's symbol - example: omg - label: - type: string - description: Names of addresses given by the user. - failed: - type: boolean - description: true if this entry is failed. - associatedNativeCoinAddress: - type: string - description: The native coin receive address associated with the solana ATA address. This is currently present only for BitGo addresses. - required: - - address - - valueString - usersNotified: - type: boolean - description: Whether BitGo already sent notifications to the users of the transfer wallet - label: - type: string - description: Address labels (if any) from entries concatenated. - replaces: - type: array - description: Transaction IDs that this transfer replaces. - items: - type: string - replacedBy: - type: array - description: Transaction IDs that replace this transfer. items: type: string - required: - - id - - coin - - wallet - - txid - - height - - date - - confirmations - - type - - valueString - - usd - - usdRate - - state - - tags - - history - - comment - - coinSpecific - TransferState: - type: string - example: confirmed - enum: - - confirmed - - failed - - initialized - - pendingApproval - - rejected - - removed - - replaced - - signed - - unconfirmed - TransferTokenIntent1: - title: Transfer Token - allOf: - - $ref: '#/components/schemas/BaseIntent2' - - type: object - properties: - intentType: - type: string - enum: - - transferToken - recipients: - type: array - items: - $ref: '#/components/schemas/RecipientEntry1' - TransfersResponse: + description: The list of transactions to accelerate using Replace-By-Fee (RBF) for UTXO coins (currently accelerating only one tx is supported). + feeMultiplier: + allOf: + - type: number + minimum: 1 + - example: 1.5 + description: | + (UTXO only) Custom multiplier to the 'feeRate'. The resulting fee rate is limited by the 'maxFeeRate'. For replace-by-fee (RBF) transactions (that include 'rbfTxIds'), the 'feeMultiplier' must be greater than 1, since it's an absolute fee multiplier to the transaction being replaced. + + Note: The 'maxFeeRate' limits the fee rate generated by 'feeMultiplier'. + ExpressAcceptShareRequest: type: object properties: - transfers: - type: array - items: - $ref: '#/components/schemas/AnnotatedTransferWithInputsOutputs' - coin: - $ref: '#/components/schemas/Coin' - nextBatchPrevId: - $ref: '#/components/schemas/NextBatchPrevId' - required: - - transfers - - coin - Trustline: + userPassword: + type: string + description: User's password to decrypt the shared wallet (required if the wallet was shared with spend permission) + newWalletPassphrase: + type: string + description: New wallet passphrase for saving the shared wallet private key If not provided and the wallet was shared with spend permission, then the userPassword is used + overrideEncryptedPrv: + type: string + description: Encrypted private key received out-of-band + ExpressAcceptShareResponse: type: object properties: - token: + state: type: string - description: One of the supported coin types for Stellar tokens listed in [Coin-specific-implementation](#tag/Coin-specific-implementation) - example: txlm:BST-GBQTIOS3XGHB7LVYGBKQVJGCZ3R4JL5E4CBSWJ5ALIJUHBKS6263644L - action: - enum: - - add - - remove - limit: allOf: - - $ref: '#/components/schemas/IntegerString' - description: String representation of the amount to limit in base units (stroops) - TxBase64: - type: string - description: Serialized transaction base64 (applies to XLM only) - example: AAAAAGRnXg19FteG/7zPd+jDC7LDvRlzgfFC+JrPhRep0kYiAAAAZAB/4cUAAAACAAAAAAAAAAAAAAABAAAAAQAAAABkZ14NfRbXhv+8z3fowwuyw70Zc4HxQviaz4UXqdJGIgAAAAEAAAAAmljT/+FedddnAHwo95dOC4RNy6eVLSehaJY34b9GxuYAAAAAAAAAAAehIAAAAAAAAAAAAUrgwAkAAABAOExcvVJIUJv9HuVfbV0y7lRPRARv4wDtcdhHG7QN40h5wQ2uwPF52OGQ8KY+66a1A/8lNKB75sgj2xj44s8lDQ== - TxHex: - type: string - description: Serialized transaction hex - example: 01000000000101d58f82d996dd872012675adadf4606734906b25a413f6e2ee535c0c10aef96020000000000ffffffff028de888000000000017a914c91aa24f65827eecec775037d886f2952b73cbe48740420f000000000017a9149304d18497b9bfe9532778a0f06d9fff3b3befaf870500473044022023d7210ba6d8bbd7a28b8af226f40f7235caab79156f93f9c9969fc459ea7f73022050fbdca788fba3de686b66b3501853695ff9d6f375867470207d233b099576e001000069522103d4788cda52f91c1f6c82eb91491ca76108c9c5f0839bc4f02eccc55fedb3311c210391bcef9dcc89570a79ba3c7514e65cd48e766a8868eca2769fa9242fdcc796662102ef3c5ebac4b54df70dea1bb2655126368be10ca0462382fcb730e55cddd2dd6a53aec8b11400 - Unlock1: + - $ref: '#/components/schemas/WalletShareState1' + description: State of the share + changed: + type: boolean + description: Indicates if the share changed + ExpressCalculateMinerFeeInfoRequest: type: object properties: - time: - type: string - format: date-time - expires: - type: string - format: date-time - txCount: + feeRate: + allOf: + - $ref: '#/components/schemas/IntegerOrString' + - example: 10000 + description: | + Custom minimum fee rate in a coin's base unit per kilobyte (or virtual kilobyte)--for example, satoshis per kvByte or microAlgos per kByte. If the applied 'feeRate' does not meet a coin's required minimum transaction fee amount, the minimum is still applied (for example, 1000 sat/kvByte or a flat 1000 microAlgos). + nP2shInputs: type: integer - txValue: + description: Number of P2SH (multi-signature) inputs + example: 2 + nP2pkhInputs: type: integer - txValueLimit: - type: number - spendingLimits: - $ref: '#/components/schemas/SpendingLimits' - UnlockRequest: - type: object - properties: - duration: + description: Number of P2PKH (single-signature) inputs + example: 0 + nP2shP2wshInputs: type: integer - minimum: 1 - maximum: 3600 - default: 600 - description: Number of seconds that the session will stay unlocked - otp: - $ref: '#/components/schemas/Otp' - Unspent: + description: Number of P2SH_P2WSH (wrapped segwit multi-signature) inputs + example: 1 + nOutputs: + type: integer + description: Number of outputs + example: 2 + required: + - nOutputs + ExpressCalculateMinerFeeInfoResponse: type: object properties: - id: - $ref: '#/components/schemas/UnspentId' - address: - type: string - description: The address of this unspent - example: 2MsKxhhkDo5WaLaYRGA9Cr3iSQPyXsu6Fi2 - value: - type: integer - valueString: - $ref: '#/components/schemas/IntegerString' - blockHeight: + size: type: integer - description: The block this Unspent was created in - date: - type: string - format: date-time - description: The date this unspent was created - example: '2017-03-25T23:01:40.248Z' - coinbase: - type: boolean - description: True if this unspent came from the coinbase transaction - wallet: - $ref: '#/components/schemas/Id' - fromWallet: - $ref: '#/components/schemas/Id' - chain: + description: Estimated size of the transaction in bytes + example: 776 + fee: type: integer - description: The type of this unspent's address (P2SH, P2WSH, etc...) - example: 0 - index: + description: Estimated fee in base units for the transaction + example: 38800 + feeRate: type: integer - description: A monotonic counter used when creating new addresses - redeemScript: - type: string - description: The Script program used to cryptographically verify spending this unspent - example: 522102f1e990044d2a8be43d5b500bbdcb36277b97a4b07e01c5101ae8ec1568bfd6532103dab7dc82f2fc8c28200c1bdeca9c4cf181e0ca257395829cbd599395048afb57210205422e711827d8356f2fb75334d863941dd7eb45bd5788fa231dc5fa755135b653ae - witnessScript: - type: string - description: The segwit Script program used to cryptographically verify spending this unspent - example: 52210351311cd81144e6cbdba561d24dfc22644cb02d053339d4beace03231b3be4f372103a8d0c1a375b9ee1a2411f9f8e18373be7f228b18260f63bbfca48809170ed08b2103c3bd8bd074657bbe9ee6714b31a4a54b6fd5b5cda0e1030122f9bf46b5034f6b53ae - isSegwit: - type: boolean - UnspentId: - type: string - description: The id of the unspent in the form : - example: 003f688cc349f1fca8ac5ffa21671ca911b6ef351085c60733ed8c2ebf162cb8:2 - UpdateBankAccountRequest: + description: The fee rate in base units per kB used to estimate the fee for the transaction + example: 50000 + ExpressCanonicalAddressRequest: type: object - description: Updates some fields on a bank account. The server only allows updating of bank accounts that have their verificationState set to 'rejected' or 'approved'. Does not allow updating of critical fields like accountNumber, enterpriseId, id, routingNumber, swiftCode. properties: - address1: - type: string - example: 2390 El Camino Real - address2: - type: string - example: Palo Alto, CA 94306 - address3: - type: string - example: '' - name: - type: string - example: America California Bank - owner: - type: object - description: Bank account owner - properties: - name: - type: string - example: Donald E. Knuth - address1: - type: string - example: Computer Science Department - address2: - type: string - example: Stanford University - address3: - type: string - example: Stanford, CA 94305-9045 - shortCountryCode: - $ref: '#/components/schemas/ShortCountryCode' address: type: string - example: 2390 El Camino Real, Palo Alto, CA 94306 - ownerName: + description: Address to canonicalize + version: + oneOf: + - type: string + default: base58 + description: Version of the desired BCH address. + enum: + - base58 + - bech32 + - type: integer + description: Version of the desired LTC address. + enum: + - 1 + - 2 + ExpressConsolidateAccountRequest: + type: object + properties: + consolidateAddresses: + description: | + Optional: restrict the consolidation to the specified receive addresses. If not provided, will consolidate the + funds from all receive addresses up to 500 addresses. + type: array + items: + type: string + walletPassphrase: + description: | + Passphrase to decrypt the user key on the wallet. + Required if External Signer is not used to sign the transactions. type: string - example: Donald E. Knuth - ownerAddress: + prv: + description: | + The un-encrypted user private key in string form. + If the key is a JSON object it must be stringified. + Required if 'walletPassphrase' is not available or encrypted private key is not stored by BitGo. type: string - example: 2390 El Camino Real, Palo Alto, CA 94306 - type: + apiVersion: + description: | + The Trasaction Request API version to use for MPC EdDSA Hot Wallets. + Defaults based on the wallet type and asset curve. type: string enum: - - checking - - savings - furtherCreditTo: + - full + - lite + ExpressConsolidateUnspentsRequest: + type: object + properties: + walletPassphrase: type: string - example: Donald E. Knuth - intermediaryBankId: + description: Passphrase to decrypt the user key on the wallet + xprv: type: string - example: 5c645791cf8eb19304292a8e3365fee3 - intermediaryBankName: + description: Private key in string form, if walletPassphrase is not available + feeRate: + allOf: + - $ref: '#/components/schemas/IntegerOrString' + - example: 10000 + description: | + Custom fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. + + If the 'feeRate' is less than the minimum required network fee, then the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000 microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is usually 4.5 times the open ledger fee. + + Note: The 'feeRate' overrides the 'maxFeeRate' and 'minFeeRate'. + maxFeeRate: + allOf: + - $ref: '#/components/schemas/IntegerOrIntegerString' + - example: 20000 + description: | + (BTC only) The maximum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. The 'maxFeeRate' limits the fee rate generated by both 'feeMultiplier' and 'numBlocks'. + + Note: The 'feeRate' overrides the 'maxFeeRate'. + maxFeePercentage: + type: integer + description: Maximum relative portion that can be spent towards fees + feeTxConfirmTarget: + type: integer + description: Block target for fee estimation + bulk: + type: boolean + description: Build multiple transactions at the same time. This enables you to increase the maximum number of unspents on the 'limit' parameter up to 2,000. If true, you must pass the 'txFormat' as 'psbt' and you can't pass the 'targetAddress' or 'numUnspentsToMake' parameters. + minValue: + allOf: + - $ref: '#/components/schemas/IntegerOrIntegerString' + description: Minimum value of unspents to use in base units (e.g. satoshis). Can be used to skip very small unspents when consolidating at higher fee rates. For doge, only string is allowed. + maxValue: + allOf: + - $ref: '#/components/schemas/IntegerOrIntegerString' + description: | + Maximum value of unspents to use in base units (e.g. satoshis). Should be used to prevent larger unspents from being consolidated needlessly, and that some funds remain available for spending while the consolidation transactions are in flight. For doge, only string is allowed. + minHeight: + type: integer + description: Minimum height of unspents on the block chain to use + minConfirms: + type: integer + description: Minimum confirmation threshold for external inputs + enforceMinConfirmsForChange: + type: boolean + description: Flag for enforcing minConfirms for change inputs + limit: + type: integer + description: Maximum number of unspents to use in the transaction + numUnspentsToMake: + type: integer + description: Number of new unspents to make + targetAddress: type: string - example: Bank of America - UpdateCommentRequest: + description: address to use for generated outputs. Must be wallet address. + txFormat: + $ref: '#/components/schemas/UtxoTransactionFormat' + ExpressCreateKeychainResponse: type: object + description: Generated key pair properties: - comment: + prv: type: string - description: The new comment for the transfer. - UpdateRemovePolicyRule: + description: Private key + example: xprv9s21ZrQH143K2Y4th5Bn8sCRCMNjVr3sm9TLj9yw9SRKxYbJdB18bpc7cZFHKKWKuWZUBATfbDVE26u7w2iUhmWD8Gsp8UkaemhLEfopC35 + pub: + $ref: '#/components/schemas/Pub' + ExpressDecryptRequest: type: object properties: - coin: - allOf: - - $ref: '#/components/schemas/Coin' - description: | - Policy rules of types 'allTx', 'coinAddressWhitelist', 'coinAddressBlacklist' and 'webhook' are recommended to - be used without setting a coin so that they will apply to all coins and tokens that could be in a wallet. If - your policy rule is of one of these types and has a coin set on it, you also need to set the coin in the body. - This is necessary because the id alone may not be sufficient for finding the correct rule to update or delete. - id: + input: type: string - description: The id of the rule. The combination of id and coin must be unique among rules in the policy. - type: - $ref: '#/components/schemas/PolicyRuleTriggers' - condition: - $ref: '#/components/schemas/PolicyRuleUpdateConditions' - action: - $ref: '#/components/schemas/PolicyRuleActions' - required: - - id - - type - - action - UpdateSendLabel: + description: Ciphertext to decrypt + password: + type: string + description: Key which is used for decryption + ExpressDecryptResponse: type: object properties: - label: + decrypted: type: string - maxLength: 250 - description: A human-readable mapping to an address - required: - - label - UpdateWallet: + ExpressEncryptRequest: type: object properties: - approvalsRequired: - $ref: '#/components/schemas/ApprovalsRequired' - buildDefaults: - $ref: '#/components/schemas/WalletBuildDefaults' - disableTransactionNotifications: - type: boolean - label: - $ref: '#/components/schemas/WalletLabel' - customChangeKeySignatures: - $ref: '#/components/schemas/CustomChangeKeySignatures' - coinSpecific: - $ref: '#/components/schemas/WalletUpdateCoinSpecific' - User: + input: + type: string + description: Plaintext message which should be encrypted + password: + type: string + description: Password which should be used to encrypt message + ExpressEncryptResponse: type: object properties: - id: - $ref: '#/components/schemas/Id' - isActive: - type: boolean - isFrozen: - type: boolean - freezeReason: + encrypted: type: string - example: Frozen due to suspicious activity - name: - $ref: '#/components/schemas/Name' - username: - $ref: '#/components/schemas/Email' - email: - type: object - properties: - email: - $ref: '#/components/schemas/Email' - verified: - type: boolean - example: true - phone: - type: object - properties: - phone: - type: string - example: 408-718-6885 - verified: - type: boolean - example: true - country: + ExpressFanOutUnspentsRequest: + type: object + properties: + walletPassphrase: type: string - example: USA - state: + description: Passphrase to decrypt the user key on the wallet + xprv: type: string - example: New York - UserKycState: - type: string - enum: - - approved - - flagged - - flagged_retry_allowed - - inreview - - pending - - rejected - - unverified - UserSharingKey: - type: object - required: - - email - properties: - email: - $ref: '#/components/schemas/Email' - UtxoFeeInfo: - title: UTXO - type: object - description: feeInfo (UTXO) - properties: - size: - type: integer - description: Estimated size of the transaction in bytes - example: 776 - fee: - type: integer - description: Estimated fee in base unit for the transaction - example: 38800 + description: Private key in string form, if walletPassphrase is not available feeRate: allOf: - $ref: '#/components/schemas/IntegerOrString' - example: 10000 description: | - Custom minimum fee rate in a coin's base unit per kilobyte (or virtual kilobyte)--for example, satoshis per kvByte or microAlgos per kByte. If the applied 'feeRate' does not meet a coin's required minimum transaction fee amount, the minimum is still applied (for example, 1000 sat/kvByte or a flat 1000 microAlgos). - payGoFee: - type: integer - description: BitGo fee of the transaction (in base units) - example: 0 - payGoFeeString: + Custom fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. + + If the 'feeRate' is less than the minimum required network fee, then the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000 microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is usually 4.5 times the open ledger fee. + + Note: The 'feeRate' overrides the 'maxFeeRate' and 'minFeeRate'. + maxFeeRate: + allOf: + - $ref: '#/components/schemas/IntegerOrIntegerString' + - example: 20000 + description: | + (BTC only) The maximum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. The 'maxFeeRate' limits the fee rate generated by both 'feeMultiplier' and 'numBlocks'. + + Note: The 'feeRate' overrides the 'maxFeeRate'. + maxFeePercentage: type: integer - description: BitGo fee of the transaction (in base units) represented as a String - example: '0' - UtxoTransactionFormat: - type: string - description: |- - [UTXO only] Format of the returned transaction hex serialization. - 'legacy' for serialized transaction in custom bitcoinjs-lib format. 'psbt' for BIP174 serialized transaction - enum: - - legacy - - psbt - - psbt-lite - default: legacy - example: psbt - UtxoTxInfo: - title: UTXO - type: object - description: txInfo (UTXO) - properties: - changeAddresses: - type: array - items: - $ref: '#/components/schemas/AddressString3' - nOutputs: + description: Maximum relative portion that can be spent towards fees + feeTxConfirmTarget: type: integer - description: Number of outputs - example: 2 - nP2SHInputs: + description: Block target for fee estimation + minValue: + allOf: + - $ref: '#/components/schemas/IntegerOrIntegerString' + description: Minimum value of unspents to use in base units (e.g. satoshis). For doge, only string is allowed. + maxValue: + allOf: + - $ref: '#/components/schemas/IntegerOrIntegerString' + description: Maximum value of unspents to use in base units (e.g. satoshis). For doge, only string is allowed. + minHeight: type: integer - example: 0 - nSegwitInputs: + description: Minimum height of unspents on the block chain to use + minConfirms: type: integer - example: 1 + description: Minimum confirmation threshold for external inputs + enforceMinConfirmsForChange: + type: boolean + description: Flag for enforcing minConfirms for change inputs unspents: type: array items: - $ref: '#/components/schemas/Unspent' - walletAddressDetails: - $ref: '#/components/schemas/Address2' - VideoApprovers: - type: array - items: - $ref: '#/components/schemas/Id' - description: | - A list of public ids of users that should do the video id verification for the transaction that is being sent or initiated. - minItems: 1 - Wallet: + type: string + description: Unspents to fan out in the transaction. Mutually exclusive with maxNumInputsToUse. + maxNumInputsToUse: + type: integer + description: Maximum number of unspents to use in the transaction. Mutually exclusive with unspents. + numUnspentsToMake: + type: integer + description: Number of new unspents to make + targetAddress: + type: string + description: address to use for generated outputs. Must be wallet address. + txFormat: + $ref: '#/components/schemas/UtxoTransactionFormat' + ExpressGenerateWalletRequest: type: object properties: - admin: - type: object - properties: - policy: - $ref: '#/components/schemas/Policy1' - allowBackupKeySigning: - type: boolean - approvalsRequired: - $ref: '#/components/schemas/ApprovalsRequired' - balanceString: + label: + $ref: '#/components/schemas/WalletLabel' + multisigType: + type: string + enum: + - onchain + - tss + - blsdkg + description: If absent, BitGo uses the default wallet type for the asset. + type: + type: string + enum: + - hot + - cold + - custodial + description: The type of wallet, defined by key management and signing protocols. 'hot' and 'cold' are both self-managed wallets. If absent, defaults to 'hot'. + passphrase: + type: string + description: Passphrase to be used to encrypt the user key on the wallet + userKey: + type: string + description: User provided public key + backupXpub: + $ref: '#/components/schemas/Pub' + backupXpubProvider: + type: string + enum: + - dai + description: Optional key recovery service to provide and store the backup key + enterprise: allOf: - - $ref: '#/components/schemas/IntegerString' - description: Total balance in base units (e.g. Satoshis) - buildDefaults: - $ref: '#/components/schemas/WalletBuildDefaults' - coin: - $ref: '#/components/schemas/Coin' - coinSpecific: - $ref: '#/components/schemas/WalletCoinSpecific' - custodialWallet: - type: object - description: The associated custodial wallet object - custodialWalletId: - $ref: '#/components/schemas/Id' - deleted: - type: boolean + - $ref: '#/components/schemas/Id' + description: Enterprise id. This is required for Ethereum wallets since they can only be created as part of an enterprise disableTransactionNotifications: type: boolean - enterprise: - $ref: '#/components/schemas/Id' - freeze: - type: object - properties: - time: - type: string - format: dateTime - expires: - type: string - format: dateTime - id: - $ref: '#/components/schemas/Id' - isCold: + description: Flag for disabling wallet transaction notifications + passcodeEncryptionCode: + type: string + description: The passphrase used for decrypting the encrypted wallet passphrase during wallet recovery + coldDerivationSeed: + type: string + description: Seed that derives an extended user key or common keychain for a cold wallet. + gasPrice: + type: integer + description: Gas price to use when deploying an Ethereum wallet + disableKRSEmail: type: boolean - keys: - $ref: '#/components/schemas/Keys' - label: - $ref: '#/components/schemas/WalletLabel' - m: - $ref: '#/components/schemas/NumSignatures' - 'n': - $ref: '#/components/schemas/NumKeychains' - nodeId: - $ref: '#/components/schemas/Id' - receiveAddress: - $ref: '#/components/schemas/Address2' - recoverable: + description: Flag for preventing KRS from sending email after creating backup key + walletVersion: + type: integer + default: 1 + description: (ETH only) Specify the wallet creation contract version used when creating a wallet contract. Use 0 for the old wallet creation, 1 for the new wallet creation, where it is only deployed upon receiving funds. 2 for wallets with the same functionality as v1 but with NFT support. 3 for MPC wallets. + minimum: 0 + maximum: 3 + isDistributedCustody: type: boolean - tags: - type: array - items: - $ref: '#/components/schemas/Id' - spendableBalanceString: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: Spendable balance in base units (e.g. Satoshis) - unspentCount: - type: number - example: 100 - description: Number of unspent outputs present in the wallet - startDate: + description: True, if the wallet type is a distributed-custodial. If passed, you must also pass the 'enterprise' parameter. + bitgoKeyId: allOf: - - $ref: '#/components/schemas/DateTime' - description: Wallet creation time - type: - $ref: '#/components/schemas/WalletTypePublic' - users: - type: array - items: - $ref: '#/components/schemas/WalletUser' - customChangeKeySignatures: - $ref: '#/components/schemas/CustomChangeKeySignatures' - multisigType: - $ref: '#/components/schemas/WalletMultisigType' - multisigTypeVersion: - $ref: '#/components/schemas/MultisigTypeVersion' + - $ref: '#/components/schemas/Id' + description: BitGo key ID for self-managed cold MPC wallets. + commonKeychain: + type: string + description: Common keychain for self-managed cold MPC wallets. required: - - approvalsRequired - - coin - - deleted - - disableTransactionNotifications - - id - label - WalletBalance: - allOf: - - $ref: '#/components/schemas/Balance' - - type: object + - enterprise + ExpressGenerateWalletResponse: + oneOf: + - $ref: '#/components/schemas/ExpressWallet' + - title: Wallet (including keychains) + type: object + description: Wallet with user, bitgo and backup keychains (when 'includeKeychains' query param is 'true'). properties: - tokens: + wallet: + $ref: '#/components/schemas/ExpressWallet' + encryptedWalletPassphrase: + type: string + description: Encrypted wallet passphrase. Used only with 'passcodeEncryptionCode'. You can use the encrypted wallet passphrase in the BitGo web app during password recovery for the wallet. + example: '"{\"iv\":\"IpwAFi0+TDsLJCV4pg8T6w==\",\"v\":1,\"iter\":10000,\"ks\":256,\"ts\":64,\"mode\":\"ccm\",\"adata\":\"\",\"cipher\":\"aes\",\"salt\":\"3lkIc47rjzo=\",\"ct\":\"/m6JL/ttTJWXNmHm+dzI\"}"' + userKeychain: type: object - description: Object of key value pairs where the keys are the token symbols (e.g. omg) and the values are the balance data for that token symbol. - additionalProperties: - type: object - properties: - balanceString: - type: string - example: '30000' - confirmedBalanceString: - type: string - example: '20000' - heldBalanceString: - type: string - description: The difference between the balanceString and the spendableBalanceString. - example: '10000' - spendableBalanceString: - type: string - example: '20000' - stakedBalanceString: - type: string - example: '20000' - transferCount: - type: number - example: 100 - unsupportedTokens: + description: User keychain + properties: + id: + $ref: '#/components/schemas/Id' + encryptedPrv: + type: string + description: User private key encrypted with the user passphrase + example: '{"iv":"TEd5eouui6hKashuVi5WHQ==","v":1,"iter":10000,"ks":256,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"dHu4PWoX2M8=","ct":"fYr9Y/6kU40AosONkV0xi+fWsyhpYSew0L2YKH/qEZjOlxeDjpC2aTJ0Yc/KdmXheUGolcAxGSx93ykN21Zim1DGc/UGa25IUA/3ARgX7gBsYnYEy5e5Ol0YZYb9pa7KFeaDZSLMXrxxoahg5zL4AJsUx90Pwcg="}' + prv: + type: string + description: User private key + example: xprv9s21ZrQH143K3e1981rUcbKjJ9G57SDCDZ9HY4Sqhx5ZqMoyK1j49kAf1vuM1G9nhRr6kzqbUQb3gj5zuzrsvNRQ84tYf32EcyapRgBNpp4 + pub: + $ref: '#/components/schemas/Pub' + ethAddress: + type: string + description: Ethereum address corresponding to this keychain + example: '0xf5b7cca8621691f9dde304cb7128b6bb3d409363' + source: + type: string + description: Party that created the key + example: user + coinSpecific: + type: object + description: Coin specific key data + backupKeychain: type: object - description: Object of key value pairs where the keys are the unsupported token contracts (e.g. 0x9928e4046d7c6513326ccea028cd3e7a91c7590a) and the values are the balance data for that token contract. UnsupportedTokens will only be returned for wallets that supports Metamask Institutional and has enableMMI flag turned on - additionalProperties: - type: object - properties: - balanceString: - type: string - example: '30000' - confirmedBalanceString: - type: string - example: '20000' - heldBalanceString: - type: string - description: The difference between the balanceString and the spendableBalanceString. - example: '10000' - spendableBalanceString: - type: string - example: '20000' - stakedBalanceString: - type: string - example: '20000' - transferCount: - type: number - example: 100 - WalletBuildDefaults: + description: Backup keychain + properties: + id: + $ref: '#/components/schemas/Id' + prv: + type: string + description: Backup private key + example: xprv9s21ZrQH143K47iEnAFZRJz36E5ZxuEDBJETFYxJTsTVxuPc9z7oGWADUK6icX5P3ruoe244yxMt9uZ2LjWhddvnJJ4zB7zK93qBtxYrmN6 + pub: + $ref: '#/components/schemas/Pub' + source: + type: string + description: Party that created the key + example: backup + ethAddress: + type: string + description: Ethereum address corresponding to this keychain + example: '0xf5b7cca8621691f9dde304cb7128b6bb3d409363' + coinSpecific: + type: object + description: Coin specific key data + bitgoKeychain: + type: object + description: BitGo keychain + properties: + id: + $ref: '#/components/schemas/Id' + pub: + $ref: '#/components/schemas/Pub' + isBitGo: + type: boolean + description: Flag for identifying keychain as created by BitGo + example: true + source: + type: string + description: Party that created the key + example: bitgo + ethAddress: + type: string + description: Ethereum address corresponding to this keychain + example: '0xa487900d0de75107b1cc7ade0e2662980e5ce940' + coinSpecific: + type: object + description: Coin specific key data + warning: + type: string + description: If the backup key is held by the user, this is a message warning the user to securely backup their backup keychain. + example: Be sure to backup the backup keychain -- it is not stored anywhere else! + ExpressPingResponse: type: object properties: - minFeeRate: - type: integer - minimum: 1000 - nullable: true - example: 12000 - description: | - (BTC only) The minimum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. Must be greater than or equal to the default of 1000 satoshis/kvByte. - - Note: The you can override 'minFeeRate' on a per transaction basis with the 'feeRate' parameter. - maxFeeRate: - type: integer - minimum: 1000 - nullable: true - example: 18000 - description: | - (BTC only) The maximum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. The 'maxFeeRate' limits the fee rate generated by both 'feeMultiplier' and 'numBlocks'. - - Note: The you can override 'maxFeeRate' on a per transaction basis with the 'feeRate' parameter. - feeMultiplier: - type: number - minimum: 1 - nullable: true - example: 1.2 - description: | - (UTXO only) Custom multiplier to the 'feeRate'. The resulting fee rate is limited by the 'maxFeeRate'. For replace-by-fee (RBF) transactions (that include 'rbfTxIds'), the 'feeMultiplier' must be greater than 1, since it's an absolute fee multiplier to the transaction being replaced. - - Note: The 'maxFeeRate' limits the fee rate generated by 'feeMultiplier'. - changeAddressType: - $ref: '#/components/schemas/DefaultChangeAddressType' - txFormat: + status: type: string - example: psbt - enum: - - legacy - - psbt - - psbt-lite - description: | - (UTXO only) The default transaction format to use for this wallet. Per transaction, you can override the default with the 'txFormat' parameter. - WalletCoinSpecific: - oneOf: - - title: Wallet - type: object + ExpressSendCoinsRequest: + allOf: + - type: object properties: - creationFailure: - type: array - items: - $ref: '#/components/schemas/TxId' - description: Includes list of fail initialization txids - pendingChainInitialization: + address: + allOf: + - $ref: '#/components/schemas/AddressString3' + description: Destination address + amount: + allOf: + - $ref: '#/components/schemas/IntegerOrIntegerString' + description: Amount in base units (e.g. satoshi, wei, drops, stroops). For doge, only string is allowed. + walletPassphrase: + type: string + description: Passphrase to decrypt the user key on the wallet + prv: + type: string + description: Optional, private key in string form, if 'walletPassphrase' is not available or encrypted private key is not stored by BitGo. + - $ref: '#/components/schemas/BuildParams' + - type: object + properties: + data: + type: string + description: (ETH only) Optional data to pass to the transaction + hop: type: boolean - description: Whether the wallet needs to be initialized on the chain - - $ref: '#/components/schemas/WalletCoinSpecificCosmos' - - $ref: '#/components/schemas/WalletCoinSpecificXlm' - WalletCoinSpecificCosmos: - title: ATOM + description: (ETH, AVAXC and POLYGON) Set to true if funds to destination need to come from single sig address + tokenName: + type: string + description: Token name, defined in the BitGoJS Statics package. + ExpressSendCoinsResponse: type: object properties: - rootAddress: + transfer: + allOf: + - $ref: '#/components/schemas/Transfer' + description: New transfer + txid: type: string - description: Wallet address to send or receive assets. - example: cosmos1uvrgkp82dmeks368d7g2ejzm3axhapzveh5uek - lastChainIndex: - type: number - description: Index of last address that was derived. - example: 1 - lastMemoId: + description: Unique transaction identifier + tx: + oneOf: + - type: string + description: Encoded transaction hex (or base64 for XLM) + - $ref: '#/components/schemas/PsbtHex' + status: type: string - description: A running counter of the last known memo id. The first one is 0. - example: '0' - pendingEcdsaTssInitialization: - type: boolean - description: If true, this wallet cannot sign transactions or messages as the enterprise has not finished MPC setup. - example: false - required: - - rootAddress - - lastMemoId - WalletCoinSpecificXlm: - title: XLM + description: Transfer status + enum: + - signed + - signed (suppressed) + - pendingApproval + ExpressSendConsolidationResponse: type: object properties: - rootAddress: - type: string - description: Root address of the wallet - example: GCTTCPH4IIDK7P72FFAEJ3ZFN6WDHJH6GGMRPHPM56ZWGIQ7B3XTIJAM - stellarUsername: - type: string - description: Username for the user's Stellar address - example: foo_bar@baz.com - homeDomain: - type: string - description: Home domain of a Stellar account - example: bitgo.com - stellarAddress: - type: string - description: Email-like address associated to a Stellar account - example: foo_bar@baz.com*bitgo.com - WalletConsolidateUnspentsResponse: - type: object - properties: - txHex: - oneOf: - - $ref: '#/components/schemas/TxHex' - - $ref: '#/components/schemas/PsbtHex' - txInfo: - $ref: '#/components/schemas/UtxoTxInfo' - feeInfo: - $ref: '#/components/schemas/UtxoFeeInfo' - WalletCreateCoinSpecific: - type: object - properties: - xlm: - $ref: '#/components/schemas/WalletCreateCoinSpecificXlm' - txlm: - $ref: '#/components/schemas/WalletCreateCoinSpecificXlm' - lnbtc: - $ref: '#/components/schemas/WalletCreateCoinSpecificLnbtc' - tlnbtc: - $ref: '#/components/schemas/WalletCreateCoinSpecificLnbtc' - WalletCreateCoinSpecificLnbtc: + success: + description: An Array of TransactionRequest or Transfers. + type: array + items: + oneOf: + - $ref: '#/components/schemas/TransactionRequestLite1' + - $ref: '#/components/schemas/TransactionRequestFull1' + - $ref: '#/components/schemas/Transfer' + failure: + type: array + description: An Array of Error messages. + items: + type: string + required: + - success + - failure + ExpressSendManyRequest: + allOf: + - type: object + properties: + recipients: + type: array + items: + type: object + description: List of recipient addresses and amounts to send + properties: + address: + allOf: + - $ref: '#/components/schemas/AddressString3' + description: Destination address + amount: + allOf: + - $ref: '#/components/schemas/IntegerOrIntegerString' + description: The amount in base units (e.g. satoshis) to send. For doge, only string is allowed. + tokenName: + type: string + description: The token name. Required for MPC wallets token transactions. + example: sol:natix + tokenData: + allOf: + - $ref: '#/components/schemas/RecipientTokenData' + description: Data set to build a transaction that involves a token interaction. + description: A list of recipient addresses and amounts. Must be present but empty for CPFP transactions. + otp: + type: string + description: Two factor auth code to enable sending the transaction. Not necessary if using a long lived access token within the spending limit. + walletPassphrase: + type: string + description: | + Passphrase to decrypt the user key on the wallet. + Required if External Signer is not used to sign the transactions. + prv: + type: string + description: | + The un-encrypted user private key in string form. + If the key is a JSON object it must be stringified. + Required if 'walletPassphrase' is not available or encrypted private key is not stored by BitGo. + - $ref: '#/components/schemas/BuildParams' + - type: object + properties: + data: + type: string + description: (ETH only) Optional data to pass to the transaction + ExpressShareWalletRequest: type: object properties: - keys: + email: + type: string + description: Email address of the user being invited + example: foo@bar.com + permissions: + type: string allOf: - - $ref: '#/components/schemas/Keys' - example: - - 585951a5df8380e0e304a553 - - 585951a5df8380e0e30d645c - description: Lightning wallet only. Array of two key IDs for 'userAuthKey' and 'nodeAuthKey'. - WalletCreateCoinSpecificXlm: - type: object - properties: - stellarUsername: + - $ref: '#/components/schemas/WalletPermission' + walletPassphrase: type: string - description: Username for the user's Stellar address. It's case insensitive, and it can't be changed after it's set. - pattern: ^[a-zA-Z0-9-_.+@]+$ - example: foo_bar@baz.com - WalletCustomAddress: - type: string - example: ivxzn3bdn4uo - description: A custom address can be provided for EOS wallets. It must be exactly 12 alphanumeric characters. - WalletLimit: - type: object - properties: - coin: - $ref: '#/components/schemas/Coin' - limit: - type: integer - count: - type: integer - minimum: 0 - isCustodial: + description: Wallet passphrase of the user sharing the wallet + message: + type: string + description: User readable message to display to the share recipient + reshare: type: boolean - enum: - - true + description: Flag for reinviting a user to the wallet. This is required if the invitee has already been invited to the wallet, but has changed their password and needs a new invite + skipKeychain: + type: boolean + description: If true, skips using a shared key (for when the wallet is shared without spend permission). + disableEmail: + type: boolean + description: Flag for disabling invite notification email required: - - coin - - count - WalletLimitsResponse: - type: array - items: - $ref: '#/components/schemas/WalletLimit' - WalletMaximumSpendable: - type: object - properties: - coin: - $ref: '#/components/schemas/Coin' - maximumSpendable: - type: string - example: '19948310' - WalletMultisigType: - type: string - enum: - - onchain - - tss - - blsdkg - WalletPermission: - type: string - description: | - Comma-separated list of privileges for a wallet. Includes: - - - 'admin' - Can manage wallet policies and users and approve or reject pending approvals. - - 'freeze' - Can freeze a wallet, disabling all withdrawals. - - 'spend' - Can initiate withdrawals and generate new receive addresses. - - 'trade' - Can initiate trades from a Go Account ('trading' wallet type). - - 'view' - Can view balances and transactions. - - Permissions don't overlap. Required parameter if 'reshare' is false. - enum: - - admin - - spend - - trade - - view - example: spend,view - WalletRecoveryIntent1: - title: Wallet Recovery + - email + - permissions + ExpressSignTssTx: + anyOf: + - $ref: '#/components/schemas/TransactionRequestLite1' + - $ref: '#/components/schemas/ExpressSignTssTxFull' + ExpressSignTssTxFull: + title: Full type: object properties: - intentType: + txRequestId: + description: | + The transaction request ID. + This is the ID returned by the Create Transaction Request API. type: string - sequenceId: + walletPassphrase: + description: | + The wallet passphrase. + Required if External Signer is not used to sign the transactions. type: string + prv: description: | - A 'sequenceId' is a unique and arbitrary wallet identifier applied to transfers and transactions at creation. It is optional but highly recommended. With a 'sequenceId' you can easily reference transfers and transactions—for example, to safely retry sending. Because BitGo only confirms one send request per 'sequenceId' (and fails all subsequent attempts), you can retry sending without the risk of double spending. The 'sequenceId' is only visible to users on the wallet and is not shared publicly. It is the responsibility of the caller to keep track of this ID. - example: abc123 - comment: + The un-encrypted user private key of the wallet. + If the key is a JSON object it must be stringified. + Required for Self-Managed Cold wallets when External Signer is not used to sign the transactions. type: string - description: The 'comment' is only visible to users on the wallet and is not shared publicly. required: - - intentType - WalletShare1: + - txRequestId + ExpressSignTxRequest: type: object properties: - id: - $ref: '#/components/schemas/Id' - coin: - $ref: '#/components/schemas/Coin' - wallet: - $ref: '#/components/schemas/Id' - walletLabel: - $ref: '#/components/schemas/WalletLabel' - fromUser: - $ref: '#/components/schemas/Id' - toUser: - $ref: '#/components/schemas/Coin' - permission: - type: string - description: | - Comma-separated list of privileges for a wallet. Includes: - - - 'admin' - Can manage wallet policies and users and approve or reject pending approvals. - - 'freeze' - Can freeze a wallet, disabling all withdrawals. - - 'spend' - Can initiate withdrawals and generate new receive addresses. - - 'trade' - Can initiate trades from a Go Account ('trading' wallet type). - - 'view' - Can view balances and transactions. - - Permissions don't overlap. Required parameter if 'reshare' is false. - enum: - - admin - - spend - - trade - - view - example: spend,view - message: + prv: type: string - description: User readable message to display to the share recipient - state: - $ref: '#/components/schemas/WalletShareState1' - enterprise: - $ref: '#/components/schemas/Id' - pendingApprovalId: - allOf: - - $ref: '#/components/schemas/Id' - description: Only set if this wallet share is currently pending approval - keychain: - description: Only set if this wallet share has an associated keychain + description: user private key + example: xprv9s21ZrQH143K3xQwj4yx3fHjDieEdqFDweBvFxn28qGvfQGvweUWuUuDRpepDu6opq3jiWHU9h3yYTKk5vvu4ykRuGA4i4Kz1vmFMPLTsoC + txPrebuild: type: object properties: - pub: - description: Sharing user's root public key - type: string - encryptedPrv: - description: Sharing user's private key encrypted under their wallet passphrase - type: string - fromPubKey: - description: Sharing user's derived public key which will be used to calculate the wallet sharing secret. - type: string - toPubKey: - description: Shared-to user's derived public key which will be used to calculate the wallet sharing secret. + wallet: + $ref: '#/components/schemas/Id' + txHex: type: string - path: - description: BIP32 HD path of the derived public keys (fromPubKey and toPubKey) - example: m/1234/1/1 + description: Serialized transaction hex + txBase64: type: string - required: - - id - - coin - - wallet - - walletLabel - - fromUser - - toUser - - permissions - - message - - state - - enterprise - WalletShareKeychain: + description: Serialized transaction base64 (applies to XLM only) The request must include this or a txHex + txInfo: + oneOf: + - $ref: '#/components/schemas/UtxoTxInfo' + - $ref: '#/components/schemas/XlmTxInfo' + feeInfo: + type: object + properties: + size: + type: integer + description: Estimated size of the transaction in bytes + example: 776 + fee: + type: integer + description: Estimated fee in base units for the transaction + example: 38800 + feeRate: + allOf: + - $ref: '#/components/schemas/IntegerOrString' + - example: 10000 + description: | + Custom fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. + + If the 'feeRate' is less than the minimum required network fee, then the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000 microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is usually 4.5 times the open ledger fee. + + Note: The 'feeRate' overrides the 'maxFeeRate' and 'minFeeRate'. + payGoFee: + type: integer + description: BitGo fee of the transaction (in base units) + example: 0 + payGoFeeString: + type: integer + description: BitGo fee of the transaction (in base units) represented as a String + example: '0' + isLastSignature: + type: boolean + description: Should be set to true if you are signing the second time, attaching the final signature. Default to false. + pubs: + type: array + description: Public Keys (user, backup, bitgo) for the wallet (UTXO coins only) + items: + type: string + example: + - string + - string + - string + ExpressSignTxResponse: type: object - description: Key passed to the receiving user, included if the wallet was shared with spend permission properties: - pub: - description: One of wallet pub (onchain), commonPub (BLS) or commonKeychain (MPC) + txInfo: + oneOf: + - title: Hex + type: object + properties: + txHex: + $ref: '#/components/schemas/TxHex' + - title: Base64 + type: object + properties: + halfSigned: + type: object + properties: + txBase64: + $ref: '#/components/schemas/TxBase64' + ExpressSweepRequest: + type: object + properties: + address: type: string - encryptedPrv: - description: Private key of the user sharing the wallet encrypted under their wallet passphrase + description: The destination address for the sweep transaction + walletPassphrase: type: string - fromPubKey: - description: Derived public key of the user sharing the wallet + description: Passphrase to decrypt the user key on the wallet + xprv: type: string - toPubKey: - description: Derived public key of the user receiving the share + description: Private key in string form, if walletPassphrase is not available + otp: type: string - path: - description: BIP32 HD path of the derived public keys (fromPubKey and toPubKey) - example: m/1234/1/1 + description: Two factor auth code to enable sending the transaction + feeTxConfirmTarget: type: string - WalletShareState1: - type: string - example: active - enum: - - pendingapproval - - active - - accepted - - canceled - - rejected - WalletSpending: + description: Number of blocks to wait to confirm the transaction + feeRate: + allOf: + - $ref: '#/components/schemas/IntegerOrString' + - example: 10000 + description: | + Custom fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. + + If the 'feeRate' is less than the minimum required network fee, then the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000 microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is usually 4.5 times the open ledger fee. + + Note: The 'feeRate' overrides the 'maxFeeRate' and 'minFeeRate'. + maxFeeRate: + allOf: + - $ref: '#/components/schemas/IntegerOrIntegerString' + - example: 20000 + description: | + (BTC only) The maximum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. The 'maxFeeRate' limits the fee rate generated by both 'feeMultiplier' and 'numBlocks'. + + Note: The 'feeRate' overrides the 'maxFeeRate'. + allowPartialSweep: + type: boolean + default: false + description: | + Use 'allowPartialSweep: true' to sweep part of a wallet when there are too many unspents to empty the wallet in a + single transaction. While the expected outcome of a single sweep call would usually be an empty wallet, using the + allowPartialSweep option may leave some funds in the wallet. Making repeated calls with the allowPartialSweep + option allows emptying wallets with many unspents without consolidating first. + txFormat: + $ref: '#/components/schemas/UtxoTransactionFormat' + ExpressVerifyCoinAddressRequest: type: object properties: - velocityLimitSpending: + address: + type: string + allOf: + - $ref: '#/components/schemas/AddressString3' + description: Address which should be verified for correct format + ExpressWallet: + title: Wallet + type: object + properties: + id: + $ref: '#/components/schemas/Id' + users: type: array + description: Ids of users with access to the wallet items: type: object properties: - coin: - allOf: - - $ref: '#/components/schemas/Coin' - - example: btc - timeWindow: - allOf: - - $ref: '#/components/schemas/IntegerString' - - example: '3600' - description: | - String representation of the time window in seconds (ex: 0 = per transaction, 3600 = hourly, - 86400 = daily). - limitAmountString: - allOf: - - $ref: '#/components/schemas/IntegerString' - - example: '1000000' - description: | - String representation of the spending limit in base units. - amountSpentString: - allOf: - - $ref: '#/components/schemas/IntegerString' - - example: '148310' - description: | - String representation of the current amount spent in base units. Guaranteed to not lose - precision. - WalletUnspents: - type: object - properties: + user: + $ref: '#/components/schemas/Id' + permissions: + type: array + description: Array of permissions for the user + items: + type: string + example: + - admin + - view + - spend coin: - $ref: '#/components/schemas/Coin' - unspents: - type: array - items: - $ref: '#/components/schemas/Unspent' - WalletUpdateCoinSpecific: - type: object - properties: - eth: - $ref: '#/components/schemas/WalletUpdateCoinSpecificEth' - teth: - $ref: '#/components/schemas/WalletUpdateCoinSpecificEth' - WalletUpdateCoinSpecificEth: - type: object - properties: - deployForwardersManually: - type: boolean - flushForwardersManually: - type: boolean - WalletUser: - type: object - properties: - user: - $ref: '#/components/schemas/Id' - permissions: + type: string + description: Name of the blockchain the wallet is on + example: tbtc4 + label: + type: string + description: Name the user assigned to the wallet + example: My TBTC4 Wallet + m: + type: integer + description: Number of signatures required for the wallet to send + example: 2 + 'n': + type: integer + description: Number of signers on the wallet + example: 3 + keys: type: array + description: Ids of wallet keys items: - $ref: '#/components/schemas/WalletPermission' - example: - user: 55e8a1a5df8380e0e30e20c6 - permissions: - - admin - - view - - spend - WalletsResponse: - type: object - properties: - wallets: + $ref: '#/components/schemas/Id' + keySignatures: + type: object + description: Signatures for the backup and BitGo public keys signed by the user key + properties: + backupPub: + type: string + description: Signature for the backup pub + example: 1fe81d0c91457d89993b01475bfb9e5809067ae046926faeab6e63beea009d8dd460387e0c3843034570798a9c2bcc1dbbea2988ee5a36979e0bbe6e02f7840af2 + bitgoPub: + type: string + description: Signature for the BitGo pub + example: 209d0e9a6d4352b66fae0a35ce62c1059bcc4db9e2883abc4f1b3d20481c5cebb7299c581efd9e0151abaf2496da7c6d75d276de36ed3de37c94e9cc5a2ea77e59 + tags: type: array + description: Tags set on the wallet items: - $ref: '#/components/schemas/Wallet' - nextBatchPrevId: - $ref: '#/components/schemas/NextBatchPrevId' - totalCount: + $ref: '#/components/schemas/Id' + receiveAddress: + $ref: '#/components/schemas/Address21' + balance: type: integer - required: - - wallets - WalletsWithCoinResponse: - allOf: - - $ref: '#/components/schemas/WalletsResponse' - - type: object - properties: - coin: - $ref: '#/components/schemas/Coin' - required: - - coin - Webhook1: - type: object - properties: - id: - $ref: '#/components/schemas/Id' - label: - type: string - example: Test Webhook - created: - $ref: '#/components/schemas/DateTime' - coin: - $ref: '#/components/schemas/Coin' - type: - $ref: '#/components/schemas/WebhookTypeWallet' - url: + description: Wallet balance as number + example: 0 + balanceString: type: string - format: uri - example: https://your.server.com/webhook - version: - type: integer - example: 2 - description: 2 for coins running on API v2. - numConfirmations: + description: Wallet balance as string + example: '0' + confirmedBalance: type: integer - example: 6 - state: + description: Confirmed wallet balance as number + example: 0 + confirmedBalanceString: type: string - description: If 'active', indicates the webhook can trigger and send to the URL. If 'suspended', indicates the webhook can't trigger. - enum: - - active - - suspended - example: active - lastAttempt: - $ref: '#/components/schemas/DateTime' - failingSince: - $ref: '#/components/schemas/DateTime' - successiveFailedAttempts: + description: Confirmed wallet balance as string + example: '0' + spendableBalance: type: integer + description: Spendable wallet balance as number example: 0 - walletId: + spendableBalanceString: type: string - allowBlockedHosts: + description: Spendable wallet balance as string + example: '0' + deleted: type: boolean - allToken: + description: Flag which indicates the wallet has been deleted + example: false + isCold: type: boolean - txRequestStates: - type: array - items: - $ref: '#/components/schemas/TransactionRequestState1' - description: If present, only transaction request state changes from the list will trigger notifications. If not present, all transaction request state changes will trigger notifications. - txRequestTransactionStates: - type: array - items: - $ref: '#/components/schemas/TransactionState1' - description: If present, only transaction request transaction state changes from the list will trigger notifications. If not present, all transaction request transaction state changes will trigger notifications. - identityStatus: - type: array - items: - $ref: '#/components/schemas/IdentityStatus' - description: If present, only identity status changes from the list will trigger notifications. If not present, all identity status changes will trigger notifications. - userKycState: - type: array - items: - $ref: '#/components/schemas/VerifiedKycState' - description: If present, only user kyc state changes from the list will trigger notifications. If not present, all kyc state changes will trigger notifications. - enterpriseKycState: + description: Flag for identifying cold wallets + example: false + freeze: + type: object + description: Freeze state (used to stop the wallet from spending) + properties: + time: + type: string + format: date-time + description: Time when the wallet becomes frozen + expires: + type: string + format: date-time + description: Time when the wallet is unfrozen and allowed to spend + example: {} + disableTransactionNotifications: + type: boolean + description: Flag for disabling wallet transaction notifications + example: false + admin: + type: object + description: Admin data (wallet policies) + example: {} + approvalsRequired: + type: integer + description: Number of admin approvals required for an action to fire + example: 1 + pendingApprovals: type: array + description: Pending approvals on the wallet items: - $ref: '#/components/schemas/VerifiedKycState' - description: 'If present, only enterprise kyc state changes from the list will trigger notifications. If not present, all kyc state changes will trigger notifications. ' - required: - - url - WebhookNotification: - type: object - properties: - id: - $ref: '#/components/schemas/Id' - coin: - $ref: '#/components/schemas/Coin' - type: - $ref: '#/components/schemas/WebhookTypeWallet' - walletType: - type: string - example: cold - transferType: - type: string - example: receive - value: - type: integer - example: 1055354 - valueString: - type: string - example: 1055354 - baseValue: - type: integer - example: 1055354 - baseValueString: - type: string - example: 1055354 - feeString: - type: string - example: 71854 - initiator: + $ref: '#/components/schemas/PendingApproval1' + example: [] + allowBackupKeySigning: + type: boolean + description: Flag for allowing signing with backup key + example: false + coinSpecific: + type: object + description: Coin-specific data + clientFlags: type: array items: type: string - example: external - receiver: - type: string - example: tb1q3tzuxef7qc0sl8jq6vh3hpeq0w7swmq9a7eh4p - version: - type: integer - example: 2 - state: + recoverable: + type: boolean + description: Flag indicating whether this wallet's user key is recoverable with the passphrase held by the user. + startDate: type: string - description: If 'failed', webhook notification failed to connect with the target URL. If 'new', webhook notification was newly generated, in response to an event. If 'pending', webhook notification is awaiting processing by the webhook worker. If 'processed', webhook notification successfully sent to target URL. If 'unconfirmed', webhook notification is awaiting confirmation on the blockchain. - enum: - - failed - - new - - pending - - processed - - unconfirmed - example: new - WebhookTypeBlock: - type: string - enum: - - block - - wallet_confirmation - example: block - XlmFeeInfo: - title: XLM + format: date-time + description: Time when this wallet was created + hasLargeNumberOfAddresses: + type: boolean + description: | + Flag indicating that this wallet is large (more than 100,000 addresses). If this is set, some APIs may omit + properties which are expensive to calculate for wallets with many addresses (for example, the total address + counts returned by the List Addresses API). + config: + type: object + description: Custom configuration options for this wallet + ExpressWalletRecoverTokenRequest: type: object - description: feeInfo (XLM) properties: - height: - type: integer - description: Height of the ledger that provided the values - example: 123456 - xlmBaseFee: + tokenContractAddress: type: string - description: Base network fee per transaction operation - example: '100' - xlmBaseReserve: + description: Contract address of the unsupported token + recipient: type: string - description: Base reserve used to calculate the minimum balance required by the network - example: '5000000' - XlmTxInfo: - title: XLM - type: object - description: txInfo (XLM) - properties: - fee: - type: integer - description: Network fee - example: 100 - operations: - type: array - items: - type: object - properties: - amount: - type: string - description: Amount in Lumens as string - example: '10.5' - asset: - type: object - properties: - code: - type: string - example: XLM - destination: - type: string - example: GCNFRU774FPHLV3HAB6CR54XJYFYITOLU6KS2J5BNCLDPYN7I3DOMIPY - type: - type: string - enum: - - payment - - createAccount - example: payment - sequence: + description: Destination address recovered tokens should be sent to + walletPassphrase: type: string - example: '35995558267060226' - source: + description: Wallet passphrase + prv: type: string - example: GBSGOXQNPULNPBX7XTHXP2GDBOZMHPIZOOA7CQXYTLHYKF5J2JDCF7LT - InscriptionId: - type: string - description: The ID of the inscription in the form i - example: 003f688cc349f1fca8ac5ffa21671ca911b6ef351085c60733ed8c2ebf162cb8i2 - pattern: ^[\da-f]{64}i[\d]+$ - Actions: + description: User private key + broadcast: + type: boolean + description: Whether to send to BitGo for cosigning and broadcast the transaction. If false, a half-siged transaction will be returned. + ExpressWalletRecoverTokenResponse: type: object - description: | - Wrapper object for a list of Actions. Not paginated. - required: - - actions properties: - actions: - type: array - items: - anyOf: - - $ref: '#/components/schemas/AlwaysDenyAction' - - $ref: '#/components/schemas/WalletAdminAction' - - $ref: '#/components/schemas/FinalApprovalAction' - - $ref: '#/components/schemas/EnterpriseAdminAction' - - $ref: '#/components/schemas/EnterpriseUserAction' - TransferAmountCondition: - title: Amount + halfSigned: + type: object + properties: + contractSequenceId: + type: integer + example: 1101 + expireTime: + type: integer + example: 1550088020 + gasLimit: + type: integer + example: 500000 + gasPrice: + type: integer + example: 20000000000 + operationHash: + type: string + example: 9.44792020725999e+76 + recipient: + type: object + properties: + address: + type: string + example: 4.7261295088313645e+47 + amount: + type: string + example: '2400' + signature: + type: string + example: 1.9519588812712557e+156 + tokenContractAddress: + type: string + example: 3.8941146273864216e+46 + walletId: + $ref: '#/components/schemas/Id' + ExpressWalletSignTxRequest: type: object - description: Enables policy rules to trigger based on withdrawal amount. The amount is by asset, such as BTC or USD. - required: - - name - - label - - description - - status - - parameters properties: - name: - type: string - description: The name of the condition. - enum: - - transfer.amount - example: transfer.amount - label: + keychain: + type: object + properties: + encryptedPrv: + type: string + description: Encrypted user private key + description: | + The user's keychain object with an 'encryptedPrv' property. The 'walletPassphrase' parameter is required when using 'keychain'. Any request must include either 'keychain' or 'prv'. + prv: type: string - description: A label for the condition which can be shown to an end user. - example: Spending limit - description: + description: | + User private key + + Note: The request must include either 'prv' or 'keychain' + example: xprv9s21ZrQH143K3xQwj4yx3fHjDieEdqFDweBvFxn28qGvfQGvweUWuUuDRpepDu6opq3jiWHU9h3yYTKk5vvu4ykRuGA4i4Kz1vmFMPLTsoC + txPrebuild: + type: object + properties: + wallet: + $ref: '#/components/schemas/Id' + txHex: + type: string + description: Serialized transaction hex + txBase64: + type: string + description: Serialized transaction base64 (applies to XLM only). The request must include this or a txHex + txInfo: + oneOf: + - $ref: '#/components/schemas/UtxoTxInfo' + - $ref: '#/components/schemas/XlmTxInfo' + feeInfo: + oneOf: + - $ref: '#/components/schemas/UtxoFeeInfo' + - $ref: '#/components/schemas/XlmFeeInfo' + description: The transaction description object as created by 'Build Transaction' + coldDerivationSeed: type: string - description: A description for the condition which can be shown to an end user. - example: Allows creating a condition based on the Spending limit - status: + description: | + A seed used to create a deterministic BIP-32 path which is then used to derive a private key. This is useful when one wants to create multiple BitGo cold wallets but only protect a single master private key. Using the seed one can create a child key for a specific wallet, for instance an Ethereum wallet could use the "eth" seed while an XRP wallet could use "xrp" as a seed. Both of these child keys would be derived from a single master key and so only the master key needs to be stored and protected. + walletPassphrase: type: string description: | - Status of the condition. Indicates if the condition is usable 'ACTIVE' or not 'INACTIVE'. - - * 'ACTIVE' - The condition is available for use. - * 'INACTIVE' - The condition is NOT available for use. - enum: - - ACTIVE - - INACTIVE - example: ACTIVE - parameters: + Passphrase to decrypt the user keychain. 'walletPassphrase' is a required parameter when the parameter 'keychain' is provided. + recipients: type: array - description: A list of Parameters to control how the condition behaves. items: - anyOf: - - $ref: '#/components/schemas/OperatorConditionParameter' - - $ref: '#/components/schemas/AmountConditionParameter' - - $ref: '#/components/schemas/CoinConditionParameter' - OperatorConditionParameter: - title: Operator + type: object + description: Array of objects describing the recipients. See buildTransaction for more detail. Required on ETH. + FederationError: type: object - description: The boolean operator used when comparing the transfer amount with the limit defined in this condition. - required: - - name - - label - - description - - type - - required - - allowMultiple - - values properties: - name: + status: + type: number + description: HTTP status code + detail: type: string - description: The name of the condition parameter. - enum: - - operator - example: operator - label: + description: Human-readable error message + error: type: string - description: A label for the condition parameter that you can display to users. - example: Comparison Operator - description: + description: Human-readable error message + name: type: string - description: A description for the condition parameter which can be shown to an end user. - example: The comparison operator to use when comparing the transfer amount with the given amount - type: + description: Error code + requestId: type: string - description: Accepts only enumerated values as listed in the 'values' property of this condition. - enum: - - ENUMERATED - example: ENUMERATED - required: + description: Client request id + required: + - status + - detail + - error + - name + - requestId + FeeAddressBalanceResponse: + type: object + properties: + balance: type: string - description: A value must always be provided, i.e. the parameter is required. - enum: - - ALWAYS - example: ALWAYS - allowMultiple: - type: boolean - description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. - example: 'false' - values: - $ref: '#/components/schemas/ValidValues' - ValidValues: - type: array - description: A list of valid values, only values from this list will be accepted. - items: - anyOf: - - $ref: '#/components/schemas/GreaterThanValue' - - $ref: '#/components/schemas/GreaterThanOrEqualToValue' - - $ref: '#/components/schemas/LessThanValue' - - $ref: '#/components/schemas/LessThanOrEqualToValue' - GreaterThanValue: - title: Greater than + description: | + Total balance in enterprise gas tank. + Freeze1: type: object - description: The greater than (>) operator. - required: - - value - - label - - description properties: - value: + time: type: string - enum: - - '>' - description: The actual value. - label: + format: date-time + description: When the freeze started + expires: type: string - description: A label for the condition parameter Value which can be shown to an end user. - example: Greater than - description: - type: string - description: A description for the condition parameter Value which can be shown to an end user. - example: The transfer amount must be greater than the given limit for the condition to trigger - GreaterThanOrEqualToValue: - title: Greater than or equal to + format: date-time + description: When the freeze will end + InitiateTrustlineParams: type: object - description: The greater than or equal to (>=) operator. - required: - - value - - label - - description properties: - value: - type: string - enum: - - '>=' - description: The actual value. - label: - type: string - description: A label for the condition parameter Value which can be shown to an end user. - example: Greater than or equal to - description: + memo: + type: object + properties: + type: + type: string + value: + type: string + description: | + The memo contains optional extra information that can also be used to identify payments in Stellar. + comment: type: string - description: A description for the condition parameter Value which can be shown to an end user. - example: The transfer amount must be greater than or equal to the given limit for the condition to trigger - LessThanValue: - title: Less than - type: object - description: The less than (>) operator. + description: | + Optional metadata (only persisted in BitGo) to be applied to the transaction. Use this to add transaction-specific information such as the transaction's purpose or another identifier that you want to reference later. The value is shown in the UI in the transfer listing page. + maxLength: 256 + trustlines: + type: array + items: + $ref: '#/components/schemas/Trustline' + description: List of trustlines to manage on the account. required: - - value - - label - - description + - trustlines + RecipientAmount: + oneOf: + - type: string + pattern: ^(-?\d+|max)$ + example: '2000000' + - type: integer + IntentType1: + title: IntentType + type: string + enum: + - payment + - transferToken + - consolidate + - consolidateToken + - fanout + - stake + - unstake + - delegate + - undelegate + - switchValidator + - claim + - stakeClaimRewards + - pledge + - vote + - createAccount + - updateAccount + - addTrustLine + - removeTrustLine + - signMessage + - signTypedStructuredData + - enableToken + - authorize + - acceleration + - fillNonce + - walletRecovery + - contractCall + - deactivate + - customTx + - closeAssociatedTokenAccount + InternationalWireBankAccount: + title: International Wire Bank Account + type: object + description: | + An external bank account. 'routingNumber' must be set for US bank accounts. + 'swiftCode' must be set for banks outside the US. properties: - value: - type: string - enum: - - < - description: The actual value. - label: + accountNumber: + description: Bank account number or IBAN. type: string - description: A label for the condition parameter Value which can be shown to an end user. - example: Less than - description: + minLength: 1 + maxLength: 34 + example: 114584906 + enterpriseId: + $ref: '#/components/schemas/Id' + address: type: string - description: A description for the condition parameter Value which can be shown to an end user. - example: The transfer amount must be less than the given limit for the condition to trigger - LessThanOrEqualToValue: - title: Less than or equal to - type: object - description: The less than or equal to (<=) operator. - required: - - value - - label - - description - properties: - value: + example: 2390 El Camino Real, Palo Alto, CA 94306 + address1: type: string - enum: - - <= - description: The actual value. - label: + example: 2390 El Camino Real + address2: type: string - description: A label for the condition parameter Value which can be shown to an end user. - example: Less than or equal to - description: + example: Palo Alto, CA 94306 + address3: type: string - description: A description for the condition parameter Value which can be shown to an end user. - example: The transfer amount must be less than or equal to the given limit for the condition to trigger - AmountConditionParameter: - title: Amount - type: object - description: The amount incoming transfers will be compared with. - required: - - name - - label - - description - - type - - required - - allowMultiple - properties: + example: '' name: type: string - description: The name of the condition parameter. - enum: - - amount - example: amount - label: + example: America California Bank + ownerName: type: string - description: A description for the condition parameter which can be shown to an end user. - example: The amount to compare to - description: + example: Donald E. Knuth + ownerAddress: type: string - description: A description for the condition parameter which can be shown to an end user. - example: The transfer amount will be compared with this limit + example: 2390 El Camino Real, Palo Alto, CA 94306 + owner: + type: object + description: Bank account owner + properties: + name: + type: string + example: Donald E. Knuth + address1: + type: string + example: Computer Science Department + address2: + type: string + example: Stanford University + address3: + type: string + example: Stanford, CA 94305-9045 + required: + - name + - address1 + swiftCode: + description: Bank identifier code, as specified by ISO 9362. Required for international wire transfers. + type: string + example: DEUTDEFF500 + minLength: 8 + maxLength: 11 + pattern: ^[A-Z]{6}[0-9A-Z]{2}([0-9A-Z]{3})?$ + shortCountryCode: + $ref: '#/components/schemas/ShortCountryCode' type: + $ref: '#/components/schemas/BankAccountType' + currency: + $ref: '#/components/schemas/BankAccountCurrency' + furtherCreditTo: type: string - description: The type of acceptable values for this condition parameter. - enum: - - NON_NEGATIVE_NUMBER - example: NON_NEGATIVE_NUMBER - required: + example: Donald E. Knuth + intermediaryBankName: type: string - description: A value must always be provided, i.e. the parameter is required. - enum: - - ALWAYS - example: ALWAYS - allowMultiple: - type: boolean - description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. - example: 'false' - CoinConditionParameter: - title: Coin - type: object - description: The asset the amount is expressed in. + example: America California Bank + intermediaryBankId: + type: string + example: 59cd72485007a239fb00282ed480da1f required: + - accountNumber + - address1 + - shortCountryCode - name - - label - - description + - owner + - enterpriseId + - swiftCode + InvalidAddress1: + title: Invalid address + allOf: + - $ref: '#/components/schemas/PlatformErrorNoName3' + - properties: + context: + type: object + properties: + address: + type: string + coin: + $ref: '#/components/schemas/Coin' + required: + - address + - coin + name: + type: string + description: Error code + enum: + - InvalidAddress + required: + - coin + - context + - address + - name + InvalidEnterpriseId1: + title: Invalid enterprise ID + allOf: + - $ref: '#/components/schemas/InvalidId1' + - properties: + name: + type: string + description: Error code + enum: + - InvalidEnterpriseId + required: + - name + InvalidId1: + allOf: + - $ref: '#/components/schemas/PlatformErrorNoName3' + - properties: + context: + type: object + properties: + id: + $ref: '#/components/schemas/Id' + required: + - context + InvalidOFAC: + title: Address error + allOf: + - $ref: '#/components/schemas/PlatformErrorNoName3' + - properties: + name: + type: string + description: Error code + enum: + - AddressError + error: + type: string + description: Human-readable error message + example: Address cannot be used + required: + - name + InvalidTransferId: + title: Invalid transfer ID + allOf: + - $ref: '#/components/schemas/InvalidId1' + - properties: + name: + type: string + description: Error code + enum: + - InvalidTransferId + required: + - name + InvalidUserId: + title: Invalid user ID + allOf: + - $ref: '#/components/schemas/InvalidId1' + - properties: + name: + type: string + description: Error code + enum: + - InvalidUserId + required: + - name + InvalidWalletId1: + title: Invalid wallet id + allOf: + - $ref: '#/components/schemas/InvalidId1' + - properties: + name: + type: string + description: Error code + enum: + - InvalidWalletId + required: + - name + Key: + title: Multisig + allOf: + - $ref: '#/components/schemas/KeyCommon' + - type: object + properties: + pub: + $ref: '#/components/schemas/Pub' + required: + - id - type - - required - - allowMultiple + KeyCommon: + type: object properties: - name: - type: string - description: The name of the condition parameter. - enum: - - coin - example: coin - label: - type: string - description: A description for the condition parameter which can be shown to an end user. - example: Currency - description: - type: string - description: A description for the condition parameter which can be shown to an end user. - example: This condition only applies to transfers of this currency (USD applies to all transfers) - type: - type: string - description: The type of acceptable values for this condition parameter. - enum: - - COIN_OR_USD - example: COIN_OR_USD - required: + encryptedPrv: type: string - description: A value must always be provided, i.e. the parameter is required. - enum: - - ALWAYS - example: ALWAYS - allowMultiple: + description: The encrypted private key + id: + $ref: '#/components/schemas/Id' + isBitGo: type: boolean - description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. - example: 'false' - TransferVelocityLimitCondition: - title: Velocity limit - type: object - description: Enables policy rules to trigger based on how much withdraws over a period of time from a specific wallet or from all wallets. The amount is by asset, such as BTC or USD. + description: True, if this key is owned by BitGo + example: false + source: + $ref: '#/components/schemas/KeySource' + type: + $ref: '#/components/schemas/KeyType' required: - - name - - label - - description - - status - - parameters + - id + - type + KeyCreateCoinSpecific: + type: object properties: - name: - type: string - description: The name of the condition. - enum: - - transfer.velocity.limit - example: transfer.velocity.limit - label: - type: string - description: A label for the condition which can be shown to an end user. - example: Spending Limit - description: - type: string - description: A description for the condition which can be shown to an end user. - example: Allows creating a condition based on the amount of coin or USD that can be spent over a period of time - status: - type: string - description: | - Status of the condition. Indicates if the condition is usable 'ACTIVE' or not 'INACTIVE'. - - * 'ACTIVE' - The condition is available for use. - * 'INACTIVE' - The condition is NOT available for use. - enum: - - ACTIVE - - INACTIVE - example: ACTIVE - parameters: - type: array - description: A list of Parameters to control how the condition behaves. - items: - anyOf: - - $ref: '#/components/schemas/VelocityAmountConditionParameter' - - $ref: '#/components/schemas/TimeWindowConditionParameter' - - $ref: '#/components/schemas/VelocityCoinConditionParameter' - - $ref: '#/components/schemas/ScopeConditionParameter' - VelocityAmountConditionParameter: - title: Amount + lnbtc: + $ref: '#/components/schemas/KeyCreateCoinSpecificLnbtc' + tlnbtc: + $ref: '#/components/schemas/KeyCreateCoinSpecificLnbtc' + KeyCreateCoinSpecificLnbtc: type: object - description: The withdrawable amount within the time window. - required: - - name - - label - - description - - type - - required - - allowMultiple properties: - name: - type: string - description: The name of the condition parameter. - enum: - - amount - example: amount - label: + purpose: + allOf: + - $ref: '#/components/schemas/KeyPurpose' + description: The purpose of the key. + KeyPurpose: + type: string + enum: + - userAuth + - nodeAuth + example: userAuth + KeyShare: + type: object + properties: + from: + allOf: + - $ref: '#/components/schemas/KeyShareSource' + description: The source of the key share. + to: + allOf: + - $ref: '#/components/schemas/KeyShareSource' + description: The recipient of the key share. + publicShare: type: string - description: A description for the condition parameter which can be shown to an end user. - example: Amount - description: + description: Public part of the share concatenated with chain code (64+64 characters hex string). + privateShare: type: string - description: A description for the condition parameter which can be shown to an end user. - example: The amount that can be spent within the time window - type: + description: Private part of the share concatenated with chain code (64+64 characters hex string). Depending on who the source and the recipient are, the share might be encrypted against the recipient's public key. + privateShareProof: type: string - description: The type of acceptable values for this condition parameter. - enum: - - NON_NEGATIVE_NUMBER - example: NON_NEGATIVE_NUMBER - required: + description: The certificate of the private share, signed by the source of the key share. + vssProof: type: string - description: A value must always be provided, i.e. the parameter is required. - enum: - - ALWAYS - example: ALWAYS - allowMultiple: - type: boolean - description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. - example: 'false' - TimeWindowConditionParameter: - title: Time window - type: object - description: The period of time this condition covers, in seconds. + description: The verifiable shamir share verification value required: - - name - - label - - description - - type - - required - - allowMultiple - properties: - name: - type: string - description: The name of the condition parameter. - enum: - - timeWindow - example: timeWindow - label: - type: string - description: A description for the condition parameter which can be shown to an end user. - example: time window - description: - type: string - description: A description for the condition parameter which can be shown to an end user. - example: The period of time this condition covers, in seconds - type: - type: string - description: The type of acceptable values for this condition parameter. - enum: - - NON_NEGATIVE_NUMBER - example: NON_NEGATIVE_NUMBER - required: - type: string - description: A value must always be provided, i.e. the parameter is required. - enum: - - ALWAYS - example: ALWAYS - allowMultiple: - type: boolean - description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. - example: 'false' - VelocityCoinConditionParameter: - title: Unit - type: object - description: The unit of currency the amount is denoted in, can be a cryptocurrency or a fiat currency. + - from + - to + - publicShare + - privateShare + KeyShareResponse: + allOf: + - $ref: '#/components/schemas/KeyShare' + - type: object + properties: + hsmSig: + type: string + description: openPGP ASCII armored public key format string. Can be used to ensure that the "u" value came from the HSM. This contains the HSM signature/certification (signed by bitgo GPG key pair) of the public form of the "u" value and notation packets that indicate the commonPublicKey and the key ids of the two GPG keys used to share wrapping (userGPGPublicKey and backupGPGPublicKey). required: - - name - - label - - description + - hsmSig + KeySource: + type: string + enum: + - backup + - bitgo + - cold + - user + example: user + KeyTSS: + title: MPC + allOf: + - $ref: '#/components/schemas/KeyCommon' + - type: object + properties: + commonKeychain: + type: string + description: The commonKeychain for the key if this is a MPC key. This value is required to be set when the type is set to “tss” and when the source is either “user” or “backup”. Setting this indicates to BitGo that the owner of the key has received all key shares they needed for generating their key. This value is the concatenation of the common public key (32-byte) with the common chaincode (32-byte) as a hex string. + commonPub: + type: string + description: The common public key. This value is required to be set for BLS keys when the source is either "user" or "backup". Setting this indicates to BitGo that the owner of the key has received all key shares they needed for generating their key. + required: + - id - type - - required - - allowMultiple - properties: - name: - type: string - description: The name of the condition parameter. - enum: - - coin - example: coin - label: - type: string - description: A description for the condition parameter which can be shown to an end user. - example: Unit - description: - type: string - description: A description for the condition parameter which can be shown to an end user. - example: The unit the amount is denoted in, can be a coin or a fiat currency - type: - type: string - description: The type of acceptable values for this condition parameter. - enum: - - COIN_OR_USD - example: COIN_OR_USD - required: - type: string - description: A value must always be provided, i.e. the parameter is required. - enum: - - ALWAYS - example: ALWAYS - allowMultiple: - type: boolean - description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. - example: 'false' - ScopeConditionParameter: - title: Scope - type: object - description: Defines the entities included in the velocity calculation. + - source + KeyTSSCreated: + title: MPC key + description: This schema contains KeyTSS attributes and several ephemeral fileds which are only available during the key creation since they are not stored. + allOf: + - $ref: '#/components/schemas/KeyTSS' + - type: object + properties: + commonKeychainSig: + type: string + description: openPGP ASCII armored pubkey format string. This contains the HSM signature/certification (signed by BitGo MPC GPG key pair) of the commonKeychain. This is necessary for verification purposes to ensure that the commonKeychain value came from BitGo's HSM. Used for full custody/OVC operations. + commonPublicKeySig: + type: string + description: OpenPGP ASCII pubkey armoured string containing HSM signature certification. Allows to ensure that commonPublicKey came from the HSM + keyShares: + type: array + items: + $ref: '#/components/schemas/KeyShareResponse' + walletHSMGPGPublicKeySigs: + type: string + description: GPG ASCII armored public key format that consists of HSM signature/certification and GPG notation data appended to the key signature subpackets required: - - name - - label - - description + - id - type - - required - - allowMultiple - - values + - source + KeyType: + type: string + enum: + - tss + - independent + - blsdkg + default: independent + description: A value from a string enum denoting what kind of key this is. Defaults to “independent” indicating an on-chain key is requested. If set to “tss” this tells us that a “tss” key is requested. + example: tss + KeysResponse: + type: object properties: - name: - type: string - description: The name of the condition parameter. - enum: - - scope - example: scope - label: - type: string - description: A description for the condition parameter which can be shown to an end user. - example: scope - description: - type: string - description: A description for the condition parameter which can be shown to an end user. - example: Entities that will be included in the velocity calculation - type: - type: string - description: Accepts only enumerated values as listed in the 'values' property of this condition. - enum: - - ENUMERATED - example: ENUMERATED - required: - type: string - description: A value must always be provided, i.e. the parameter is required. - enum: - - ALWAYS - example: ALWAYS - allowMultiple: - type: boolean - description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. - example: 'false' - values: + keys: type: array - description: A list of valid values, only values from this list will be accepted. items: - anyOf: - - $ref: '#/components/schemas/WalletValue' - - $ref: '#/components/schemas/EnterpriseValue' - WalletValue: - title: Wallet - type: object - description: Applies to a specific wallet. + oneOf: + - $ref: '#/components/schemas/Key' + - $ref: '#/components/schemas/KeyTSS' required: - - value - - label - - description - properties: - value: - type: string - enum: - - wallet - description: The actual value. - label: - type: string - description: A label for the condition parameter Value which can be shown to an end user. - example: Wallet - description: - type: string - description: A description for the condition parameter Value which can be shown to an end user. - example: Only spending from the transferring wallet will be included - EnterpriseValue: - title: Enterprise + - keys + ListBankAccountsResponse: type: object - description: Applies to the entire enterprise. - required: - - value - - label - - description properties: - value: - type: string - enum: - - enterprise - description: The actual value. - label: - type: string - description: A label for the condition parameter Value which can be shown to an end user. - example: Enterprise - description: - type: string - description: A description for the condition parameter Value which can be shown to an end user. - example: Spending from the entire transferring wallet's enterprise will be included - TransferInitiatorsCondition: - title: Initiator + bankAccounts: + type: array + items: + $ref: '#/components/schemas/BankAccountResponse' + ListWalletSharesResponse: type: object - description: Enables you to create a condition based on transaction initiator. - required: - - name - - label - - description - - status - - parameters properties: - name: - type: string - description: The name of the condition. - enum: - - transfer.initiators - example: transfer.initiators - label: - type: string - description: A label for the condition which can be shown to an end user. - example: Transfer Initiators - description: - type: string - description: A description for the condition which can be shown to an end user. - example: Enables creating a condition based on if the transfer initiator is a listed user. - status: - type: string - description: Identifies if the condition is currently active and usable. - enum: - - ACTIVE - - INACTIVE - example: ACTIVE - parameters: + incoming: type: array - description: A list of parameters that control how the condition behaves. items: - anyOf: - - $ref: '#/components/schemas/TransferInitiatorsUserIdsConditionParameter' - TransferInitiatorsUserIdsConditionParameter: + $ref: '#/components/schemas/WalletShare1' + outgoing: + type: array + items: + $ref: '#/components/schemas/WalletShare1' + LockedSession: type: object - description: The list of user ids the transfer initiator condition will checker against for triggering. - required: - - name - - label - - description - - type - - required - - allowMultiple properties: - name: + created: type: string - description: The name of the condition parameter. - enum: - - userIds - example: userIds - label: + format: date-time + expires: type: string - description: A description for the condition parameter which can be shown to an end user. - example: User Ids - description: + format: date-time + id: + $ref: '#/components/schemas/Id' + ip: + allOf: + - $ref: '#/components/schemas/Ip' + description: IP address of the client that requested this access token + ipRestrict: + type: array + items: + type: string + format: ipv4 + description: IP addresses of clients that are allowed to use this token + origin: type: string - description: A description for the condition parameter which can be shown to an end user. - example: The list of user ids to check the transfer initiator against. + example: test.bitgo.com + description: BitGo environment that issued this token. The token is only valid in this environment. + scope: + allOf: + - $ref: '#/components/schemas/Scope' + description: Session permissions + user: + $ref: '#/components/schemas/Id' + required: + - created + - expires + - id + - origin + - scope + - user + MemoObject: + type: object + properties: type: type: string - description: The type of acceptable values for this condition parameter, a valid HMAC BitGo ID. - enum: - - BITGO_USER_ID - example: BITGO_USER_ID - required: + value: type: string - description: ALWAYS if the parameter is required otherwise OPTIONAL. - enum: - - ALWAYS - example: ALWAYS - allowMultiple: - type: boolean - description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. - example: 'true' - TransferWebhookCondition: + description: | + Memo for Stellar or EOS. Type is only required for memos in Stellar transactions. The memo contains optional extra information that can also be used to identify payments in Stellar or EOS. + MemoString: + type: string + maxLength: 100 + description: A memo for this specific transaction. This format is only available for Stacks. + Message1: type: object - description: Enables you to create a condition based on if the transfer should send a payload to a webhook URL and receive a status code. - required: - - name - - label - - description - - status - - parameters properties: - name: + coin: type: string - description: The name of the condition. - enum: - - transfer.webhook - example: transfer.webhook - label: + description: The coin associated with the wallet. + combineSigShare: type: string - description: A label for the condition that you can display to an end user. - example: Transfer Webhook - description: + createdDate: + description: The date the message was created. type: string - description: A description for the Condition which can be shown to an end user. - example: Enables creating a condition based on if the transfer should send a payload to a webhook URL and receive a status code. - status: + format: date-time + messageEncoded: + description: The message encoded as a hex string. type: string - description: Identifies if the condition is currently active and usable. - enum: - - ACTIVE - - INACTIVE - example: ACTIVE - parameters: + messageRaw: + description: The message as human readable text. + type: string + signatureShares: type: array - description: A list of parameters that control how the condition behaves. items: - anyOf: - - $ref: '#/components/schemas/TransferWebhookUrlConditionParameter' - - $ref: '#/components/schemas/TransferWebhookCoinConditionParameter' - TransferWebhookUrlConditionParameter: - type: object - description: The webhook URL the transfer sends a payload to. - required: - - name - - label - - description - - type - - required - - allowMultiple - properties: - name: - type: string - description: The name of the condition parameter. - enum: - - webhookUrl - example: webhookUrl - label: - type: string - description: A description for the condition parameter that you can display to an end user. - example: Webhook URL - description: - type: string - description: The webhook URL to post the transfer payload to. - example: The webhook URL to post the transfer payload to - type: + $ref: '#/components/schemas/SignatureShare' + state: + $ref: '#/components/schemas/TransactionRequestState1' + txHash: type: string - description: The type of acceptable values for this condition parameter. Must be a valid webhook URL string. - enum: - - FREE_FORM - example: FREE_FORM - required: + description: The signed hex of the message. + updatedDate: + description: The date when the message state was updated. type: string - description: ALWAYS if the parameter is required otherwise OPTIONAL. - enum: - - ALWAYS - example: ALWAYS - allowMultiple: - type: boolean - description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. - example: 'false' - TransferWebhookCoinConditionParameter: - type: object - description: The asset to check the transfer against to determine if a webhook payload should be sent. + format: date-time required: - - name - - label - - description - - type - - required - - allowMultiple + - messageRaw + - state + MultisigTypeVersion1: + type: string + enum: + - MPCv2 + MutabilityConstraint1: + type: string + description: | + Specifies whether a BitGo admin can change 'lockDate' + * 'managed' - Not locked, but requires approval from a BitGo admin to change + * 'permanent' - 'lockDate' cannot be changed + * 'sticky' - Not included in bulk unlock, but 'lockDate' can be individually changed + enum: + - managed + - permanent + - sticky + Name: + type: object properties: - name: - type: string - description: The name of the condition parameter. - enum: - - coin - example: coin - label: - type: string - description: A description for the condition parameter that you can display to an end user. - example: Asset - description: + first: type: string - description: The asset this condition applies to. - example: The asset this condition applies to - type: + example: Jane + full: type: string - description: The type of acceptable values for this condition parameter. Must be a valid coin ticker string. - enum: - - COIN - example: COIN - required: + example: Jane Doe + last: type: string - description: ALWAYS if the parameter is required otherwise OPTIONAL. - enum: - - OPTIONAL - example: OPTIONAL - allowMultiple: - type: boolean - description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. - example: 'false' - TransferDestinationTypeCondition: - title: Destination - type: object - description: Enables policy rules to trigger based on destination. - required: - - name - - label - - description - - status - - parameters + example: Doe + NearStakeIntent1: + title: Near Stake + allOf: + - $ref: '#/components/schemas/StakeIntent2' + - type: object + properties: + recipients: + type: array + items: + $ref: '#/components/schemas/RecipientEntry1' + required: + - recipients + NearUnstakeIntent1: + title: Near Unstake + allOf: + - $ref: '#/components/schemas/UnstakeIntent2' + - type: object + properties: + recipients: + type: array + items: + $ref: '#/components/schemas/RecipientEntry1' + required: + - recipients + NearWithdrawIntent1: + title: Near Claim Unstake + allOf: + - $ref: '#/components/schemas/WithdrawIntent2' + - type: object + properties: + recipients: + type: array + items: + $ref: '#/components/schemas/RecipientEntry1' + required: + - recipients + NextBatchPrevId: + type: string + format: uuid + example: 585951a5df8380e0e3063e9f + description: When a result set is truncated, this field returns the id of the last object in the previous batch. To get the next batch of results, pass this value via the 'prevId' query parameter. + NonParticipationTransactionBuildRequest: + title: Non participation transaction + allOf: + - $ref: '#/components/schemas/BuildParams' + - type: object + properties: + nonParticipation: + type: boolean + required: + - nonParticipation + NumberOrString: + oneOf: + - type: string + pattern: ^-?[\d\.]+$ + example: '1.5' + - type: number + PendingApproval1: + title: Pending approval + type: object properties: - name: - type: string - description: The name of the condition. - enum: - - transfer.destination.type - example: transfer.destination.type - label: - type: string - description: A label for the condition that you can display to users. - example: Destination - description: + id: + $ref: '#/components/schemas/Id' + coin: + $ref: '#/components/schemas/Coin' + wallet: + $ref: '#/components/schemas/Id' + enterprise: + $ref: '#/components/schemas/Id' + organization: + $ref: '#/components/schemas/Id' + creator: + $ref: '#/components/schemas/Id' + createDate: type: string - description: A description for the condition that you can display to an end user. - example: Allows creating a condition based on the type of the funds destination - status: + format: date-time + info: + anyOf: + - $ref: '#/components/schemas/PendingApprovalTransactionRequest' + - $ref: '#/components/schemas/PendingApprovalTransactionRequestFull1' + - $ref: '#/components/schemas/PendingApprovalUserChangeRequest' + - $ref: '#/components/schemas/PendingApprovalPolicyRuleRequest' + - $ref: '#/components/schemas/PendingApprovalUpdateApprovalsRequiredRequest' + - $ref: '#/components/schemas/PendingApprovalEnterpriseModificationResponse' + - $ref: '#/components/schemas/PendingApprovalEnterpriseInviteRequest' + state: + $ref: '#/components/schemas/PendingApprovalState1' + scope: + description: What kind of entity the Pending Approval is tied to type: string - description: | - Status of the condition. Indicates if the condition is usable 'ACTIVE' or not 'INACTIVE'. - - * 'ACTIVE' - The condition is available for use. - * 'INACTIVE' - The condition is NOT available for use. enum: - - ACTIVE - - INACTIVE - example: ACTIVE - parameters: + - enterprise + - wallet + userIds: + description: All the Users who should see this Pending Approval type: array - description: A list of Parameters to control how the condition behaves. items: - anyOf: - - $ref: '#/components/schemas/DestinationTypeTypeConditionParameter' - - $ref: '#/components/schemas/DestinationTypeCoinConditionParameter' - DestinationTypeTypeConditionParameter: - title: Destination + $ref: '#/components/schemas/Id' + approvalsRequired: + $ref: '#/components/schemas/ApprovalsRequired' + walletLabel: + type: string + resolvers: + type: array + items: + type: object + properties: + user: + type: string + date: + type: string + resolutionType: + type: string + enum: + - approved + - awaitingSignature + - pending + - pendingBitGoAdminApproval + - pendingCryptographicApproval + - pendingCustodianApproval + - pendingFinalApproval + - pendingIdVerification + - pendingVideoApproval + - processing + - rejected + signatures: + type: array + items: + type: string + videoApprover: + type: string + videoLink: + type: string + videoException: + type: string + required: + - user + - date + - resolutionType + - signatures + addressLabels: + type: array + items: + $ref: '#/components/schemas/PendingApprovalAddressLabel' + PendingApprovalState1: + anyOf: + - $ref: '#/components/schemas/PendingApprovalStatePending1' + - $ref: '#/components/schemas/PendingApprovalStateResolved1' + PendingApprovalStatePending1: + title: Pending + type: string + enum: + - pending + - awaitingSignature + - pendingFinalApproval + - pendingCustodianApproval + - pendingVideoApproval + - pendingIdVerification + PendingApprovalStateResolved1: + title: Resolved + type: string + enum: + - approved + - processing + - rejected + PendingApprovalTransactionRequestFull1: + title: Transaction request (full) type: object - description: The type of destination this condition will match. - required: - - name - - label - - description - - type - - required - - allowMultiple - - values properties: - name: - type: string - description: The name of the condition parameter. - enum: - - type - example: type - label: - type: string - description: A description for the condition parameter which can be shown to an end user. - example: Type - description: - type: string - description: A description for the condition parameter which can be shown to an end user. - example: The type of destination this condition will match + transactionRequestFull: + type: object + properties: + txRequestId: + type: string + policyUniqueId: + $ref: '#/components/schemas/Id' + verificationItems: + type: array + items: + type: string + verificationRuleId: + type: string + videoApprovers: + $ref: '#/components/schemas/IdArray' + walletRebalanceEventId: + $ref: '#/components/schemas/Id' + txRequest: + $ref: '#/components/schemas/TransactionRequest1' + required: + - txRequestId type: type: string - description: Accepts only enumerated values as listed in the 'values' property of this condition. - enum: - - ENUMERATED - example: ENUMERATED - required: - type: string - description: A value must always be provided, i.e. the parameter is required. enum: - - ALWAYS - example: ALWAYS - allowMultiple: - type: boolean - description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. - example: 'false' - values: + - transactionRequestFull + PendingApprovals: + title: Pending approvals + type: object + properties: + pendingApprovals: type: array - description: A list of valid values, only values from this list will be accepted. items: - anyOf: - - $ref: '#/components/schemas/WhitelistedAddressValue' - - $ref: '#/components/schemas/NonWhitelistedAddressValue' - DestinationTypeCoinConditionParameter: - title: Asset + $ref: '#/components/schemas/PendingApproval1' + Policy1: type: object - description: The asset this condition applies to. - required: - - name - - label - - description - - type - - required - - allowMultiple properties: - name: + id: + $ref: '#/components/schemas/Id' + date: type: string - description: The name of the condition parameter. - enum: - - coin - example: coin + format: date-time label: type: string - description: A description for the condition parameter which can be shown to an end user. - example: Asset - description: - type: string - description: A description for the condition parameter which can be shown to an end user. - example: The asset this condition applies to. Optional. - type: - type: string - description: A cryptocurrency asset. - enum: - - COIN - example: COIN - required: - type: string - description: A value is not required. - enum: - - OPTIONAL - example: OPTIONAL - allowMultiple: + latest: type: boolean - description: Only one value can be provided. - example: 'false' - WhitelistedAddressValue: - title: Whitelisted - type: object - description: The destination is whitelisted. + rules: + type: array + items: + $ref: '#/components/schemas/PolicyRule1' + version: + type: integer required: - - value - - label - - description + - id + - latest + - rules + - version + PolicyRule1: + type: object properties: - value: - type: string - enum: - - whitelistedAddress - description: The actual value. - label: + id: type: string - description: A label for the condition parameter Value which can be shown to an end user. - example: Whitelisted address - description: + lockDate: type: string - description: A description for the condition parameter Value which can be shown to an end user. - example: The destination is whitelisted - NonWhitelistedAddressValue: - title: Not whitelisted + description: The time at which this rule becomes immutable + format: date-time + mutabilityConstraint: + $ref: '#/components/schemas/MutabilityConstraint1' + coin: + $ref: '#/components/schemas/Coin' + type: + $ref: '#/components/schemas/PolicyRuleTriggers' + condition: + $ref: '#/components/schemas/PolicyRuleConditions1' + action: + $ref: '#/components/schemas/PolicyRuleActions' + required: + - id + - lockDate + - type + - action + PolicyRuleConditions1: + title: Type + description: Parameters for the type + oneOf: + - title: Velocity limit + type: object + properties: + amountString: + $ref: '#/components/schemas/IntegerString' + timeWindow: + type: integer + minimum: 0 + maximum: 2678400 + description: Time window in seconds for a velocity limit, between 1 and a month + - title: USD velocity limit + type: object + properties: + amountString: + $ref: '#/components/schemas/IntegerString' + timeWindow: + type: integer + minimum: 0 + maximum: 2678400 + description: Time window in seconds for a velocity limit, between 1 and 30 days + - title: Whitelist + type: object + properties: + addresses: + description: Addresses allowed/restricted for a whitelist/blacklist + type: array + items: + oneOf: + - type: string + - $ref: '#/components/schemas/Id' + - title: Advanced whitelist + type: object + properties: + entries: + description: Entries specifying which addresses/ wallets/ enterprises are on the whitelist + type: array + items: + $ref: '#/components/schemas/AdvancedListRuleEntry1' + - title: Webhook + type: object + properties: + url: + type: string + description: the url to query for the webhook + PolicyRuleUpdateConditions: + title: Type + description: Parameters for the type + anyOf: + - title: Advanced whitelist + type: object + properties: + add: + $ref: '#/components/schemas/AdvancedListRuleEntry1' + required: + - add + - title: Whitelist + type: object + properties: + add: + description: Address to add to the list + oneOf: + - type: string + - $ref: '#/components/schemas/Id' + metaData: + type: object + description: An object with arbitrary metadata about the added address. + properties: + addedBy: + type: string + description: Text indicating who added this address to the whitelist + additionalProperties: true + required: + - add + - title: Remove address from whitelist + type: object + properties: + remove: + description: Address to remove from the list + oneOf: + - type: string + - $ref: '#/components/schemas/Id' + - $ref: '#/components/schemas/AdvancedListRuleEntry1' + required: + - remove + - type: object + PsbtHex: + type: string + description: BIP174 serialization of a PSBT + example: 70736274ff0100530100000001ccf3d1b853dcff06a939afef91d8b178d74028516bb831d77fcfd5b1ce6715f00000000000ffffffff01f0b9f5050000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf24387000000004f010488b21e0000000000000000003a922e29f0c8eb0db2a60484cbdcb631f6b107c9caae3ffdcf3e7d2ec1f6bcd00312148715f361dab685a669d42431e5d6d3f973404dab9c9fd1b950b279ad763404cc18ae084f010488b21e0000000000000000006d1d656d3ddd91c194c04565a3603702a21016ced14a265f38982d6275e67b6403d3bac2313a7c6b21cbb11b14b0d10341f922c0a403a8bd8c87f0dc820f35af6e04f65cd8694f010488b21e000000000000000000cb04fd63ab34d90fe6466b880e2a02ccf8a863374312991af8911b1aaab443340336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b62909504f2ef0389000100c00100000000010101010101010101010101010101010101010101010101010101010101010101010000000000ffffffff0100e1f5050000000017a914d909474404c124a3d04c3fbff61faa49cf43c58b87024730440220360d495738071ed6930084713724262ef55d710e06d85f90b56727ab83c91b5702200ae452a812717ef0ac8866989ffc963d88c14f9694fa57ef046dd699bea1d5da01210247496797efe8b56780cd9bee19ac3d916624829cacd3f1236fa608000193e54d0000000001012000e1f5050000000017a914d909474404c124a3d04c3fbff61faa49cf43c58b87010469522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae220602cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b420914f2ef038900000000000000000000000000000000220602d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab14cc18ae080000000000000000000000000000000022060344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f114f65cd8690000000000000000000000000000000000010069522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae2202035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf214cc18ae0800000000000000000100000000000000220203e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b14f65cd86900000000000000000100000000000000220203f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f14f2ef03890000000000000000010000000000000000 + Pub: + type: string + description: public part of a key pair + example: xpub661MyMwAqRbcGMVhmc7wqQRYMtcX9LAvSj1pjB213y5TsrkV2uuzJjWnjBrT1FUeNWGPjaVm5p7o6jdNcQJrV1cy3a1R8NQ9m7LuYKA8RpH + RecipientEntry1: type: object - description: The destination is not whitelisted. + properties: + address: + $ref: '#/components/schemas/TxAddress' + amount: + $ref: '#/components/schemas/Amount2' + data: + type: string + tokenData: + $ref: '#/components/schemas/TokenData1' required: - - value - - label - - description + - address + - amount + RecipientTokenData: + type: object properties: - value: + tokenName: + type: string + description: Name of token, as represented in BitGoJS Statics package. + tokenContractAddress: type: string + description: Address of token or smart contract. Required if token is unsupported by BitGo. Not required if passing "tokenName". + decimalPlaces: + type: integer + description: Relevant for fungible tokens. Not required if passing "tokenName". Defaults to smallest base unit. + tokenType: + type: string + description: Token standard enum: - - nonWhitelistedAddress - description: The actual value. - label: + - ERC20 + - ERC721 + - ERC1155 + tokenId: type: string - description: A label for the condition parameter Value which can be shown to an end user. - example: Non-whitelisted address - description: + description: ID of token to use when constructing transaction or calldata. Required for NFTs. + tokenQuantity: type: string - description: A description for the condition parameter Value which can be shown to an end user. - example: The destination is not whitelisted - FilteringConditions: + description: Quantity of token to use when constructing calldata (amount to transfer). + RejectReshare: type: object - description: | - Wrapper object for a list of Filtering Conditions. Not paginated. + properties: + userId: + $ref: '#/components/schemas/Id' required: - - conditions + - userId + ResendShareEmailResponse: + type: object properties: - conditions: - type: array - items: - anyOf: - - $ref: '#/components/schemas/WalletTypeCondition' - - $ref: '#/components/schemas/WalletIdsCondition' - - $ref: '#/components/schemas/WalletAllCondition' - WalletAllCondition: - title: Wallet all + resent: + type: boolean + ReservedUnspent: type: object - description: Wallet-all condition for the all-wallets scope. - required: - - name - - label - - description - - status + description: a ReservedUnspent object properties: - name: - type: string - description: The name of the condition. - enum: - - wallet.all - example: wallet.all - label: - type: string - description: A label for the condition which can be shown to an end user. - example: Wallet All - description: + id: type: string - description: A description for the condition which can be shown to an end user. - example: For all Wallets - status: + description: The id of the unspent in the form : + example: 003f688cc349f1fca8ac5ffa21671ca911b6ef351085c60733ed8c2ebf162cb8:2 + walletId: + $ref: '#/components/schemas/Id' + expireTime: type: string - description: | - Status of the condition. Indicates if the condition is usable 'ACTIVE' or not 'INACTIVE'. - - * 'ACTIVE' - The condition is available for use. - * 'INACTIVE' - The condition is NOT available for use. - enum: - - ACTIVE - - INACTIVE - example: ACTIVE - WalletIdsCondition: - title: Wallet ID - type: object - description: Wallet ID condition for the all-wallets scope. + format: date-time + userId: + $ref: '#/components/schemas/Id' required: - - name - - label - - description - - status - - parameters + - id + - walletId + - expireTime + - userId + STXStakingOptions: + title: STX + type: object properties: - name: - type: string - description: The name of the condition. - enum: - - wallet.ids - example: wallet.ids - label: - type: string - description: A label for the condition which can be shown to an end user. - example: Wallet Id - description: + contractName: type: string - description: A description for the condition which can be shown to an end user. - example: The Wallet Ids - status: + description: The STX staking contract name. Use pox-3. + default: pox-3 + functionName: type: string - description: | - Status of the condition. Indicates if the condition is usable 'ACTIVE' or not 'INACTIVE'. - - * 'ACTIVE' - The condition is available for use. - * 'INACTIVE' - The condition is NOT available for use. - enum: - - ACTIVE - - INACTIVE - example: ACTIVE - parameters: + description: STX staking contract function. + oneOf: + - type: string + description: Function name used to delegate funds. + default: delegate-stx + - type: string + description: Function name used to revoke delegated funds. + default: revoke-delegate-stx + functionArgs: type: array - description: A list of Parameters to control how the condition behaves. + description: The 4 Objects are required and in the order expressed. items: - allOf: - - $ref: '#/components/schemas/WalletIdParameter' - WalletIdParameter: + anyOf: + - title: uint128 + type: object + properties: + type: + type: string + default: uint128 + description: Type of argument. Use the default. + val: + type: string + description: Amount in micro-stx + - title: principal + type: object + properties: + type: + type: string + default: principal + description: Type of argument. Use the default. + val: + type: string + description: Address of the validator + - title: optional + type: object + properties: + type: + type: string + default: optional + description: Type of argument. Use the default. + val: + type: string + description: The number of cycles that the delegation will last. This is a mandatory field that must be greater than 1. + - title: optional + type: object + properties: + type: + type: string + default: optional + description: Type of argument. Use the default. + val: + type: object + properties: + type: + type: string + default: tuple + description: Type of argument. Use the default. + val: + type: array + description: The 2 objects are required and in the order expressed. + items: + anyOf: + - title: hash + type: object + properties: + key: + type: string + default: hashbytes + description: Type of argument. Use the default. + type: + type: string + default: buffer + description: Type of argument. Use the default. + val: + type: string + description: The BTC Address hash. + - title: version + type: object + properties: + key: + type: string + default: version + description: Type of argument. Use the default. + type: + type: string + default: buffer + description: Type of argument. Use the default. + val: + type: string + description: The BTC Address version. + SendLabel: type: object - description: The Wallet Id parameter determines on which Wallets this condition will trigger. - required: - - name - - label - - description - - type - - required - - allowMultiple properties: - name: - type: string - description: The name of the condition parameter. - enum: - - walletId - example: walletId + id: + $ref: '#/components/schemas/Id' + coin: + $ref: '#/components/schemas/Coin' + address: + $ref: '#/components/schemas/AddressString3' + enterpriseId: + $ref: '#/components/schemas/Id' label: type: string - description: A description for the condition parameter which can be shown to an end user. - example: Wallet Id - description: - type: string - description: A description for the condition parameter which can be shown to an end user. - example: he Wallet Ids - type: - type: string - description: The type of acceptable values for this condition parameter. - enum: - - BITGO_WALLET_ID - example: BITGO_WALLET_ID - required: - type: string - description: This Conditions parameter must always be provided. - enum: - - ALWAYS - example: ALWAYS - allowMultiple: - type: boolean - description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. - example: 'true' - WalletTypeCondition: - title: Wallet type - type: object - description: Wallet-type condition for the all-wallets scope. + maxLength: 250 required: - - name + - id + - coin + - address + - enterpriseId - label - - description - - status - - parameters + SendTransaction: + title: Sent Transaction + allOf: + - $ref: '#/components/schemas/BuildParams' + - type: object + description: Include buildParams from the build request to be stored in case of rebuilding. + type: object + description: This endpoint broadcasts half-signed transactions. properties: - name: - type: string - description: The name of the condition. - enum: - - wallet.type - example: wallet.type - label: + comment: type: string - description: A label for the condition which can be shown to an end user. - example: Wallet Type - description: + description: An optional memo for the transaction. + maxLength: 256 + halfSigned: + type: object + properties: + txHex: + type: string + description: The half-signed transaction. The request must include this or a txHex. + txHex: type: string - description: A description for the condition which can be shown to an end user. - example: Allows creating a condition based on the Wallet Type - status: + description: The half-signed, serialized transaction hex. Alternative to sending halfSigned. + sequenceId: type: string - description: | - Status of the condition. Indicates if the condition is usable 'ACTIVE' or not 'INACTIVE'. - - * 'ACTIVE' - The condition is available for use. - * 'INACTIVE' - The condition is NOT available for use. - enum: - - ACTIVE - - INACTIVE - example: ACTIVE - parameters: - type: array - description: A list of Parameters to control how the condition behaves. - items: - allOf: - - $ref: '#/components/schemas/WalletTypeParameter' - WalletTypeParameter: + description: Your own unique ID + videoApprovers: + $ref: '#/components/schemas/VideoApprovers' + Session1: type: object - description: The Wallet Type parameter determines on what type of Wallet this condition will trigger. - required: - - name - - label - - description - - type - - required - - allowMultiple - - values properties: - name: - type: string - description: The name of the condition parameter. - enum: - - walletType - example: walletType - label: - type: string - description: A description for the condition parameter which can be shown to an end user. - example: Type - description: - type: string - description: A description for the condition parameter which can be shown to an end user. - example: The Wallet Type - type: + created: type: string - description: This Conditions parameter has a set of defined values. - enum: - - ENUMERATED - required: + format: date-time + expires: type: string - description: This Conditions parameter must always be provided. - enum: - - ALWAYS - allowMultiple: - type: boolean - description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. - example: 'true' - values: + format: date-time + id: + $ref: '#/components/schemas/Id' + ip: + allOf: + - $ref: '#/components/schemas/Ip' + description: IP address of the client that requested this access token + ipRestrict: type: array - description: A list of valid values, only values from this list will be accepted. items: - anyOf: - - $ref: '#/components/schemas/CustodialValue' - - $ref: '#/components/schemas/HotValue' - - $ref: '#/components/schemas/ColdValue' - - $ref: '#/components/schemas/TradingValue' - - $ref: '#/components/schemas/CustodialPairedValue' - - $ref: '#/components/schemas/BackingValue' - CustodialValue: - title: Custodial cold wallet - type: object - description: Custodial cold wallet. - required: - - value - - label - - description - properties: - value: - type: string - enum: - - custodial - description: The actual value. - label: - type: string - description: A label for the condition parameter Value which can be shown to an end user. - example: Custodial Wallet - description: + type: string + format: ipv4 + description: IP addresses of clients that are allowed to use this token + origin: type: string - description: A description for the condition parameter Value which can be shown to an end user. - example: A custodial wallet - HotValue: - title: Self-managed hot wallet - type: object - description: Self-managed hot wallet wallet. + example: test.bitgo.com + description: BitGo environment that issued this token + scope: + allOf: + - $ref: '#/components/schemas/Scope' + description: Session permissions + unlock: + allOf: + - $ref: '#/components/schemas/Unlock1' + description: The Unlock object, returned if this session is currently unlocked. + user: + $ref: '#/components/schemas/Id' required: - - value - - label - - description - properties: - value: - type: string - enum: - - hot - description: The actual value. - label: - type: string - description: A label for the condition parameter Value which can be shown to an end user. - example: Hot Wallet - description: - type: string - description: A description for the condition parameter Value which can be shown to an end user. - example: A hot wallet - ColdValue: - title: Self-managed cold wallet + - created + - expires + - id + - origin + - scope + - user + ShareWalletRequest: type: object - description: Self-managed cold wallet. - required: - - value - - label - - description properties: - value: + permission: type: string + description: | + Comma-separated list of privileges for a wallet. Includes: + + - 'admin' - Can manage wallet policies and users and approve or reject pending approvals. + - 'freeze' - Can freeze a wallet, disabling all withdrawals. + - 'spend' - Can initiate withdrawals and generate new receive addresses. + - 'trade' - Can initiate trades from a Go Account ('trading' wallet type). + - 'view' - Can view balances and transactions. + + Permissions don't overlap. Required parameter if 'reshare' is false. enum: - - cold - description: The actual value. - label: - type: string - description: A label for the condition parameter Value which can be shown to an end user. - example: Cold Wallet - description: + - admin + - spend + - trade + - view + example: spend,view + message: type: string - description: A description for the condition parameter Value which can be shown to an end user. - example: A cold wallet - TradingValue: - title: Go Account - type: object - description: Go Account. + description: User readable message to display to the share recipient + reshare: + type: boolean + description: Flag for reinviting a user to the wallet. This is required if the invitee has already been invited to the wallet, but has changed their password and needs a new invite + disableEmail: + type: boolean + description: Flag for disabling invite notification email + user: + $ref: '#/components/schemas/Id' + keychain: + $ref: '#/components/schemas/WalletShareKeychain' + skipKeychain: + type: boolean + description: If true, allows creating wallet shares without a sharing a key (keychain) when the wallet is shared with spend permission. required: - - value - - label - - description + - user + ShareWalletResponse: + type: object + description: Wallet share object properties: - value: + id: + allOf: + - $ref: '#/components/schemas/Id' + description: Wallet share id + coin: + allOf: + - $ref: '#/components/schemas/Coin' + description: Coin of the wallet + wallet: + allOf: + - $ref: '#/components/schemas/Id' + description: Wallet id + walletLabel: + $ref: '#/components/schemas/WalletLabel' + fromUser: + allOf: + - $ref: '#/components/schemas/Id' + description: Id of the user sharing the wallet + toUser: + allOf: + - $ref: '#/components/schemas/Id' + description: Id of the user receiving the share + permissions: type: string - enum: - - trading - description: The actual value. - label: + allOf: + - $ref: '#/components/schemas/WalletPermission' + message: type: string - description: A label for the condition parameter Value which can be shown to an end user. - example: Trading Wallet - description: + description: Message for the user receiving the share + state: type: string - description: A description for the condition parameter Value which can be shown to an end user. - example: A trading wallet - CustodialPairedValue: - title: Custodial-paired wallet - type: object - description: Custodial-paired wallet. + allOf: + - $ref: '#/components/schemas/WalletShareState1' + description: State of the share + enterprise: + allOf: + - $ref: '#/components/schemas/Id' + description: If the wallet belongs to an enterprise, the id of that enterprise + pendingApprovalId: + allOf: + - $ref: '#/components/schemas/Id' + description: If the share generated a pending approval, the id of that pending approval + keychain: + $ref: '#/components/schemas/WalletShareKeychain' + ShortCountryCode: + type: string + description: Two-letter country code, as specified by ISO 3166-1 alpha-2 + minLength: 2 + maxLength: 2 + example: US + enum: + - AD + - AE + - AF + - AG + - AI + - AL + - AM + - AO + - AQ + - AR + - AS + - AT + - AU + - AW + - AX + - AZ + - BA + - BB + - BD + - BE + - BF + - BG + - BH + - BI + - BJ + - BL + - BM + - BN + - BO + - BQ + - BR + - BS + - BT + - BV + - BW + - BY + - BZ + - CA + - CC + - CD + - CF + - CG + - CH + - CI + - CK + - CL + - CM + - CN + - CO + - CR + - CU + - CV + - CW + - CX + - CY + - CZ + - DE + - DJ + - DK + - DM + - DO + - DZ + - EC + - EE + - EG + - EH + - ER + - ES + - ET + - FI + - FJ + - FK + - FM + - FO + - FR + - GA + - GB + - GD + - GE + - GF + - GG + - GH + - GI + - GL + - GM + - GN + - GP + - GQ + - GR + - GS + - GT + - GU + - GW + - GY + - HK + - HM + - HN + - HR + - HT + - HU + - ID + - IE + - IL + - IM + - IN + - IO + - IQ + - IR + - IS + - IT + - JE + - JM + - JO + - JP + - KE + - KG + - KH + - KI + - KM + - KN + - KP + - KR + - KW + - KY + - KZ + - LA + - LB + - LC + - LI + - LK + - LR + - LS + - LT + - LU + - LV + - LY + - MA + - MC + - MD + - ME + - MF + - MG + - MH + - MK + - ML + - MM + - MN + - MO + - MP + - MQ + - MR + - MS + - MT + - MU + - MV + - MW + - MX + - MY + - MZ + - NA + - NC + - NE + - NF + - NG + - NI + - NL + - 'NO' + - NP + - NR + - NU + - NZ + - OM + - PA + - PE + - PF + - PG + - PH + - PK + - PL + - PM + - PN + - PR + - PS + - PT + - PW + - PY + - QA + - RE + - RO + - RS + - RU + - RW + - SA + - SB + - SC + - SD + - SE + - SG + - SH + - SI + - SJ + - SK + - SL + - SM + - SN + - SO + - SR + - SS + - ST + - SV + - SX + - SY + - SZ + - TC + - TD + - TF + - TG + - TH + - TJ + - TK + - TL + - TM + - TN + - TO + - TR + - TT + - TV + - TW + - TZ + - UA + - UG + - UM + - US + - UY + - UZ + - VA + - VC + - VE + - VG + - VI + - VN + - VU + - WF + - WS + - YE + - YT + - ZA + - ZM + - ZW + SimulateWalletWebhookRequestBody: + oneOf: + - title: Transfer + type: object + properties: + transferId: + allOf: + - $ref: '#/components/schemas/Id' + description: The ID of a transfer on the specified wallet. This must be provided if the webhook is of type 'transfer'. + required: + - transferId + - title: Pending Approval + type: object + properties: + pendingApprovalId: + allOf: + - $ref: '#/components/schemas/Id' + description: The ID of a pending approval on the specified wallet. This must be provided if the webhook is of type 'pendingApproval'. + required: + - pendingApprovalId + - title: Transaction request + type: object + properties: + txRequestId: + type: string + description: The txRequestId of a transaction request on the specified wallet. This must be provided if the webhook is of type 'txRequest' or 'txRequestTransaction'. + required: + - txRequestId + TokenData1: + type: object + properties: + tokenType: + type: string + description: The type of standard of the token. + example: ERC721 + tokenQuantity: + type: string + description: The quantity of token to transfer (should be 1 for ERC721). + example: '101' + tokenContractAddress: + type: string + description: Address of the token contract which is necessary if the token is not supported on WP. + example: '0x3d8e90d5F403a0A18dfeeAd36E30EF95D5E1ad3a' + tokenName: + type: string + description: Name of the token as it is supported on WP. + example: tpolygon:name + tokenId: + type: string + description: Id of the token to be transferred which is required for NFTs. + example: '123' + decimalPlaces: + type: number + description: Number of decimal places the token uses (for fungible tokens unsupported in WP). + example: 18 + TotalBalances: + type: object + properties: + balances: + type: array + items: + type: object + properties: + balanceString: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: | + String representation of the balance in base units. Guaranteed to not lose + precision. + coin: + $ref: '#/components/schemas/Coin' + Transaction1: + type: object + properties: + state: + $ref: '#/components/schemas/TransactionState1' + unsignedTx: + allOf: + - $ref: '#/components/schemas/TransactionRequestUnsignedTransaction' + description: Holds the unsigned transaction for this transaction in a tx-request. + signatureShares: + type: array + description: Only used for MPC coins. This is used to collect signature shares from and exchange them with the user. Holds the signature shares for this transaction in a tx-request. + items: + $ref: '#/components/schemas/SignatureShare' + commitmentShares: + type: array + description: Only used for MPC coins on EdDSA curve. This is used to collect commitment shares from and exchange them with the user. Holds the commitment shares for this transaction in a tx-request. + items: + $ref: '#/components/schemas/CommitmentShare' + txHash: + type: string + description: The hash of the transaction from the TxRequest that has been signed and is pending broadcast. + bitgoPaillierChallenge: + description: BitGo-to-user paillier challenge. Required when signing with ECDSA MPC wallets. + type: object + properties: + p: + type: array + items: + type: string + required: + - state + - unsignedTx + TransactionBuildRequest: + title: Withdrawal + allOf: + - $ref: '#/components/schemas/BuildParams' + - type: object + properties: + recipients: + type: array + items: + type: object + properties: + amount: + allOf: + - $ref: '#/components/schemas/RecipientAmount' + description: String representation of the amount to send in base units (satoshis/litoshis/zatoshis/duffs). For doge, only string is allowed. Passing in 'max' will send the recipient the maximum amount available, minus fees and amounts for other recipients. Only a single recipient with a 'max' amount is allowed. + address: + allOf: + - $ref: '#/components/schemas/AddressString3' + description: The address to send to + memo: + anyOf: + - $ref: '#/components/schemas/MemoString' + - $ref: '#/components/schemas/MemoObject' + description: A list of recipient addresses and amounts. Must be present but empty for Child-Pays-For-Parent transactions. + txFormat: + $ref: '#/components/schemas/UtxoTransactionFormat' + required: + - recipients + TransactionBuildResult: + type: object + properties: + keyDerivationPath: + type: string + TransactionInitiateRequest: + allOf: + - $ref: '#/components/schemas/BuildParams' + - type: object + properties: + recipients: + type: array + items: + type: object + properties: + amount: + allOf: + - $ref: '#/components/schemas/RecipientAmount' + description: String representation of the amount to send in base units (satoshis/litoshis/zatoshis/duffs). For doge, only string is allowed. Passing in 'max' will send the recipient the maximum amount available, minus fees and amounts for other recipients. Only a single recipient with a 'max' amount is allowed. + address: + allOf: + - $ref: '#/components/schemas/AddressString3' + description: The address to send to + memo: + anyOf: + - $ref: '#/components/schemas/MemoString' + - $ref: '#/components/schemas/MemoObject' + description: A list of recipient addresses and amounts. Must be present but empty for Child-Pays-For-Parent transactions. + TransactionRequest1: + anyOf: + - $ref: '#/components/schemas/TransactionRequestLite1' + - $ref: '#/components/schemas/TransactionRequestFull1' + required: + - txRequestId + - version + - latest + - walletId + - state + - date + - userId + - intent + TransactionRequestBase1: + type: object + properties: + txRequestId: + type: string + description: A unique ID for the TxRequest document across all wallets. The combination of the txRequestId and version will always be unique. + version: + type: number + description: The version of the document. Data changes are done only with inserts and incrementing the version. + latest: + type: boolean + description: A boolean flag that indicates whether the document is the latest version of the TxRequest. + walletId: + type: string + description: The id of the Wallet the TxRequest is for. + walletType: + allOf: + - $ref: '#/components/schemas/WalletTypePublic' + description: The type describes who owns the keys to the wallet associated to the TxRequest. + enterpriseId: + type: string + description: If the wallet that owns the TxRequest is owned by an enterprise then this is the Id of said enterprise. + state: + $ref: '#/components/schemas/TransactionRequestState1' + date: + allOf: + - $ref: '#/components/schemas/DateTime' + description: The date and time this version of the TxRequest document was created. + createdDate: + allOf: + - $ref: '#/components/schemas/DateTime' + description: The date and time the version 1 TxRequest document was created. + userId: + type: string + description: The Id of the User that produced this version of the TxRequest document. Could have created a new document or updated an existing document. + initiatedBy: + type: string + description: The Id of the User that originally created the TxRequest document (initiated the TxRequest). + updatedBy: + type: string + description: The Id of the User that last updated the TxRequest document. This is an alias for the userId field. + intent: + $ref: '#/components/schemas/TransactionRequestIntent1' + intents: + type: array + items: + $ref: '#/components/schemas/TransactionRequestIntent1' + pendingApprovalId: + type: string + description: The id of the Pending Approval that was created for the TxRequest if one was required. + isCanceled: + type: boolean + description: True, if the transaction request is canceled. + required: + - txRequestId + - version + - latest + - walletId + - state + - date + - createdDate + - userId + - initiatedBy + - updatedBy + - intents + TransactionRequestFull1: + title: Full + allOf: + - $ref: '#/components/schemas/TransactionRequestBase1' + - type: object + properties: + transactions: + description: Transaction information. + type: array + items: + $ref: '#/components/schemas/Transaction1' + messages: + description: Messages for the transaction request. + type: array + items: + $ref: '#/components/schemas/Message1' + required: + - txRequestId + - version + - latest + - walletId + - state + - date + - userId + - intent + - transactions + TransactionRequestIntent1: + anyOf: + - $ref: '#/components/schemas/AdaStakeIntent1' + - $ref: '#/components/schemas/ConsolidateTokenIntent1' + - $ref: '#/components/schemas/CosmosContractCallIntent' + - $ref: '#/components/schemas/DOTClaimIntent' + - $ref: '#/components/schemas/DotPaymentIntent1' + - $ref: '#/components/schemas/DotStakingIntent' + - $ref: '#/components/schemas/DotUnstakingIntent' + - $ref: '#/components/schemas/EthAccelerationIntent' + - $ref: '#/components/schemas/EthFillNonceIntent' + - $ref: '#/components/schemas/EthPaymentIntent' + - $ref: '#/components/schemas/ETHSignMessageIntent' + - $ref: '#/components/schemas/EthStakingIntent' + - $ref: '#/components/schemas/NearStakeIntent1' + - $ref: '#/components/schemas/NearUnstakeIntent1' + - $ref: '#/components/schemas/NearWithdrawIntent1' + - $ref: '#/components/schemas/SolClaimIntent' + - $ref: '#/components/schemas/SolCreateAssociatedTokenAccountIntent' + - $ref: '#/components/schemas/SolStakeIntent' + - $ref: '#/components/schemas/SolUnstakeIntent' + - $ref: '#/components/schemas/TransferTokenIntent1' + - $ref: '#/components/schemas/UnstakeIntent2' + - $ref: '#/components/schemas/WalletRecoveryIntent1' + - $ref: '#/components/schemas/WithdrawIntent2' + TransactionRequestLite1: + title: Lite + allOf: + - $ref: '#/components/schemas/TransactionRequestBase1' + - type: object + properties: + unsignedTxs: + type: array + description: Holds all unsigned transactions that will be used to fulfill the TxRequest for MPC wallets. + items: + $ref: '#/components/schemas/TransactionRequestUnsignedTransaction' + signatureShares: + type: array + description: Only used for MPC coins. This is used to collect signature shares from and exchange them with the user. + items: + $ref: '#/components/schemas/SignatureShare' + commitmentShares: + type: array + description: Only used for MPC coins on EdDSA curve. This is used to collect commitment shares from and exchange them with the user. + items: + $ref: '#/components/schemas/CommitmentShare' + txHashes: + type: array + items: + type: string + description: The hashes of all transactions from the TxRequest that have been signed and are pending broadcast. + required: + - txRequestId + - version + - latest + - walletId + - state + - date + - userId + - intent + TransactionRequestState1: + type: string + enum: + - initialized + - pendingApproval + - pendingUserCommitment + - pendingUserRShare + - pendingUserGShare + - readyToSend + - pendingUserSignature + - pendingDelivery + - signed + - delivered + - canceled + - rejected + - failed + TransactionResponse: + type: object + properties: + transfer: + $ref: '#/components/schemas/Transfer' + txid: + type: string + description: The transaction's unique identifier + tx: + type: string + description: The encoded transaction, either base64 for XLM or hex for other coins + status: + $ref: '#/components/schemas/TransferState' + TransactionState1: + type: string + enum: + - initialized + - pendingSignature + - eddsaPendingCommitment + - eddsaPendingRShare + - eddsaPendingGShare + - readyToCombineShares + - signed + - held + - delivered + - invalidSignature + - rejected + - ecdsaMPCv2Round1 + - ecdsaMPCv2Round2 + - ecdsaMPCv2Round3 + Transfer: + type: object + properties: + coin: + $ref: '#/components/schemas/Coin' + id: + $ref: '#/components/schemas/Id' + wallet: + $ref: '#/components/schemas/Id' + enterprise: + $ref: '#/components/schemas/Id' + txid: + $ref: '#/components/schemas/TxId' + txidType: + type: string + description: The type of the transaction id + enum: + - transactionHash + - blockHash + height: + type: integer + description: The height of the block this Transfer was confirmed in (999999999 if unconfirmed) + heightId: + type: string + description: The unique height id of the block + date: + type: string + format: date-time + description: The date this Transfer was last updated + confirmations: + type: integer + description: The number of blocks that have been confirmed since this Transfer's block was confirmed + type: + type: string + description: Defines whether or not this Transfer was sent or received by the user + enum: + - send + - receive + value: + type: integer + description: The total value (in base units) sent by this Transfer (may be approximate for ETH and other coins where amounts in base units can exceed 2^53 - 1) + valueString: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: The total value (in base units) sent by this Transfer represented as a String + intendedValueString: + description: A string representation (in base units) of the initial value for the transfer. This is present because when a transaction fails on chain, its value is mutated to be zero. This string is immutable and will always be the intended value of the initial transfer regardless of the final state of the transaction. + allOf: + - $ref: '#/components/schemas/IntegerString' + baseValue: + type: integer + description: The value (in base units) sent by this transfer, excluding network fees. BitGo is deprecating this field in the future. Instead, use baseValueWithoutFees. + baseValueString: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: The value (in base units) sent by this transfer, excluding network fees represented as a string. BitGo is deprecating this field in the future. Instead, use baseValueWithoutFees. + baseValueWithoutFees: + type: integer + description: The value (in base units) sent by this transfer excluding network fees. + baseValueWithoutFeesString: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: The value (in base units) sent by this transfer, excluding network fees, represented as a string + feeString: + type: string + description: The Transfer's fee (in base units) represented as a String + payGoFee: + type: integer + description: The Transfer's BitGo fee (in base units) + payGoFeeString: + type: string + description: The Transfer's BitGo fee (in base units) represented as a String + usd: + type: number + description: The amount of USD of this Transfer (will be negative if it's a send) + usdRate: + type: number + description: The USD price at the time this Transfer was created + state: + $ref: '#/components/schemas/TransferState' + tags: + type: array + description: The tags to be used on this Transfer (used in Policies) + items: + $ref: '#/components/schemas/Id' + history: + type: array + description: An audit log of events that have happened to the Transfer during its lifecycle + items: + type: object + properties: + date: + type: string + format: date-time + description: The date of this history object + user: + $ref: '#/components/schemas/Id' + action: + type: string + enum: + - created + - signed + - unconfirmed + - confirmed + - approved + - commented + - removed + - failed + - rejected + comment: + type: string + description: If this history object is of action 'commented', this is the comment from the user + comment: + type: string + description: A comment from the user + vSize: + type: integer + description: The size of the transaction + coinSpecific: + type: object + description: Transfer fields specific to each coin type + sequenceId: + type: string + description: | + A 'sequenceId' is a unique and arbitrary wallet identifier applied to transfers and transactions at creation. It is optional but highly recommended. With a 'sequenceId' you can easily reference transfers and transactions—for example, to safely retry sending. Because the system only confirms one send request per 'sequenceId' (and fails all subsequent attempts), you can retry sending without the risk of double spending. The 'sequenceId' is only visible to users on the wallet and is not shared publicly. + entries: + type: array + description: An array of objects describing the change in address balances made as a result of this Transfer + items: + type: object + properties: + address: + type: string + description: An address affected by this Transfer + example: 2NAUwNgXaoFj2VVnSEvNLGuez8CfdU2UCMZ + wallet: + allOf: + - $ref: '#/components/schemas/Id' + description: Only visible when the user has access to the wallet + value: + type: integer + description: The change (in base units) in the address's balance + valueString: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: The change (in base units) in the address's balance represented as a String + isChange: + type: boolean + description: True if this address is a change address (only exists for UTXO coins) and if this is a 'sent' Transfer + isPayGo: + type: boolean + description: True if this address is the BitGo PayGo wallet + token: + type: string + description: If this is a token entry, the token's symbol + example: omg + label: + type: string + description: Names of addresses given by the user. + failed: + type: boolean + description: true if this entry is failed. + associatedNativeCoinAddress: + type: string + description: The native coin receive address associated with the solana ATA address. This is currently present only for BitGo addresses. + required: + - address + - valueString + usersNotified: + type: boolean + description: Whether BitGo already sent notifications to the users of the transfer wallet + label: + type: string + description: Address labels (if any) from entries concatenated. + replaces: + type: array + description: Transaction IDs that this transfer replaces. + items: + type: string + replacedBy: + type: array + description: Transaction IDs that replace this transfer. + items: + type: string + required: + - id + - coin + - wallet + - txid + - height + - date + - confirmations + - type + - valueString + - usd + - usdRate + - state + - tags + - history + - comment + - coinSpecific + TransferState: + type: string + example: confirmed + enum: + - confirmed + - failed + - initialized + - pendingApproval + - rejected + - removed + - replaced + - signed + - unconfirmed + TransferTokenIntent1: + title: Transfer Token + allOf: + - $ref: '#/components/schemas/BaseIntent2' + - type: object + properties: + intentType: + type: string + enum: + - transferToken + recipients: + type: array + items: + $ref: '#/components/schemas/RecipientEntry1' + TransfersResponse: + type: object + properties: + transfers: + type: array + items: + $ref: '#/components/schemas/AnnotatedTransferWithInputsOutputs' + coin: + $ref: '#/components/schemas/Coin' + nextBatchPrevId: + $ref: '#/components/schemas/NextBatchPrevId' + required: + - transfers + - coin + Trustline: + type: object + properties: + token: + type: string + description: One of the supported coin types for Stellar tokens listed in [Coin-specific-implementation](#tag/Coin-specific-implementation) + example: txlm:BST-GBQTIOS3XGHB7LVYGBKQVJGCZ3R4JL5E4CBSWJ5ALIJUHBKS6263644L + action: + enum: + - add + - remove + limit: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: String representation of the amount to limit in base units (stroops) + TxBase64: + type: string + description: Serialized transaction base64 (applies to XLM only) + example: AAAAAGRnXg19FteG/7zPd+jDC7LDvRlzgfFC+JrPhRep0kYiAAAAZAB/4cUAAAACAAAAAAAAAAAAAAABAAAAAQAAAABkZ14NfRbXhv+8z3fowwuyw70Zc4HxQviaz4UXqdJGIgAAAAEAAAAAmljT/+FedddnAHwo95dOC4RNy6eVLSehaJY34b9GxuYAAAAAAAAAAAehIAAAAAAAAAAAAUrgwAkAAABAOExcvVJIUJv9HuVfbV0y7lRPRARv4wDtcdhHG7QN40h5wQ2uwPF52OGQ8KY+66a1A/8lNKB75sgj2xj44s8lDQ== + TxHex: + type: string + description: Serialized transaction hex + example: 01000000000101d58f82d996dd872012675adadf4606734906b25a413f6e2ee535c0c10aef96020000000000ffffffff028de888000000000017a914c91aa24f65827eecec775037d886f2952b73cbe48740420f000000000017a9149304d18497b9bfe9532778a0f06d9fff3b3befaf870500473044022023d7210ba6d8bbd7a28b8af226f40f7235caab79156f93f9c9969fc459ea7f73022050fbdca788fba3de686b66b3501853695ff9d6f375867470207d233b099576e001000069522103d4788cda52f91c1f6c82eb91491ca76108c9c5f0839bc4f02eccc55fedb3311c210391bcef9dcc89570a79ba3c7514e65cd48e766a8868eca2769fa9242fdcc796662102ef3c5ebac4b54df70dea1bb2655126368be10ca0462382fcb730e55cddd2dd6a53aec8b11400 + Unlock1: + type: object + properties: + time: + type: string + format: date-time + expires: + type: string + format: date-time + txCount: + type: integer + txValue: + type: integer + txValueLimit: + type: number + spendingLimits: + $ref: '#/components/schemas/SpendingLimits' + UnlockRequest: + type: object + properties: + duration: + type: integer + minimum: 1 + maximum: 3600 + default: 600 + description: Number of seconds that the session will stay unlocked + otp: + $ref: '#/components/schemas/Otp' + Unspent: + type: object + properties: + id: + $ref: '#/components/schemas/UnspentId' + address: + type: string + description: The address of this unspent + example: 2MsKxhhkDo5WaLaYRGA9Cr3iSQPyXsu6Fi2 + value: + type: integer + valueString: + $ref: '#/components/schemas/IntegerString' + blockHeight: + type: integer + description: The block this Unspent was created in + date: + type: string + format: date-time + description: The date this unspent was created + example: '2017-03-25T23:01:40.248Z' + coinbase: + type: boolean + description: True if this unspent came from the coinbase transaction + wallet: + $ref: '#/components/schemas/Id' + fromWallet: + $ref: '#/components/schemas/Id' + chain: + type: integer + description: The type of this unspent's address (P2SH, P2WSH, etc...) + example: 0 + index: + type: integer + description: A monotonic counter used when creating new addresses + redeemScript: + type: string + description: The Script program used to cryptographically verify spending this unspent + example: 522102f1e990044d2a8be43d5b500bbdcb36277b97a4b07e01c5101ae8ec1568bfd6532103dab7dc82f2fc8c28200c1bdeca9c4cf181e0ca257395829cbd599395048afb57210205422e711827d8356f2fb75334d863941dd7eb45bd5788fa231dc5fa755135b653ae + witnessScript: + type: string + description: The segwit Script program used to cryptographically verify spending this unspent + example: 52210351311cd81144e6cbdba561d24dfc22644cb02d053339d4beace03231b3be4f372103a8d0c1a375b9ee1a2411f9f8e18373be7f228b18260f63bbfca48809170ed08b2103c3bd8bd074657bbe9ee6714b31a4a54b6fd5b5cda0e1030122f9bf46b5034f6b53ae + isSegwit: + type: boolean + UnspentId: + type: string + description: The id of the unspent in the form : + example: 003f688cc349f1fca8ac5ffa21671ca911b6ef351085c60733ed8c2ebf162cb8:2 + UpdateBankAccountRequest: + type: object + description: Updates some fields on a bank account. The server only allows updating of bank accounts that have their verificationState set to 'rejected' or 'approved'. Does not allow updating of critical fields like accountNumber, enterpriseId, id, routingNumber, swiftCode. + properties: + address1: + type: string + example: 2390 El Camino Real + address2: + type: string + example: Palo Alto, CA 94306 + address3: + type: string + example: '' + name: + type: string + example: America California Bank + owner: + type: object + description: Bank account owner + properties: + name: + type: string + example: Donald E. Knuth + address1: + type: string + example: Computer Science Department + address2: + type: string + example: Stanford University + address3: + type: string + example: Stanford, CA 94305-9045 + shortCountryCode: + $ref: '#/components/schemas/ShortCountryCode' + address: + type: string + example: 2390 El Camino Real, Palo Alto, CA 94306 + ownerName: + type: string + example: Donald E. Knuth + ownerAddress: + type: string + example: 2390 El Camino Real, Palo Alto, CA 94306 + type: + type: string + enum: + - checking + - savings + furtherCreditTo: + type: string + example: Donald E. Knuth + intermediaryBankId: + type: string + example: 5c645791cf8eb19304292a8e3365fee3 + intermediaryBankName: + type: string + example: Bank of America + UpdateCommentRequest: + type: object + properties: + comment: + type: string + description: The new comment for the transfer. + UpdateRemovePolicyRule: + type: object + properties: + coin: + allOf: + - $ref: '#/components/schemas/Coin' + description: | + Policy rules of types 'allTx', 'coinAddressWhitelist', 'coinAddressBlacklist' and 'webhook' are recommended to + be used without setting a coin so that they will apply to all coins and tokens that could be in a wallet. If + your policy rule is of one of these types and has a coin set on it, you also need to set the coin in the body. + This is necessary because the id alone may not be sufficient for finding the correct rule to update or delete. + id: + type: string + description: The id of the rule. The combination of id and coin must be unique among rules in the policy. + type: + $ref: '#/components/schemas/PolicyRuleTriggers' + condition: + $ref: '#/components/schemas/PolicyRuleUpdateConditions' + action: + $ref: '#/components/schemas/PolicyRuleActions' + required: + - id + - type + - action + UpdateSendLabel: + type: object + properties: + label: + type: string + maxLength: 250 + description: A human-readable mapping to an address + required: + - label + User: + type: object + properties: + id: + $ref: '#/components/schemas/Id' + isActive: + type: boolean + isFrozen: + type: boolean + freezeReason: + type: string + example: Frozen due to suspicious activity + name: + $ref: '#/components/schemas/Name' + username: + $ref: '#/components/schemas/Email' + email: + type: object + properties: + email: + $ref: '#/components/schemas/Email' + verified: + type: boolean + example: true + phone: + type: object + properties: + phone: + type: string + example: 408-718-6885 + verified: + type: boolean + example: true + country: + type: string + example: USA + state: + type: string + example: New York + UserKycState: + type: string + enum: + - approved + - flagged + - flagged_retry_allowed + - inreview + - pending + - rejected + - unverified + UserSharingKey: + type: object + required: + - email + properties: + email: + $ref: '#/components/schemas/Email' + UtxoFeeInfo: + title: UTXO + type: object + description: feeInfo (UTXO) + properties: + size: + type: integer + description: Estimated size of the transaction in bytes + example: 776 + fee: + type: integer + description: Estimated fee in base unit for the transaction + example: 38800 + feeRate: + allOf: + - $ref: '#/components/schemas/IntegerOrString' + - example: 10000 + description: | + Custom minimum fee rate in a coin's base unit per kilobyte (or virtual kilobyte)--for example, satoshis per kvByte or microAlgos per kByte. If the applied 'feeRate' does not meet a coin's required minimum transaction fee amount, the minimum is still applied (for example, 1000 sat/kvByte or a flat 1000 microAlgos). + payGoFee: + type: integer + description: BitGo fee of the transaction (in base units) + example: 0 + payGoFeeString: + type: integer + description: BitGo fee of the transaction (in base units) represented as a String + example: '0' + UtxoTransactionFormat: + type: string + description: |- + [UTXO only] Format of the returned transaction hex serialization. + 'legacy' for serialized transaction in custom bitcoinjs-lib format. 'psbt' for BIP174 serialized transaction + enum: + - legacy + - psbt + - psbt-lite + default: legacy + example: psbt + UtxoTxInfo: + title: UTXO + type: object + description: txInfo (UTXO) + properties: + changeAddresses: + type: array + items: + $ref: '#/components/schemas/AddressString3' + nOutputs: + type: integer + description: Number of outputs + example: 2 + nP2SHInputs: + type: integer + example: 0 + nSegwitInputs: + type: integer + example: 1 + unspents: + type: array + items: + $ref: '#/components/schemas/Unspent' + walletAddressDetails: + $ref: '#/components/schemas/Address21' + VideoApprovers: + type: array + items: + $ref: '#/components/schemas/Id' + description: | + A list of public ids of users that should do the video id verification for the transaction that is being sent or initiated. + minItems: 1 + Wallet1: + type: object + properties: + admin: + type: object + properties: + policy: + $ref: '#/components/schemas/Policy1' + allowBackupKeySigning: + type: boolean + approvalsRequired: + $ref: '#/components/schemas/ApprovalsRequired' + balanceString: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: Total balance in base units (e.g. Satoshis) + buildDefaults: + $ref: '#/components/schemas/WalletBuildDefaults' + coin: + $ref: '#/components/schemas/Coin' + coinSpecific: + $ref: '#/components/schemas/WalletCoinSpecific' + custodialWallet: + type: object + description: The associated custodial wallet object + custodialWalletId: + $ref: '#/components/schemas/Id' + deleted: + type: boolean + disableTransactionNotifications: + type: boolean + enterprise: + $ref: '#/components/schemas/Id' + freeze: + type: object + properties: + time: + type: string + format: dateTime + expires: + type: string + format: dateTime + id: + $ref: '#/components/schemas/Id' + isCold: + type: boolean + keys: + $ref: '#/components/schemas/Keys' + label: + $ref: '#/components/schemas/WalletLabel' + m: + $ref: '#/components/schemas/NumSignatures' + 'n': + $ref: '#/components/schemas/NumKeychains' + nodeId: + $ref: '#/components/schemas/Id' + receiveAddress: + $ref: '#/components/schemas/Address21' + recoverable: + type: boolean + tags: + type: array + items: + $ref: '#/components/schemas/Id' + spendableBalanceString: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: Spendable balance in base units (e.g. Satoshis) + unspentCount: + type: number + example: 100 + description: Number of unspent outputs present in the wallet + startDate: + allOf: + - $ref: '#/components/schemas/DateTime' + description: Wallet creation time + type: + $ref: '#/components/schemas/WalletTypePublic' + users: + type: array + items: + $ref: '#/components/schemas/WalletUser' + customChangeKeySignatures: + $ref: '#/components/schemas/CustomChangeKeySignatures' + multisigType: + $ref: '#/components/schemas/WalletMultisigType' + multisigTypeVersion: + $ref: '#/components/schemas/MultisigTypeVersion1' + required: + - approvalsRequired + - coin + - deleted + - disableTransactionNotifications + - id + - label + WalletConsolidateUnspentsResponse: + type: object + properties: + txHex: + oneOf: + - $ref: '#/components/schemas/TxHex' + - $ref: '#/components/schemas/PsbtHex' + txInfo: + $ref: '#/components/schemas/UtxoTxInfo' + feeInfo: + $ref: '#/components/schemas/UtxoFeeInfo' + WalletCreateCoinSpecific: + type: object + properties: + xlm: + $ref: '#/components/schemas/WalletCreateCoinSpecificXlm' + txlm: + $ref: '#/components/schemas/WalletCreateCoinSpecificXlm' + lnbtc: + $ref: '#/components/schemas/WalletCreateCoinSpecificLnbtc' + tlnbtc: + $ref: '#/components/schemas/WalletCreateCoinSpecificLnbtc' + WalletCreateCoinSpecificLnbtc: + type: object + properties: + keys: + allOf: + - $ref: '#/components/schemas/Keys' + example: + - 585951a5df8380e0e304a553 + - 585951a5df8380e0e30d645c + description: Lightning wallet only. Array of two key IDs for 'userAuthKey' and 'nodeAuthKey'. + WalletCreateCoinSpecificXlm: + type: object + properties: + stellarUsername: + type: string + description: Username for the user's Stellar address. It's case insensitive, and it can't be changed after it's set. + pattern: ^[a-zA-Z0-9-_.+@]+$ + example: foo_bar@baz.com + WalletCustomAddress: + type: string + example: ivxzn3bdn4uo + description: A custom address can be provided for EOS wallets. It must be exactly 12 alphanumeric characters. + WalletLimit: + type: object + properties: + coin: + $ref: '#/components/schemas/Coin' + limit: + type: integer + count: + type: integer + minimum: 0 + isCustodial: + type: boolean + enum: + - true + required: + - coin + - count + WalletLimitsResponse: + type: array + items: + $ref: '#/components/schemas/WalletLimit' + WalletMaximumSpendable: + type: object + properties: + coin: + $ref: '#/components/schemas/Coin' + maximumSpendable: + type: string + example: '19948310' + WalletRecoveryIntent1: + title: Wallet Recovery + type: object + properties: + intentType: + type: string + sequenceId: + type: string + description: | + A 'sequenceId' is a unique and arbitrary wallet identifier applied to transfers and transactions at creation. It is optional but highly recommended. With a 'sequenceId' you can easily reference transfers and transactions—for example, to safely retry sending. Because BitGo only confirms one send request per 'sequenceId' (and fails all subsequent attempts), you can retry sending without the risk of double spending. The 'sequenceId' is only visible to users on the wallet and is not shared publicly. It is the responsibility of the caller to keep track of this ID. + example: abc123 + comment: + type: string + description: The 'comment' is only visible to users on the wallet and is not shared publicly. + required: + - intentType + WalletShare1: + type: object + properties: + id: + $ref: '#/components/schemas/Id' + coin: + $ref: '#/components/schemas/Coin' + wallet: + $ref: '#/components/schemas/Id' + walletLabel: + $ref: '#/components/schemas/WalletLabel' + fromUser: + $ref: '#/components/schemas/Id' + toUser: + $ref: '#/components/schemas/Coin' + permission: + type: string + description: | + Comma-separated list of privileges for a wallet. Includes: + + - 'admin' - Can manage wallet policies and users and approve or reject pending approvals. + - 'freeze' - Can freeze a wallet, disabling all withdrawals. + - 'spend' - Can initiate withdrawals and generate new receive addresses. + - 'trade' - Can initiate trades from a Go Account ('trading' wallet type). + - 'view' - Can view balances and transactions. + + Permissions don't overlap. Required parameter if 'reshare' is false. + enum: + - admin + - spend + - trade + - view + example: spend,view + message: + type: string + description: User readable message to display to the share recipient + state: + $ref: '#/components/schemas/WalletShareState1' + enterprise: + $ref: '#/components/schemas/Id' + pendingApprovalId: + allOf: + - $ref: '#/components/schemas/Id' + description: Only set if this wallet share is currently pending approval + keychain: + description: Only set if this wallet share has an associated keychain + type: object + properties: + pub: + description: Sharing user's root public key + type: string + encryptedPrv: + description: Sharing user's private key encrypted under their wallet passphrase + type: string + fromPubKey: + description: Sharing user's derived public key which will be used to calculate the wallet sharing secret. + type: string + toPubKey: + description: Shared-to user's derived public key which will be used to calculate the wallet sharing secret. + type: string + path: + description: BIP32 HD path of the derived public keys (fromPubKey and toPubKey) + example: m/1234/1/1 + type: string + required: + - id + - coin + - wallet + - walletLabel + - fromUser + - toUser + - permissions + - message + - state + - enterprise + WalletShareKeychain: + type: object + description: Key passed to the receiving user, included if the wallet was shared with spend permission + properties: + pub: + description: One of wallet pub (onchain), commonPub (BLS) or commonKeychain (MPC) + type: string + encryptedPrv: + description: Private key of the user sharing the wallet encrypted under their wallet passphrase + type: string + fromPubKey: + description: Derived public key of the user sharing the wallet + type: string + toPubKey: + description: Derived public key of the user receiving the share + type: string + path: + description: BIP32 HD path of the derived public keys (fromPubKey and toPubKey) + example: m/1234/1/1 + type: string + WalletShareState1: + type: string + example: active + enum: + - pendingapproval + - active + - accepted + - canceled + - rejected + WalletSpending: + type: object + properties: + velocityLimitSpending: + type: array + items: + type: object + properties: + coin: + allOf: + - $ref: '#/components/schemas/Coin' + - example: btc + timeWindow: + allOf: + - $ref: '#/components/schemas/IntegerString' + - example: '3600' + description: | + String representation of the time window in seconds (ex: 0 = per transaction, 3600 = hourly, + 86400 = daily). + limitAmountString: + allOf: + - $ref: '#/components/schemas/IntegerString' + - example: '1000000' + description: | + String representation of the spending limit in base units. + amountSpentString: + allOf: + - $ref: '#/components/schemas/IntegerString' + - example: '148310' + description: | + String representation of the current amount spent in base units. Guaranteed to not lose + precision. + WalletUnspents: + type: object + properties: + coin: + $ref: '#/components/schemas/Coin' + unspents: + type: array + items: + $ref: '#/components/schemas/Unspent' + WalletsResponse: + type: object + properties: + wallets: + type: array + items: + $ref: '#/components/schemas/Wallet1' + nextBatchPrevId: + $ref: '#/components/schemas/NextBatchPrevId' + totalCount: + type: integer + required: + - wallets + WalletsWithCoinResponse: + allOf: + - $ref: '#/components/schemas/WalletsResponse' + - type: object + properties: + coin: + $ref: '#/components/schemas/Coin' + required: + - coin + Webhook1: + type: object + properties: + id: + $ref: '#/components/schemas/Id' + label: + type: string + example: Test Webhook + created: + $ref: '#/components/schemas/DateTime' + coin: + $ref: '#/components/schemas/Coin' + type: + $ref: '#/components/schemas/WebhookTypeWallet' + url: + type: string + format: uri + example: https://your.server.com/webhook + version: + type: integer + example: 2 + description: 2 for coins running on API v2. + numConfirmations: + type: integer + example: 6 + state: + type: string + description: If 'active', indicates the webhook can trigger and send to the URL. If 'suspended', indicates the webhook can't trigger. + enum: + - active + - suspended + example: active + lastAttempt: + $ref: '#/components/schemas/DateTime' + failingSince: + $ref: '#/components/schemas/DateTime' + successiveFailedAttempts: + type: integer + example: 0 + walletId: + type: string + allowBlockedHosts: + type: boolean + allToken: + type: boolean + txRequestStates: + type: array + items: + $ref: '#/components/schemas/TransactionRequestState1' + description: If present, only transaction request state changes from the list will trigger notifications. If not present, all transaction request state changes will trigger notifications. + txRequestTransactionStates: + type: array + items: + $ref: '#/components/schemas/TransactionState1' + description: If present, only transaction request transaction state changes from the list will trigger notifications. If not present, all transaction request transaction state changes will trigger notifications. + identityStatus: + type: array + items: + $ref: '#/components/schemas/IdentityStatus' + description: If present, only identity status changes from the list will trigger notifications. If not present, all identity status changes will trigger notifications. + userKycState: + type: array + items: + $ref: '#/components/schemas/VerifiedKycState' + description: If present, only user kyc state changes from the list will trigger notifications. If not present, all kyc state changes will trigger notifications. + enterpriseKycState: + type: array + items: + $ref: '#/components/schemas/VerifiedKycState' + description: 'If present, only enterprise kyc state changes from the list will trigger notifications. If not present, all kyc state changes will trigger notifications. ' + required: + - url + WebhookNotification: + type: object + properties: + id: + $ref: '#/components/schemas/Id' + coin: + $ref: '#/components/schemas/Coin' + type: + $ref: '#/components/schemas/WebhookTypeWallet' + walletType: + type: string + example: cold + transferType: + type: string + example: receive + value: + type: integer + example: 1055354 + valueString: + type: string + example: 1055354 + baseValue: + type: integer + example: 1055354 + baseValueString: + type: string + example: 1055354 + feeString: + type: string + example: 71854 + initiator: + type: array + items: + type: string + example: external + receiver: + type: string + example: tb1q3tzuxef7qc0sl8jq6vh3hpeq0w7swmq9a7eh4p + version: + type: integer + example: 2 + state: + type: string + description: If 'failed', webhook notification failed to connect with the target URL. If 'new', webhook notification was newly generated, in response to an event. If 'pending', webhook notification is awaiting processing by the webhook worker. If 'processed', webhook notification successfully sent to target URL. If 'unconfirmed', webhook notification is awaiting confirmation on the blockchain. + enum: + - failed + - new + - pending + - processed + - unconfirmed + example: new + WebhookTypeBlock: + type: string + enum: + - block + - wallet_confirmation + example: block + XlmFeeInfo: + title: XLM + type: object + description: feeInfo (XLM) + properties: + height: + type: integer + description: Height of the ledger that provided the values + example: 123456 + xlmBaseFee: + type: string + description: Base network fee per transaction operation + example: '100' + xlmBaseReserve: + type: string + description: Base reserve used to calculate the minimum balance required by the network + example: '5000000' + XlmTxInfo: + title: XLM + type: object + description: txInfo (XLM) + properties: + fee: + type: integer + description: Network fee + example: 100 + operations: + type: array + items: + type: object + properties: + amount: + type: string + description: Amount in Lumens as string + example: '10.5' + asset: + type: object + properties: + code: + type: string + example: XLM + destination: + type: string + example: GCNFRU774FPHLV3HAB6CR54XJYFYITOLU6KS2J5BNCLDPYN7I3DOMIPY + type: + type: string + enum: + - payment + - createAccount + example: payment + sequence: + type: string + example: '35995558267060226' + source: + type: string + example: GBSGOXQNPULNPBX7XTHXP2GDBOZMHPIZOOA7CQXYTLHYKF5J2JDCF7LT + InscriptionId: + type: string + description: The ID of the inscription in the form i + example: 003f688cc349f1fca8ac5ffa21671ca911b6ef351085c60733ed8c2ebf162cb8i2 + pattern: ^[\da-f]{64}i[\d]+$ + Actions: + type: object + description: | + Wrapper object for a list of Actions. Not paginated. + required: + - actions + properties: + actions: + type: array + items: + anyOf: + - $ref: '#/components/schemas/AlwaysDenyAction' + - $ref: '#/components/schemas/WalletAdminAction' + - $ref: '#/components/schemas/FinalApprovalAction' + - $ref: '#/components/schemas/EnterpriseAdminAction' + - $ref: '#/components/schemas/EnterpriseUserAction' + TransferAmountCondition: + title: Amount + type: object + description: Enables policy rules to trigger based on withdrawal amount. The amount is by asset, such as BTC or USD. + required: + - name + - label + - description + - status + - parameters + properties: + name: + type: string + description: The name of the condition. + enum: + - transfer.amount + example: transfer.amount + label: + type: string + description: A label for the condition which can be shown to an end user. + example: Spending limit + description: + type: string + description: A description for the condition which can be shown to an end user. + example: Allows creating a condition based on the Spending limit + status: + type: string + description: | + Status of the condition. Indicates if the condition is usable 'ACTIVE' or not 'INACTIVE'. + + * 'ACTIVE' - The condition is available for use. + * 'INACTIVE' - The condition is NOT available for use. + enum: + - ACTIVE + - INACTIVE + example: ACTIVE + parameters: + type: array + description: A list of Parameters to control how the condition behaves. + items: + anyOf: + - $ref: '#/components/schemas/OperatorConditionParameter' + - $ref: '#/components/schemas/AmountConditionParameter' + - $ref: '#/components/schemas/CoinConditionParameter' + OperatorConditionParameter: + title: Operator + type: object + description: The boolean operator used when comparing the transfer amount with the limit defined in this condition. + required: + - name + - label + - description + - type + - required + - allowMultiple + - values + properties: + name: + type: string + description: The name of the condition parameter. + enum: + - operator + example: operator + label: + type: string + description: A label for the condition parameter that you can display to users. + example: Comparison Operator + description: + type: string + description: A description for the condition parameter which can be shown to an end user. + example: The comparison operator to use when comparing the transfer amount with the given amount + type: + type: string + description: Accepts only enumerated values as listed in the 'values' property of this condition. + enum: + - ENUMERATED + example: ENUMERATED + required: + type: string + description: A value must always be provided, i.e. the parameter is required. + enum: + - ALWAYS + example: ALWAYS + allowMultiple: + type: boolean + description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. + example: 'false' + values: + $ref: '#/components/schemas/ValidValues' + ValidValues: + type: array + description: A list of valid values, only values from this list will be accepted. + items: + anyOf: + - $ref: '#/components/schemas/GreaterThanValue' + - $ref: '#/components/schemas/GreaterThanOrEqualToValue' + - $ref: '#/components/schemas/LessThanValue' + - $ref: '#/components/schemas/LessThanOrEqualToValue' + GreaterThanValue: + title: Greater than + type: object + description: The greater than (>) operator. required: - value - label @@ -42477,20 +42770,20 @@ components: value: type: string enum: - - custodialPaired + - '>' description: The actual value. label: type: string description: A label for the condition parameter Value which can be shown to an end user. - example: Custodial Paired Wallet + example: Greater than description: type: string description: A description for the condition parameter Value which can be shown to an end user. - example: A custodial paired wallet - BackingValue: - title: Backing hot wallet + example: The transfer amount must be greater than the given limit for the condition to trigger + GreaterThanOrEqualToValue: + title: Greater than or equal to type: object - description: Backing hot wallet. + description: The greater than or equal to (>=) operator. required: - value - label @@ -42499,417 +42792,529 @@ components: value: type: string enum: - - backing + - '>=' description: The actual value. label: type: string description: A label for the condition parameter Value which can be shown to an end user. - example: Backing Wallet + example: Greater than or equal to description: type: string description: A description for the condition parameter Value which can be shown to an end user. - example: A backing wallet - Conditions: + example: The transfer amount must be greater than or equal to the given limit for the condition to trigger + LessThanValue: + title: Less than type: object - description: | - Wrapper object for a list of Conditions. Not paginated. + description: The less than (>) operator. + required: + - value + - label + - description properties: - conditions: - type: array - items: - anyOf: - - $ref: '#/components/schemas/TransferDestinationTypeCondition' - - $ref: '#/components/schemas/TransferVelocityLimitCondition' - - $ref: '#/components/schemas/TransferAmountCondition' - - $ref: '#/components/schemas/TransferInitiatorsCondition' - - $ref: '#/components/schemas/TransferWebhookCondition' - PolicyRuleVersions: + value: + type: string + enum: + - < + description: The actual value. + label: + type: string + description: A label for the condition parameter Value which can be shown to an end user. + example: Less than + description: + type: string + description: A description for the condition parameter Value which can be shown to an end user. + example: The transfer amount must be less than the given limit for the condition to trigger + LessThanOrEqualToValue: + title: Less than or equal to type: object - description: | - description: All versions of a policy rule. Not paginated. + description: The less than or equal to (<=) operator. required: - - versions + - value + - label + - description properties: - versions: - type: array - description: | - List of policy rule versions. The list is sorted by version number in descending order, but rules with a - null version, such as those in pending approval or denied, appear first. - items: - $ref: '#/components/schemas/PolicyRule2' - CreatePolicyRuleRequest: + value: + type: string + enum: + - <= + description: The actual value. + label: + type: string + description: A label for the condition parameter Value which can be shown to an end user. + example: Less than or equal to + description: + type: string + description: A description for the condition parameter Value which can be shown to an end user. + example: The transfer amount must be less than or equal to the given limit for the condition to trigger + AmountConditionParameter: + title: Amount type: object - description: Create or Update policy rule Request. + description: The amount incoming transfers will be compared with. required: - name - - adminOnly - - clauses - - filteringConditions + - label + - description + - type + - required + - allowMultiple properties: name: type: string - maxLength: 256 - description: Human readable name of the rule. - example: Get approval if transferring more than 2 BTC in a minute - adminOnly: - type: boolean - description: true, if the policy rule is a BitGo internal rule, false otherwise. - example: false - clauses: - type: array - description: | - List of policy rule Clauses: a combination of Conditions and Actions. - items: - type: object - description: | - A combination of Conditions and Actions. - required: - - conditions - - actions - properties: - conditions: - type: array - items: - anyOf: - - $ref: '#/components/schemas/TransferAmountConditionRequest' - - $ref: '#/components/schemas/TransferVelocityLimitConditionRequest' - - $ref: '#/components/schemas/TransferDestinationTypeConditionRequest' - - $ref: '#/components/schemas/TransferInitiatorsConditionRequest' - - $ref: '#/components/schemas/TransferWebhookConditionRequest' - actions: - type: array - items: - anyOf: - - $ref: '#/components/schemas/AlwaysDenyActionRequest' - - $ref: '#/components/schemas/WalletAdminActionRequest' - - $ref: '#/components/schemas/FinalApprovalActionRequest' - - $ref: '#/components/schemas/EnterpriseUsersActionRequest' - filteringConditions: - type: array - description: List of Filtering Conditions that must trigger for the policy rule to be Evaluated. - items: - anyOf: - - $ref: '#/components/schemas/WalletIdsFilteringCondition' - - $ref: '#/components/schemas/WalletTypeFilteringCondition' - - $ref: '#/components/schemas/WalletAllFilteringCondition' - lockType: + description: The name of the condition parameter. + enum: + - amount + example: amount + label: type: string - description: | - Indicates how the policy rule is locked. - - * 'LOCK_AFTER_DATE' - Will lock after the lockDate set on the policy rule. - * 'PERMANENT' - Is permanently locked. + description: A description for the condition parameter which can be shown to an end user. + example: The amount to compare to + description: + type: string + description: A description for the condition parameter which can be shown to an end user. + example: The transfer amount will be compared with this limit + type: + type: string + description: The type of acceptable values for this condition parameter. enum: - - LOCK_AFTER_DATE - - PERMANENT - example: PERMANENT - lockDate: + - NON_NEGATIVE_NUMBER + example: NON_NEGATIVE_NUMBER + required: type: string - description: | - The date after which the policy rule will be locked. Only applicable if the policy rule is locked with - 'LOCK_AFTER_DATE'. - format: date-time - example: '2023-11-13T14:49:48.830522Z' - AllWalletsScope: + description: A value must always be provided, i.e. the parameter is required. + enum: + - ALWAYS + example: ALWAYS + allowMultiple: + type: boolean + description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. + example: 'false' + CoinConditionParameter: + title: Coin type: object - description: | - A policy rule scope. For example the All Wallets scope. + description: The asset the amount is expressed in. required: - - id - name - label - description - - conditions + - type + - required + - allowMultiple properties: - id: + name: type: string - description: Unique id of the scope. A UUID. - example: 306258df-dcab-489e-a9fe-ff28ce9fa312 + description: The name of the condition parameter. + enum: + - coin + example: coin + label: + type: string + description: A description for the condition parameter which can be shown to an end user. + example: Currency + description: + type: string + description: A description for the condition parameter which can be shown to an end user. + example: This condition only applies to transfers of this currency (USD applies to all transfers) + type: + type: string + description: The type of acceptable values for this condition parameter. + enum: + - COIN_OR_USD + example: COIN_OR_USD + required: + type: string + description: A value must always be provided, i.e. the parameter is required. + enum: + - ALWAYS + example: ALWAYS + allowMultiple: + type: boolean + description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. + example: 'false' + TransferVelocityLimitCondition: + title: Velocity limit + type: object + description: Enables policy rules to trigger based on how much withdraws over a period of time from a specific wallet or from all wallets. The amount is by asset, such as BTC or USD. + required: + - name + - label + - description + - status + - parameters + properties: name: type: string - description: Name of the scope. + description: The name of the condition. enum: - - wallet.segregated - example: wallet.segregated + - transfer.velocity.limit + example: transfer.velocity.limit label: type: string - description: A label for the scope which can be shown to an end user. - example: Wallet + description: A label for the condition which can be shown to an end user. + example: Spending Limit description: type: string - description: A description for the scope which can be shown to an end user. - example: A BitGo Wallet - conditions: + description: A description for the condition which can be shown to an end user. + example: Allows creating a condition based on the amount of coin or USD that can be spent over a period of time + status: + type: string + description: | + Status of the condition. Indicates if the condition is usable 'ACTIVE' or not 'INACTIVE'. + + * 'ACTIVE' - The condition is available for use. + * 'INACTIVE' - The condition is NOT available for use. + enum: + - ACTIVE + - INACTIVE + example: ACTIVE + parameters: type: array - description: A list of Filtering Conditions the scope supports. For example the Wallet Type Filtering condition. + description: A list of Parameters to control how the condition behaves. items: anyOf: - - $ref: '#/components/schemas/WalletTypeCondition' - - $ref: '#/components/schemas/WalletIdsCondition' - - $ref: '#/components/schemas/WalletAllCondition' - scopes: + - $ref: '#/components/schemas/VelocityAmountConditionParameter' + - $ref: '#/components/schemas/TimeWindowConditionParameter' + - $ref: '#/components/schemas/VelocityCoinConditionParameter' + - $ref: '#/components/schemas/ScopeConditionParameter' + VelocityAmountConditionParameter: + title: Amount type: object - description: Wrapper object for a list of scopes. Not paginated. + description: The withdrawable amount within the time window. + required: + - name + - label + - description + - type + - required + - allowMultiple properties: - scopes: - description: A list of scopes available on your Enterprise. - type: array - items: - $ref: '#/components/schemas/AllWalletsScope' - Touchpoint: + name: + type: string + description: The name of the condition parameter. + enum: + - amount + example: amount + label: + type: string + description: A description for the condition parameter which can be shown to an end user. + example: Amount + description: + type: string + description: A description for the condition parameter which can be shown to an end user. + example: The amount that can be spent within the time window + type: + type: string + description: The type of acceptable values for this condition parameter. + enum: + - NON_NEGATIVE_NUMBER + example: NON_NEGATIVE_NUMBER + required: + type: string + description: A value must always be provided, i.e. the parameter is required. + enum: + - ALWAYS + example: ALWAYS + allowMultiple: + type: boolean + description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. + example: 'false' + TimeWindowConditionParameter: + title: Time window type: object - description: A Touchpoint. For example the Transfer from a Wallet Touchpoint. + description: The period of time this condition covers, in seconds. required: - - id - name - - status - label - description - - adminOnly + - type + - required + - allowMultiple properties: - id: + name: type: string - description: Id of the Touchpoint. A UUID. - example: 306258df-dcab-489e-a9fe-ff28ce9fa312 + description: The name of the condition parameter. + enum: + - timeWindow + example: timeWindow + label: + type: string + description: A description for the condition parameter which can be shown to an end user. + example: time window + description: + type: string + description: A description for the condition parameter which can be shown to an end user. + example: The period of time this condition covers, in seconds + type: + type: string + description: The type of acceptable values for this condition parameter. + enum: + - NON_NEGATIVE_NUMBER + example: NON_NEGATIVE_NUMBER + required: + type: string + description: A value must always be provided, i.e. the parameter is required. + enum: + - ALWAYS + example: ALWAYS + allowMultiple: + type: boolean + description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. + example: 'false' + VelocityCoinConditionParameter: + title: Unit + type: object + description: The unit of currency the amount is denoted in, can be a cryptocurrency or a fiat currency. + required: + - name + - label + - description + - type + - required + - allowMultiple + properties: name: type: string - description: Name of the Touchpoint. + description: The name of the condition parameter. enum: - - wallet.segregated.transfer - - policies.management.edit - example: wallet.segregated.transfer + - coin + example: coin label: type: string - description: A label for the Touchpoint which can be shown to an end user. - example: Transfer from a Segregated Wallet + description: A description for the condition parameter which can be shown to an end user. + example: Unit description: type: string - description: A description for the Touchpoint which can be shown to an end user. - example: When transferring from a BitGo Segregated Wallet - status: + description: A description for the condition parameter which can be shown to an end user. + example: The unit the amount is denoted in, can be a coin or a fiat currency + type: type: string - description: | - Status of the Touchpoint. Indicates if the Touchpoint is usable 'ACTIVE' or not 'INACTIVE'. - - * 'ACTIVE' - The Touchpoint is available for use. - * 'INACTIVE' - The Touchpoint is NOT available for use. + description: The type of acceptable values for this condition parameter. enum: - - ACTIVE - - INACTIVE - example: ACTIVE - adminOnly: + - COIN_OR_USD + example: COIN_OR_USD + required: + type: string + description: A value must always be provided, i.e. the parameter is required. + enum: + - ALWAYS + example: ALWAYS + allowMultiple: type: boolean - description: true, if this is an internal Touchpoint, false otherwise. - example: false - TouchpointsResults: - description: A paginated list of Touchpoints - allOf: - - type: object - properties: - touchpoints: - type: array - items: - $ref: '#/components/schemas/Touchpoint' - - $ref: '#/components/schemas/PaginatedResults' - GeneralError: + description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. + example: 'false' + ScopeConditionParameter: + title: Scope + type: object + description: Defines the entities included in the velocity calculation. + required: + - name + - label + - description + - type + - required + - allowMultiple + - values + properties: + name: + type: string + description: The name of the condition parameter. + enum: + - scope + example: scope + label: + type: string + description: A description for the condition parameter which can be shown to an end user. + example: scope + description: + type: string + description: A description for the condition parameter which can be shown to an end user. + example: Entities that will be included in the velocity calculation + type: + type: string + description: Accepts only enumerated values as listed in the 'values' property of this condition. + enum: + - ENUMERATED + example: ENUMERATED + required: + type: string + description: A value must always be provided, i.e. the parameter is required. + enum: + - ALWAYS + example: ALWAYS + allowMultiple: + type: boolean + description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. + example: 'false' + values: + type: array + description: A list of valid values, only values from this list will be accepted. + items: + anyOf: + - $ref: '#/components/schemas/WalletValue' + - $ref: '#/components/schemas/EnterpriseValue' + WalletValue: + title: Wallet + type: object + description: Applies to a specific wallet. + required: + - value + - label + - description + properties: + value: + type: string + enum: + - wallet + description: The actual value. + label: + type: string + description: A label for the condition parameter Value which can be shown to an end user. + example: Wallet + description: + type: string + description: A description for the condition parameter Value which can be shown to an end user. + example: Only spending from the transferring wallet will be included + EnterpriseValue: + title: Enterprise type: object + description: Applies to the entire enterprise. + required: + - value + - label + - description properties: - code: + value: type: string - message: + enum: + - enterprise + description: The actual value. + label: type: string - status: - type: integer - ValidationError: - allOf: - - $ref: '#/components/schemas/GeneralError' - - type: object - properties: - failedValidations: - type: object - AlwaysDenyAction: - title: Automatically reject + description: A label for the condition parameter Value which can be shown to an end user. + example: Enterprise + description: + type: string + description: A description for the condition parameter Value which can be shown to an end user. + example: Spending from the entire transferring wallet's enterprise will be included + TransferInitiatorsCondition: + title: Initiator type: object - description: Automatically denies a transfer. + description: Enables you to create a condition based on transaction initiator. required: - name - label - description - status - - adminOnly + - parameters properties: name: type: string - description: The name of the action. + description: The name of the condition. enum: - - approvals.always.deny - example: approvals.always.deny + - transfer.initiators + example: transfer.initiators label: type: string - description: A label for the action which can be shown to an end user. - example: Deny + description: A label for the condition which can be shown to an end user. + example: Transfer Initiators description: type: string - description: A description for the action which can be shown to an end user. - example: Automatically reject + description: A description for the condition which can be shown to an end user. + example: Enables creating a condition based on if the transfer initiator is a listed user. status: type: string - description: | - Status of the action. Indicates if the Actions is usable 'ACTIVE' or not 'INACTIVE'. - - * 'ACTIVE' - The action is available for use. - * 'INACTIVE' - The action is NOT available for use. + description: Identifies if the condition is currently active and usable. enum: - ACTIVE - INACTIVE example: ACTIVE - adminOnly: - type: boolean - description: true, if this is an internal action, false otherwise. - example: false - AlwaysDenyActionRequest: - title: Automatically reject - type: object - description: Automatically reject. - required: - - name - properties: - name: - type: string - description: Name of the associated Action. - enum: - - approvals.always.deny - example: approvals.always.deny - Clause: - type: object - description: | - A combination of Conditions and Actions. - properties: - actions: - type: array - items: - anyOf: - - $ref: '#/components/schemas/AlwaysDenyActionRequest' - - $ref: '#/components/schemas/EnterpriseAdminActionRequest' - - $ref: '#/components/schemas/WalletAdminActionRequest' - - $ref: '#/components/schemas/FinalApprovalActionRequest' - - $ref: '#/components/schemas/EnterpriseUsersActionRequest' - conditions: + parameters: type: array + description: A list of parameters that control how the condition behaves. items: anyOf: - - $ref: '#/components/schemas/TransferAmountConditionRequest' - - $ref: '#/components/schemas/TransferVelocityLimitConditionRequest' - - $ref: '#/components/schemas/TransferDestinationTypeConditionRequest' - - $ref: '#/components/schemas/TransferInitiatorsConditionRequest' - EnterpriseAdminAction: - title: Require enterprise-admin approval + - $ref: '#/components/schemas/TransferInitiatorsUserIdsConditionParameter' + TransferInitiatorsUserIdsConditionParameter: type: object - description: Requires approval from an enterprise admin. + description: The list of user ids the transfer initiator condition will checker against for triggering. required: - name - label - description - - status - - adminOnly + - type + - required + - allowMultiple properties: name: type: string - description: The name of the action. + description: The name of the condition parameter. enum: - - approvals.customer.enterpriseAdmin - example: approvals.customer.enterpriseAdmin + - userIds + example: userIds label: type: string - description: A label for the action which can be shown to an end user. - example: Enterprise Admin + description: A description for the condition parameter which can be shown to an end user. + example: User Ids description: type: string - description: A description for the action which can be shown to an end user. - example: Enterprise admin approval - status: + description: A description for the condition parameter which can be shown to an end user. + example: The list of user ids to check the transfer initiator against. + type: type: string - description: | - Status of the action. Indicates if the Actions is usable 'ACTIVE' or not 'INACTIVE'. - - * 'ACTIVE' - The action is available for use. - * 'INACTIVE' - The action is NOT available for use. + description: The type of acceptable values for this condition parameter, a valid HMAC BitGo ID. enum: - - ACTIVE - - INACTIVE - example: ACTIVE - adminOnly: - type: boolean - description: true, if this is an internal action, false otherwise. - example: false - EnterpriseAdminActionRequest: - title: Require enterprise-admin approval - type: object - description: Require enterprise-admin approval. - required: - - name - properties: - name: + - BITGO_USER_ID + example: BITGO_USER_ID + required: type: string - description: Name of the associated Action. + description: ALWAYS if the parameter is required otherwise OPTIONAL. enum: - - approvals.customer.enterpriseAdmin - example: approvals.customer.enterpriseAdmin - operator: - $ref: '#/components/schemas/OperatorType' - EnterpriseUserAction: - title: Require approval from a set of enterprise users + - ALWAYS + example: ALWAYS + allowMultiple: + type: boolean + description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. + example: 'true' + TransferWebhookCondition: type: object - description: Requires approval from a set of enterprise users. + description: Enables you to create a condition based on if the transfer should send a payload to a webhook URL and receive a status code. required: - name - label - description - status - - adminOnly - parameters properties: name: type: string - description: The name of the action. + description: The name of the condition. enum: - - approvals.customer.enterpriseUser - example: approvals.customer.enterpriseUser + - transfer.webhook + example: transfer.webhook label: type: string - description: A label for the action which can be shown to an end user. - example: Require approval from a set of users + description: A label for the condition that you can display to an end user. + example: Transfer Webhook description: type: string - description: A description for the action which can be shown to an end user. - example: Enterprise users approval + description: A description for the Condition which can be shown to an end user. + example: Enables creating a condition based on if the transfer should send a payload to a webhook URL and receive a status code. status: type: string - description: | - Status of the action. Indicates if the Actions is usable 'ACTIVE' or not 'INACTIVE'. - - * 'ACTIVE' - The action is available for use. - * 'INACTIVE' - The action is NOT available for use. + description: Identifies if the condition is currently active and usable. enum: - ACTIVE - INACTIVE example: ACTIVE - adminOnly: - type: boolean - description: true, if this is an internal action, false otherwise. - example: false parameters: type: array - description: A list of Parameters to control how the action behaves. + description: A list of parameters that control how the condition behaves. items: anyOf: - - $ref: '#/components/schemas/EnterpriseUserIdsActionParameter' - - $ref: '#/components/schemas/MinRequireActionParameter' - - $ref: '#/components/schemas/InitiatorIsAllowedToApproveActionParameter' - EnterpriseUserIdsActionParameter: - title: Approvers user ids + - $ref: '#/components/schemas/TransferWebhookUrlConditionParameter' + - $ref: '#/components/schemas/TransferWebhookCoinConditionParameter' + TransferWebhookUrlConditionParameter: type: object - description: The set of enterprise users approvers. + description: The webhook URL the transfer sends a payload to. required: - name - label @@ -42920,161 +43325,172 @@ components: properties: name: type: string - description: The name of the action parameter. + description: The name of the condition parameter. enum: - - userIds - example: userIds + - webhookUrl + example: webhookUrl label: type: string - description: A label for the action parameter which can be shown to an end user. - example: Users + description: A description for the condition parameter that you can display to an end user. + example: Webhook URL description: type: string - description: A description for the action parameter which can be shown to an end user. - example: List of enterprise users for approval + description: The webhook URL to post the transfer payload to. + example: The webhook URL to post the transfer payload to type: type: string - description: The type of acceptable values for this action parameter. + description: The type of acceptable values for this condition parameter. Must be a valid webhook URL string. enum: - - BITGO_USER_ID - example: BITGO_USER_ID + - FREE_FORM + example: FREE_FORM required: type: string - description: A value must be always provided for exactly one or more of the action Parameters with a 'required' value of 'ONE_OR_MORE'. In other words, all the action Parameters with a 'required' of 'ONE_OR_MORE' form a group, and a value must be provided for one or more of the action Parameters in the group. + description: ALWAYS if the parameter is required otherwise OPTIONAL. enum: - - ONE_OR_MORE - example: ONE_OR_MORE + - ALWAYS + example: ALWAYS allowMultiple: type: boolean description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. - example: true - EnterpriseUsersActionRequest: - title: Require approval from a set of enterprise users + example: 'false' + TransferWebhookCoinConditionParameter: type: object - description: Require approval from a set of enterprise users. + description: The asset to check the transfer against to determine if a webhook payload should be sent. required: - name - - parameters + - label + - description + - type + - required + - allowMultiple properties: name: type: string - description: Name of the associated Action. + description: The name of the condition parameter. enum: - - approvals.customer.enterpriseUser - example: approvals.customer.enterpriseUser - parameters: - type: object - description: Required data needed to configure the Action. - required: - - userIds - - minRequired - properties: - userIds: - type: array - items: - type: string - example: 63cf101298470200073bbae71add80d5 - description: List of enterprise users for approval - example: - - 63cf101298470200073bbae71add80d5 - minRequired: - type: number - description: Minimum required number of approvers - example: 1 - initiatorIsAllowedToApprove: - type: boolean - description: Whether the initiator is allowed to approve this action. false by default. - example: false - default: false - operator: - $ref: '#/components/schemas/OperatorType' - FinalApprovalAction: - title: Require final approval from wallet users + - coin + example: coin + label: + type: string + description: A description for the condition parameter that you can display to an end user. + example: Asset + description: + type: string + description: The asset this condition applies to. + example: The asset this condition applies to + type: + type: string + description: The type of acceptable values for this condition parameter. Must be a valid coin ticker string. + enum: + - COIN + example: COIN + required: + type: string + description: ALWAYS if the parameter is required otherwise OPTIONAL. + enum: + - OPTIONAL + example: OPTIONAL + allowMultiple: + type: boolean + description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. + example: 'false' + TransferDestinationTypeCondition: + title: Destination type: object - description: Requires final approval from wallet users after wallet-admin approval. Final approvers don't have to be wallet admins. + description: Enables policy rules to trigger based on destination. required: - name - label - description - status - - adminOnly - parameters properties: name: type: string - description: The name of the action. + description: The name of the condition. enum: - - approvals.customer.finalApproval - example: approvals.customer.finalApproval + - transfer.destination.type + example: transfer.destination.type label: type: string - description: A label for the action which can be shown to an end user. - example: Require final approval from wallet users + description: A label for the condition that you can display to users. + example: Destination description: type: string - description: A description for the action which can be shown to an end user. - example: Require final approval from wallet users + description: A description for the condition that you can display to an end user. + example: Allows creating a condition based on the type of the funds destination status: type: string description: | - Status of the action. Indicates if the Actions is usable 'ACTIVE' or not 'INACTIVE'. + Status of the condition. Indicates if the condition is usable 'ACTIVE' or not 'INACTIVE'. - * 'ACTIVE' - The action is available for use. - * 'INACTIVE' - The action is NOT available for use. + * 'ACTIVE' - The condition is available for use. + * 'INACTIVE' - The condition is NOT available for use. enum: - ACTIVE - INACTIVE example: ACTIVE - adminOnly: - type: boolean - description: true, if this is an internal action, false otherwise. - example: false parameters: type: array - description: A list of Parameters to control how the action behaves. + description: A list of Parameters to control how the condition behaves. items: anyOf: - - $ref: '#/components/schemas/FinalApproversUserIdsActionParameter' - - $ref: '#/components/schemas/InitiatorIsAllowedToApproveActionParameter' - FinalApprovalActionRequest: - title: Require final approval from wallet users + - $ref: '#/components/schemas/DestinationTypeTypeConditionParameter' + - $ref: '#/components/schemas/DestinationTypeCoinConditionParameter' + DestinationTypeTypeConditionParameter: + title: Destination type: object - description: Require final approval from wallet users. + description: The type of destination this condition will match. required: - name - - parameters + - label + - description + - type + - required + - allowMultiple + - values properties: name: type: string - description: Name of the associated Action. + description: The name of the condition parameter. enum: - - approvals.customer.finalApproval - example: approvals.customer.finalApproval - parameters: - type: object - description: Required data needed to configure the Action. - required: - - userIds - properties: - userIds: - type: array - items: - type: string - example: 63cf101298470200073bbae71add80d5 - description: The final approvers - example: - - 63cf101298470200073bbae71add80d5 - initiatorIsAllowedToApprove: - type: boolean - description: Whether the initiator is allowed to approve this action. true by default. - example: true - default: true - operator: - $ref: '#/components/schemas/OperatorType' - FinalApproversUserIdsActionParameter: - title: Final approvers user ids + - type + example: type + label: + type: string + description: A description for the condition parameter which can be shown to an end user. + example: Type + description: + type: string + description: A description for the condition parameter which can be shown to an end user. + example: The type of destination this condition will match + type: + type: string + description: Accepts only enumerated values as listed in the 'values' property of this condition. + enum: + - ENUMERATED + example: ENUMERATED + required: + type: string + description: A value must always be provided, i.e. the parameter is required. + enum: + - ALWAYS + example: ALWAYS + allowMultiple: + type: boolean + description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. + example: 'false' + values: + type: array + description: A list of valid values, only values from this list will be accepted. + items: + anyOf: + - $ref: '#/components/schemas/WhitelistedAddressValue' + - $ref: '#/components/schemas/NonWhitelistedAddressValue' + DestinationTypeCoinConditionParameter: + title: Asset type: object - description: The final approvers. + description: The asset this condition applies to. required: - name - label @@ -43085,80 +43501,172 @@ components: properties: name: type: string - description: The name of the action parameter. + description: The name of the condition parameter. enum: - - userIds - example: userIds + - coin + example: coin label: type: string - description: A label for the action parameter which can be shown to an end user. - example: Users + description: A description for the condition parameter which can be shown to an end user. + example: Asset description: type: string - description: A description for the action parameter which can be shown to an end user. - example: List of users for final approval + description: A description for the condition parameter which can be shown to an end user. + example: The asset this condition applies to. Optional. type: type: string - description: The type of acceptable values for this action parameter. + description: A cryptocurrency asset. enum: - - BITGO_USER_ID - example: BITGO_USER_ID + - COIN + example: COIN required: type: string - description: A value must be always provided for exactly one or more of the action Parameters with a 'required' value of 'ONE_OR_MORE'. In other words, all the action Parameters with a 'required' of 'ONE_OR_MORE' form a group, and a value must be provided for one or more of the action Parameters in the group. + description: A value is not required. + enum: + - OPTIONAL + example: OPTIONAL + allowMultiple: + type: boolean + description: Only one value can be provided. + example: 'false' + WhitelistedAddressValue: + title: Whitelisted + type: object + description: The destination is whitelisted. + required: + - value + - label + - description + properties: + value: + type: string + enum: + - whitelistedAddress + description: The actual value. + label: + type: string + description: A label for the condition parameter Value which can be shown to an end user. + example: Whitelisted address + description: + type: string + description: A description for the condition parameter Value which can be shown to an end user. + example: The destination is whitelisted + NonWhitelistedAddressValue: + title: Not whitelisted + type: object + description: The destination is not whitelisted. + required: + - value + - label + - description + properties: + value: + type: string + enum: + - nonWhitelistedAddress + description: The actual value. + label: + type: string + description: A label for the condition parameter Value which can be shown to an end user. + example: Non-whitelisted address + description: + type: string + description: A description for the condition parameter Value which can be shown to an end user. + example: The destination is not whitelisted + FilteringConditions: + type: object + description: | + Wrapper object for a list of Filtering Conditions. Not paginated. + required: + - conditions + properties: + conditions: + type: array + items: + anyOf: + - $ref: '#/components/schemas/WalletTypeCondition' + - $ref: '#/components/schemas/WalletIdsCondition' + - $ref: '#/components/schemas/WalletAllCondition' + WalletAllCondition: + title: Wallet all + type: object + description: Wallet-all condition for the all-wallets scope. + required: + - name + - label + - description + - status + properties: + name: + type: string + description: The name of the condition. + enum: + - wallet.all + example: wallet.all + label: + type: string + description: A label for the condition which can be shown to an end user. + example: Wallet All + description: + type: string + description: A description for the condition which can be shown to an end user. + example: For all Wallets + status: + type: string + description: | + Status of the condition. Indicates if the condition is usable 'ACTIVE' or not 'INACTIVE'. + + * 'ACTIVE' - The condition is available for use. + * 'INACTIVE' - The condition is NOT available for use. enum: - - ONE_OR_MORE - example: ONE_OR_MORE - allowMultiple: - type: boolean - description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. - example: true - InitiatorIsAllowedToApproveActionParameter: - title: Initiator is allowed to approve + - ACTIVE + - INACTIVE + example: ACTIVE + WalletIdsCondition: + title: Wallet ID type: object - description: Whether the initiator is allowed to approve this action. + description: Wallet ID condition for the all-wallets scope. required: - name - label - description - - type - - required - - allowMultiple + - status + - parameters properties: name: type: string - description: The name of the action parameter. + description: The name of the condition. enum: - - initiatorIsAllowedToApprove - example: initiatorIsAllowedToApprove + - wallet.ids + example: wallet.ids label: type: string - description: A label for the action parameter which can be shown to an end user. - example: Initiator Is Allowed To Approve + description: A label for the condition which can be shown to an end user. + example: Wallet Id description: type: string - description: A description for the action parameter which can be shown to an end user. - example: Whether the initiator is allowed to approve this action - type: - type: string - description: The type of acceptable values for this action parameter. - enum: - - BOOLEAN - example: BOOLEAN - required: + description: A description for the condition which can be shown to an end user. + example: The Wallet Ids + status: type: string - description: A value is not required. + description: | + Status of the condition. Indicates if the condition is usable 'ACTIVE' or not 'INACTIVE'. + + * 'ACTIVE' - The condition is available for use. + * 'INACTIVE' - The condition is NOT available for use. enum: - - OPTIONAL - example: OPTIONAL - allowMultiple: - type: boolean - description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. - example: false - MinRequireActionParameter: - title: Minimum number of approvals required + - ACTIVE + - INACTIVE + example: ACTIVE + parameters: + type: array + description: A list of Parameters to control how the condition behaves. + items: + allOf: + - $ref: '#/components/schemas/WalletIdParameter' + WalletIdParameter: type: object - description: Minimum required number of approvers. + description: The Wallet Id parameter determines on which Wallets this condition will trigger. required: - name - label @@ -43169,4902 +43677,4623 @@ components: properties: name: type: string - description: The name of the action parameter. + description: The name of the condition parameter. enum: - - minRequired - example: minRequired + - walletId + example: walletId label: type: string - description: A label for the action parameter which can be shown to an end user. - example: Approvals Required + description: A description for the condition parameter which can be shown to an end user. + example: Wallet Id description: type: string - description: A description for the action parameter which can be shown to an end user. - example: Minimum required number of approvers + description: A description for the condition parameter which can be shown to an end user. + example: he Wallet Ids type: type: string - description: The type of acceptable values for this action parameter. + description: The type of acceptable values for this condition parameter. enum: - - POSITIVE_NUMBER - example: POSITIVE_NUMBER + - BITGO_WALLET_ID + example: BITGO_WALLET_ID required: type: string - description: A value must always be provided, i.e. the parameter is required. + description: This Conditions parameter must always be provided. enum: - ALWAYS example: ALWAYS allowMultiple: type: boolean description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. - example: false - OperatorType: - type: string - description: Boolean operators that join Conditions, and/or Actions. Must be null on the last Condition or Action, or if there is only one Condition or Action, must be non-null on all others. - enum: - - AND - - OR - example: AND - PaginatedResults: - type: object - description: Common fields of a paginated result. - required: - - page - - totalPages - - totalElements - properties: - page: - type: integer - description: Page number. Page numbers start at 1. - totalPages: - type: integer - description: Total number of pages. Total pages start at 1. - totalElements: - type: integer - description: Total number of elements across all pages. - PaginatedResultsWithNextBatchPrevId: - type: object - description: Common fields of a paginated result paged with a nextBatchPrevId. - required: - - nextBatchPrevId - properties: - nextBatchPrevId: - type: string - description: The value to pass as the prevId to the API for getting the next page. - PolicyRule2: + example: 'true' + WalletTypeCondition: + title: Wallet type type: object - description: | - A Policy Rule, the combination of a Scope, a Touchpoint, Conditions, and Actions. It allows you to define what - needs to happen (Actions) before a user can execute a sensitive operation (Touchpoint) on a Scope (e.g. a Wallet) - depending on the specific details of the operation (Conditions). See Concepts. + description: Wallet-type condition for the all-wallets scope. required: - - id - - uniqueId - name + - label + - description - status - - adminOnly - - touchpointId - - touchpointLabel - - scopeId - - scopeLabel - - clauses - - filteringConditions - - locked - - lockType - - createdBy - - modifiedBy - - createdDate - - modifiedDate + - parameters properties: - id: + name: type: string - description: Id of the Policy Rule. This identifier is not unique in isolation, it must be paired with an specific Policy Rule Version number to uniquely identified a particular version of a Policy Rule. A UUID. - example: 306258df-dcab-489e-a9fe-ff28ce9fa312 - uniqueId: + description: The name of the condition. + enum: + - wallet.type + example: wallet.type + label: type: string - description: The uniqueId of the Policy Rule version. A UUID. - example: cb4e0a0a-2768-4024-904a-178ca6d2cd54 - name: + description: A label for the condition which can be shown to an end user. + example: Wallet Type + description: type: string - description: Human readable name of the rule. - example: My first policy rule + description: A description for the condition which can be shown to an end user. + example: Allows creating a condition based on the Wallet Type status: type: string description: | - Indicates if the Policy Rule is considered in Evaluations. + Status of the condition. Indicates if the condition is usable 'ACTIVE' or not 'INACTIVE'. - * 'ACTIVE' - Will be Evaluated. - * 'INACTIVE' - Will NOT be Evaluated. - * 'DENIED' - The requested policy rule change was Denied. - * 'PENDING_APPROVAL' - This version of the policy rule is Pending Approval before it can be activated. + * 'ACTIVE' - The condition is available for use. + * 'INACTIVE' - The condition is NOT available for use. enum: - ACTIVE - INACTIVE - - DENIED - - PENDING_APPROVAL example: ACTIVE - version: - type: integer - description: The Policy Rule Version, an integer that is incremented each time the Policy Rule changes. - default: 1 - example: 1 - adminOnly: - type: boolean - description: true, if the Policy Rule is a BitGo internal rule. Typically, this allows setting Global Policy Rules across enterprises. - example: false - touchpointId: - type: string - description: The id of the Touchpoint associated with the Policy Rule. A UUID. - example: 0a244ae3-26cf-48ed-9854-edd5b9751f3e - touchpointLabel: - type: string - description: Label of the Touchpoint associated with the Policy Rule. For example the Transfer from a Wallet Touchpoint. - example: Transfer from a Wallet - scopeId: - type: string - description: The id of the Scope associated with the Policy Rule. A UUID. - example: 08a3f714-c330-41e6-bd83-bad3a8d37188 - scopeLabel: - type: string - description: Label of the Scope associated with the Policy Rule. For example the All Wallets Scope. - example: All Wallets - clauses: - type: array - description: | - List of Policy Rule Clauses: a combination of Conditions and Actions. - items: - $ref: '#/components/schemas/Clause' - filteringConditions: + parameters: type: array - description: List of Filtering Conditions that must trigger for this Policy Rule to be Evaluated. + description: A list of Parameters to control how the condition behaves. items: - anyOf: - - $ref: '#/components/schemas/WalletTypeFilteringCondition' - - $ref: '#/components/schemas/WalletIdsFilteringCondition' - - $ref: '#/components/schemas/WalletAllFilteringCondition' - locked: - type: boolean - description: true, if the Policy Rule is locked, false otherwise. - example: false - lockType: - type: string - description: | - Indicates how the Policy Rule is locked. - - * 'LOCK_AFTER_DATE' - Will lock after the lockDate set on the Policy Rule. - * 'PERMANENT' - Is permanently locked. - enum: - - LOCK_AFTER_DATE - - PERMANENT - example: PERMANENT - lockDate: - type: string - description: | - The date after which the Policy Rule will be locked. Only applicable if the Policy Rule is locked with - 'LOCK_AFTER_DATE'. - format: date-time - example: '2023-11-13T14:49:48.830522Z' - enterpriseId: - type: string - description: The id of the Enterprise this Policy Rule belongs to. - example: 5d1a5f2c8f0a9c001a5f2c8f0ad00000 - lastTriggeredDate: - type: string - description: | - The date when the Policy Rule was last triggered. Only applicable if the Policy Rule is locked with - 'LOCK_AFTER_DATE'. - format: date-time - example: '2023-11-13T14:49:48.830522Z' - lastTriggeredEvaluationId: - type: string - description: | - The id of the Evaluation that last triggered the Policy Rule. A UUID. - example: 306258df-dcab-489e-a9fe-ff28ce9fa312 - createdBy: - type: string - description: The id of the user who created the Policy Rule or the string \"BitGo\". - example: 5d1a5f2c8f0a9c001a5f2c8f0ad00000 - modifiedBy: - type: string - description: The id of the user who last modified the Policy Rule or the string \"BitGo\". - example: 5d1a5f2c8f0a9c001a5f2c8f0ad00000 - createdDate: - type: string - description: The date when the Policy Rule was created. A timestamp. - format: date-time - example: '2023-11-13T14:49:48.830522Z' - modifiedDate: - type: string - description: The date when the Policy Rule was last modified. A timestamp. - format: date-time - example: '2023-11-13T14:49:48.830522Z' - lockModifiedBy: - type: string - description: The id of the user who last modified the lock of the Policy Rule. - example: 5d1a5f2c8f0a9c001a5f2c8f0ad00000 - evaluationId: - type: string - description: | - The id of the Evaluation that was done when this Policy Rule version was requested to be created, modified - or deleted. A UUID. - example: 306258df-dcab-489e-a9fe-ff28ce9fa312 - PolicyRulesResults: - description: Paginated list of Policy Rules. - allOf: - - $ref: '#/components/schemas/PaginatedResultsWithNextBatchPrevId' - - type: object - properties: - rules: - type: array - description: | - A list of Policy Rules matching the search criteria. - items: - $ref: '#/components/schemas/PolicyRule2' - TransferAmountConditionParameters: - type: object - description: Data required to evaluate the condition. - required: - - operator - - amount - - coin - properties: - operator: - type: string - enum: - - '>' - - '>=' - - < - - <= - description: The comparison operator to use when comparing the transfer amount with the given limit - example: '>' - amount: - type: string - description: The transfer amount is compared with this limit. - example: '100000000' - coin: - type: string - description: This condition only applies to transfers of this currency (USD applies to all transfers). - example: btc - TransferAmountConditionRequest: - title: Amount + allOf: + - $ref: '#/components/schemas/WalletTypeParameter' + WalletTypeParameter: type: object - description: Transfer-amount condition. + description: The Wallet Type parameter determines on what type of Wallet this condition will trigger. required: - name - - parameters + - label + - description + - type + - required + - allowMultiple + - values properties: name: type: string - description: Name of the condition. + description: The name of the condition parameter. enum: - - transfer.amount - example: transfer.amount - parameters: - $ref: '#/components/schemas/TransferAmountConditionParameters' - operator: - $ref: '#/components/schemas/OperatorType' - TransferDestinationTypeConditionParameters: - type: object - description: Data required to evaluate the transfer destination condition. - required: - - type - properties: + - walletType + example: walletType + label: + type: string + description: A description for the condition parameter which can be shown to an end user. + example: Type + description: + type: string + description: A description for the condition parameter which can be shown to an end user. + example: The Wallet Type type: type: string + description: This Conditions parameter has a set of defined values. enum: - - whitelistedAddress - - nonWhitelistedAddress - description: The type of destination this condition will match. - example: whitelistedAddress - coin: + - ENUMERATED + required: type: string - description: The asset this condition applies to. - example: btc - TransferDestinationTypeConditionRequest: - title: Destination + description: This Conditions parameter must always be provided. + enum: + - ALWAYS + allowMultiple: + type: boolean + description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. + example: 'true' + values: + type: array + description: A list of valid values, only values from this list will be accepted. + items: + anyOf: + - $ref: '#/components/schemas/CustodialValue' + - $ref: '#/components/schemas/HotValue' + - $ref: '#/components/schemas/ColdValue' + - $ref: '#/components/schemas/TradingValue' + - $ref: '#/components/schemas/CustodialPairedValue' + - $ref: '#/components/schemas/BackingValue' + CustodialValue: + title: Custodial cold wallet type: object - description: Destination condition. + description: Custodial cold wallet. required: - - name - - parameters + - value + - label + - description properties: - name: + value: type: string - description: Name of the condition. enum: - - transfer.destination.type - example: transfer.destination.type - parameters: - $ref: '#/components/schemas/TransferDestinationTypeConditionParameters' - operator: - $ref: '#/components/schemas/OperatorType' - TransferInitiatorsConditionParameters: - type: object - description: Data required to evaluate the transfer initiator condition. - required: - - userIds - properties: - userIds: - type: array - items: - type: string - description: A list of user IDs to validate for the transfer initiator. - example: '[659bdac013822ba1e8c60d8c497197c4, 63ebe51c12381c0007415e4f50bc95ce]' - TransferInitiatorsConditionRequest: - title: Initiator + - custodial + description: The actual value. + label: + type: string + description: A label for the condition parameter Value which can be shown to an end user. + example: Custodial Wallet + description: + type: string + description: A description for the condition parameter Value which can be shown to an end user. + example: A custodial wallet + HotValue: + title: Self-managed hot wallet type: object - description: Initiator condition. + description: Self-managed hot wallet wallet. required: - - name - - parameters + - value + - label + - description properties: - name: + value: type: string - description: Name of the condition. enum: - - transfer.initiators - example: transfer.initiators - parameters: - $ref: '#/components/schemas/TransferInitiatorsConditionParameters' - operator: - $ref: '#/components/schemas/OperatorType' - TransferVelocityLimitConditionParameters: + - hot + description: The actual value. + label: + type: string + description: A label for the condition parameter Value which can be shown to an end user. + example: Hot Wallet + description: + type: string + description: A description for the condition parameter Value which can be shown to an end user. + example: A hot wallet + ColdValue: + title: Self-managed cold wallet type: object - description: Data required to evaluate the transfer velocity limit condition. + description: Self-managed cold wallet. required: - - scope - - timeWindow - - amount - - coin + - value + - label + - description properties: - scope: + value: type: string enum: - - wallet - - enterprise - description: Entities to include in the velocity calculation. - example: wallet - timeWindow: - type: string - description: A window of time in which a set of amount can be spent. - example: '60' - amount: + - cold + description: The actual value. + label: type: string - description: The transfer amount is compared with this limit. - example: '100000000' - coin: + description: A label for the condition parameter Value which can be shown to an end user. + example: Cold Wallet + description: type: string - description: The unit that the amount is denoted in, in either crypto or a fiat currency. - example: ETH - TransferVelocityLimitConditionRequest: - title: Velocity limit + description: A description for the condition parameter Value which can be shown to an end user. + example: A cold wallet + TradingValue: + title: Go Account type: object - description: Velocity-limit condition. + description: Go Account. required: - - name - - parameters + - value + - label + - description properties: - name: + value: type: string - description: Name of the condition. enum: - - transfer.velocity.limit - example: transfer.velocity.limit - parameters: - $ref: '#/components/schemas/TransferVelocityLimitConditionParameters' - operator: - $ref: '#/components/schemas/OperatorType' - TransferWebhookConditionParameters: - type: object - description: Data required to evaluate the transfer webhook condition. - required: - - webhookUrl - properties: - webhookUrl: + - trading + description: The actual value. + label: type: string - description: The webhook url to post transfer payload to. - example: https://webhook.site/91561f7b-4141-4ee2-8336-e10650cd000f - coin: + description: A label for the condition parameter Value which can be shown to an end user. + example: Trading Wallet + description: type: string - description: The asset this condition applies to. - example: btc - TransferWebhookConditionRequest: - title: Webhook + description: A description for the condition parameter Value which can be shown to an end user. + example: A trading wallet + CustodialPairedValue: + title: Custodial-paired wallet type: object - description: Transfer webhook condition. + description: Custodial-paired wallet. required: - - name - - parameters + - value + - label + - description properties: - name: + value: type: string - description: Name of the condition. enum: - - transfer.webhook - example: transfer.webhook - parameters: - $ref: '#/components/schemas/TransferWebhookConditionParameters' - WalletAdminAction: - title: Require wallet-admin approval + - custodialPaired + description: The actual value. + label: + type: string + description: A label for the condition parameter Value which can be shown to an end user. + example: Custodial Paired Wallet + description: + type: string + description: A description for the condition parameter Value which can be shown to an end user. + example: A custodial paired wallet + BackingValue: + title: Backing hot wallet type: object - description: Requires approval from one or more wallet admin. + description: Backing hot wallet. required: - - name + - value - label - description - - status - - adminOnly - - parameters properties: - name: + value: type: string - description: The name of the action. enum: - - approvals.customer.walletAdmin - example: approvals.customer.walletAdmin + - backing + description: The actual value. label: type: string - description: A label for the action which can be shown to an end user. - example: Wallet Admin + description: A label for the condition parameter Value which can be shown to an end user. + example: Backing Wallet description: type: string - description: A description for the action which can be shown to an end user. - example: Require approval from wallet admins - status: - type: string - description: | - Status of the action. Indicates if the Actions is usable 'ACTIVE' or not 'INACTIVE'. - - * 'ACTIVE' - The action is available for use. - * 'INACTIVE' - The action is NOT available for use. - enum: - - ACTIVE - - INACTIVE - example: ACTIVE - adminOnly: - type: boolean - description: true, if this is an internal action, false otherwise. - example: false - parameters: + description: A description for the condition parameter Value which can be shown to an end user. + example: A backing wallet + Conditions: + type: object + description: | + Wrapper object for a list of Conditions. Not paginated. + properties: + conditions: type: array - description: A list of Parameters to control how the action behaves. items: anyOf: - - $ref: '#/components/schemas/MinRequireActionParameter' - WalletAdminActionRequest: - title: Require Require approval from wallet admins + - $ref: '#/components/schemas/TransferDestinationTypeCondition' + - $ref: '#/components/schemas/TransferVelocityLimitCondition' + - $ref: '#/components/schemas/TransferAmountCondition' + - $ref: '#/components/schemas/TransferInitiatorsCondition' + - $ref: '#/components/schemas/TransferWebhookCondition' + PolicyRuleVersions: type: object - description: Require Require approval from wallet admins. + description: | + description: All versions of a policy rule. Not paginated. required: - - name - - parameters + - versions properties: - name: - type: string - description: Name of the associated Action. - enum: - - approvals.customer.walletAdmin - example: approvals.customer.walletAdmin - parameters: - type: object - description: Required data needed to configure the Action. - required: - - minRequired - properties: - minRequired: - type: string - description: Number of required approvals - example: '1' - operator: - $ref: '#/components/schemas/OperatorType' - WalletAllFilteringCondition: - title: All wallets + versions: + type: array + description: | + List of policy rule versions. The list is sorted by version number in descending order, but rules with a + null version, such as those in pending approval or denied, appear first. + items: + $ref: '#/components/schemas/PolicyRule2' + CreatePolicyRuleRequest: type: object - description: Filter by all wallets. + description: Create or Update policy rule Request. required: - name + - adminOnly + - clauses + - filteringConditions properties: name: type: string - description: Name of the condition. - enum: - - wallet.all - example: wallet.all - WalletIdsFilteringCondition: - title: Wallet ID - type: object - description: Filter by wallet ID. - required: - - name - - parameters - properties: - name: + maxLength: 256 + description: Human readable name of the rule. + example: Get approval if transferring more than 2 BTC in a minute + adminOnly: + type: boolean + description: true, if the policy rule is a BitGo internal rule, false otherwise. + example: false + clauses: + type: array + description: | + List of policy rule Clauses: a combination of Conditions and Actions. + items: + type: object + description: | + A combination of Conditions and Actions. + required: + - conditions + - actions + properties: + conditions: + type: array + items: + anyOf: + - $ref: '#/components/schemas/TransferAmountConditionRequest' + - $ref: '#/components/schemas/TransferVelocityLimitConditionRequest' + - $ref: '#/components/schemas/TransferDestinationTypeConditionRequest' + - $ref: '#/components/schemas/TransferInitiatorsConditionRequest' + - $ref: '#/components/schemas/TransferWebhookConditionRequest' + actions: + type: array + items: + anyOf: + - $ref: '#/components/schemas/AlwaysDenyActionRequest' + - $ref: '#/components/schemas/WalletAdminActionRequest' + - $ref: '#/components/schemas/FinalApprovalActionRequest' + - $ref: '#/components/schemas/EnterpriseUsersActionRequest' + filteringConditions: + type: array + description: List of Filtering Conditions that must trigger for the policy rule to be Evaluated. + items: + anyOf: + - $ref: '#/components/schemas/WalletIdsFilteringCondition' + - $ref: '#/components/schemas/WalletTypeFilteringCondition' + - $ref: '#/components/schemas/WalletAllFilteringCondition' + lockType: type: string - description: Name of the condition. + description: | + Indicates how the policy rule is locked. + + * 'LOCK_AFTER_DATE' - Will lock after the lockDate set on the policy rule. + * 'PERMANENT' - Is permanently locked. enum: - - wallet.ids - example: wallet.ids - parameters: - type: object - description: Required data needed to evaluate the Filtering Condition. - required: - - walletId - properties: - walletId: - type: array - items: - type: string - description: The Wallet Ids this Filtering Condition will match. - WalletTypeFilteringCondition: - title: Wallet type - type: object - description: Filter by wallet type. - required: - - name - - parameters - properties: - name: + - LOCK_AFTER_DATE + - PERMANENT + example: PERMANENT + lockDate: type: string - description: Name of the condition. - enum: - - wallet.type - example: wallet.type - parameters: - type: object - description: Required data needed to evaluate the Filtering Condition. - required: - - walletType - properties: - walletType: - type: array - items: - type: string - enum: - - hot - - custodial - TradeUser: - required: - - email - - firstName - - id - - lastName + description: | + The date after which the policy rule will be locked. Only applicable if the policy rule is locked with + 'LOCK_AFTER_DATE'. + format: date-time + example: '2023-11-13T14:49:48.830522Z' + AllWalletsScope: type: object - properties: - id: - type: string - format: uuid - firstName: - type: string - lastName: - type: string - email: - type: string - format: email - example: - id: a253c86c-1f0f-42cc-bcd0-2dcc5040b204 - firstName: Uncle - lastName: MoneyPenny - email: uncle.moneypenny@bitgo.com - Account1: + description: | + A policy rule scope. For example the All Wallets scope. required: - id - name - type: object + - label + - description + - conditions properties: id: type: string - format: uuid + description: Unique id of the scope. A UUID. + example: 306258df-dcab-489e-a9fe-ff28ce9fa312 name: type: string - example: - id: f230fdebfa084ffebc7e00515f54603f - name: Uncle MoneyPenny's Trading Wallet - Accounts: - type: array - items: - $ref: '#/components/schemas/Account1' - AccountBalance: - required: - - currency - - balance - - heldBalance - - tradableBalance - - withdrawableBalance - type: object - properties: - currency: - type: string - description: Currency symbol - balance: - type: string - format: decimal - description: The total balance in the account - heldBalance: - type: string - format: decimal - description: The total balance reserved for some purpose, e.g. a pending withdrawal - tradableBalance: - type: string - format: decimal - description: The total balance available for trading - withdrawableBalance: - type: string - format: decimal - description: The total balance available for withdrawal - example: - currencyId: 6016e0a9-545a-45fb-8370-caab1680956a - currency: BTC - balance: '100.0' - heldBalance: '10.0' - tradableBalance: '90.0' - AccountBalances: - type: array - items: - $ref: '#/components/schemas/AccountBalance' - Amount4: - type: object - required: - - quantity - - currency - properties: - quantity: + description: Name of the scope. + enum: + - wallet.segregated + example: wallet.segregated + label: type: string - format: decimal - description: The specified quantity. - currency: + description: A label for the scope which can be shown to an end user. + example: Wallet + description: type: string - description: The specified quantity currency. - example: - quantity: '100.0' - currency: USD - FundingType: - type: string - enum: - - margin - - funded - description: The funding type of the order. Funded orders will be placed with the user's available balance. Margin orders will be placed with the user's margin balance. - default: funded - MarginNetOpenPosition: + description: A description for the scope which can be shown to an end user. + example: A BitGo Wallet + conditions: + type: array + description: A list of Filtering Conditions the scope supports. For example the Wallet Type Filtering condition. + items: + anyOf: + - $ref: '#/components/schemas/WalletTypeCondition' + - $ref: '#/components/schemas/WalletIdsCondition' + - $ref: '#/components/schemas/WalletAllCondition' + scopes: type: object - required: - - currency - - enterpriseId - - netOpenPosition - - netOpenPositionValue - - shortMarginPositionNotionalLimit - - longMarginPositionNotionalLimit - - unrealizedPnL - - lastModified + description: Wrapper object for a list of scopes. Not paginated. properties: - currency: - type: string - enterpriseId: - type: string - format: uuid - netOpenPosition: - type: number - format: decimal - netOpenPositionValue: - type: number - format: decimal - shortMarginPositionNotionalLimit: - $ref: '#/components/schemas/Amount4' - longMarginPositionNotionalLimit: - $ref: '#/components/schemas/Amount4' - unrealizedPnL: - $ref: '#/components/schemas/Amount4' - lastModified: - type: string - format: date-time - example: - currency: BTC - enterpriseId: 63925f940c259a00061853808ffea830 - netOpenPosition: -2.3242 - netOpenPositionValue: -124017.22 - shortMarginPositionNotionalLimit: - quantity: 1000000 - currency: USD - longMarginPositionNotionalLimit: - quantity: 1000000 - currency: USD - unrealizedPnL: - quantity: 1200 - currency: USD - lastModified: '2024-07-29T21:13:09.000Z' - MarginNetOpenPositionLimit: + scopes: + description: A list of scopes available on your Enterprise. + type: array + items: + $ref: '#/components/schemas/AllWalletsScope' + Touchpoint: type: object - required: - - enterpriseId - - currency - - shortMarginPositionNotionalLimit - - longMarginPositionNotionalLimit - properties: - enterpriseId: - type: string - currency: - type: string - shortMarginPositionNotionalLimit: - $ref: '#/components/schemas/Amount4' - longMarginPositionNotionalLimit: - $ref: '#/components/schemas/Amount4' - example: - enterpriseId: enterprise-123 - currency: BTC - shortMarginPositionNotionalLimit: - quantity: '1000000' - currency: USD - longMarginPositionNotionalLimit: - quantity: '2000000' - currency: USD - Order: + description: A Touchpoint. For example the Transfer from a Wallet Touchpoint. required: - id - - accountId - - time - - creationDate - - completionDate - - type - - fundingType + - name - status - - product - - side - - quantity - - quantityCurrency - - filledQuantity - - filledQuoteQuantity - - averagePrice - type: object + - label + - description + - adminOnly properties: id: type: string - format: uuid - accountId: - type: string - clientOrderId: - type: string - time: - type: string - format: date-time - description: DEPRECATED - creationDate: - type: string - format: date-time - scheduledDate: - type: string - format: date-time - lastFillDate: - type: string - format: date-time - completionDate: + description: Id of the Touchpoint. A UUID. + example: 306258df-dcab-489e-a9fe-ff28ce9fa312 + name: type: string - format: date-time - settleDate: + description: Name of the Touchpoint. + enum: + - wallet.segregated.transfer + - policies.management.edit + example: wallet.segregated.transfer + label: type: string - format: date-time - type: + description: A label for the Touchpoint which can be shown to an end user. + example: Transfer from a Segregated Wallet + description: type: string - fundingType: - $ref: '#/components/schemas/FundingType' + description: A description for the Touchpoint which can be shown to an end user. + example: When transferring from a BitGo Segregated Wallet status: - $ref: '#/components/schemas/OrderStatus' - product: - type: string - description: Product name e.g. BTC-USD - side: - $ref: '#/components/schemas/Side' - quantity: type: string - format: decimal - description: The specified quantity. - quantityCurrency: + description: | + Status of the Touchpoint. Indicates if the Touchpoint is usable 'ACTIVE' or not 'INACTIVE'. + + * 'ACTIVE' - The Touchpoint is available for use. + * 'INACTIVE' - The Touchpoint is NOT available for use. + enum: + - ACTIVE + - INACTIVE + example: ACTIVE + adminOnly: + type: boolean + description: true, if this is an internal Touchpoint, false otherwise. + example: false + TouchpointsResults: + description: A paginated list of Touchpoints + allOf: + - type: object + properties: + touchpoints: + type: array + items: + $ref: '#/components/schemas/Touchpoint' + - $ref: '#/components/schemas/PaginatedResults' + GeneralError: + type: object + properties: + code: type: string - description: The specified quantity currency. - filledQuantity: + message: type: string - format: decimal - description: The base quantity that was filled. - filledQuoteQuantity: + status: + type: integer + ValidationError: + allOf: + - $ref: '#/components/schemas/GeneralError' + - type: object + properties: + failedValidations: + type: object + AlwaysDenyAction: + title: Automatically reject + type: object + description: Automatically denies a transfer. + required: + - name + - label + - description + - status + - adminOnly + properties: + name: type: string - format: decimal - description: The quote quantity that was filled. - averagePrice: + description: The name of the action. + enum: + - approvals.always.deny + example: approvals.always.deny + label: type: string - format: decimal - limitPrice: + description: A label for the action which can be shown to an end user. + example: Deny + description: type: string - format: decimal - duration: - type: integer - description: Duration of the order in minutes. - twapInterval: - type: integer - description: Interval length of the TWAP order in minutes. - reason: - description: Reason for order cancellation. 'internalError' indicates an error occurred within the server while processing the order, resulting in an order cancellation. 'insufficientFunds' indicates that the order was cancelled due to shortage of funds to complete the transaction. + description: A description for the action which can be shown to an end user. + example: Automatically reject + status: type: string + description: | + Status of the action. Indicates if the Actions is usable 'ACTIVE' or not 'INACTIVE'. + + * 'ACTIVE' - The action is available for use. + * 'INACTIVE' - The action is NOT available for use. enum: - - internalError - - insufficientFunds - example: insufficientFunds - example: - id: 67fd640c-cb6c-4218-80ae-49e79ec15646 - accountId: 60e740e7898f7d00064d43769a73dc48 - clientOrderId: myorderid1 - time: {} - creationDate: {} - scheduledDate: {} - lastFillDate: {} - completionDate: {} - settleDate: {} - fundingType: funded - type: market - status: completed - product: BTC-USD - side: buy - quantity: '1000' - quantityCurrency: USD - filledQuantity: '0.02457152' - filledQuoteQuantity: '1000' - averagePrice: '40697.32' - Orders: - type: array - items: - $ref: '#/components/schemas/Order' - NewOrderRequest: - oneOf: - - $ref: '#/components/schemas/NewMarketOrderRequest' - - $ref: '#/components/schemas/NewLimitOrderRequest' - - $ref: '#/components/schemas/NewTWAPOrderRequest' - NewMarketOrderRequest: - title: Market - required: - - product - - quantity - - quantityCurrency - - side - - type - - fundingType + - ACTIVE + - INACTIVE + example: ACTIVE + adminOnly: + type: boolean + description: true, if this is an internal action, false otherwise. + example: false + AlwaysDenyActionRequest: + title: Automatically reject type: object + description: Automatically reject. + required: + - name properties: - clientOrderId: + name: type: string - description: Custom order ID. This must be a unique ID associated with an order and cannot be the same across multiple requests. - maxLength: 256 - product: + description: Name of the associated Action. + enum: + - approvals.always.deny + example: approvals.always.deny + Clause: + type: object + description: | + A combination of Conditions and Actions. + properties: + actions: + type: array + items: + anyOf: + - $ref: '#/components/schemas/AlwaysDenyActionRequest' + - $ref: '#/components/schemas/EnterpriseAdminActionRequest' + - $ref: '#/components/schemas/WalletAdminActionRequest' + - $ref: '#/components/schemas/FinalApprovalActionRequest' + - $ref: '#/components/schemas/EnterpriseUsersActionRequest' + conditions: + type: array + items: + anyOf: + - $ref: '#/components/schemas/TransferAmountConditionRequest' + - $ref: '#/components/schemas/TransferVelocityLimitConditionRequest' + - $ref: '#/components/schemas/TransferDestinationTypeConditionRequest' + - $ref: '#/components/schemas/TransferInitiatorsConditionRequest' + EnterpriseAdminAction: + title: Require enterprise-admin approval + type: object + description: Requires approval from an enterprise admin. + required: + - name + - label + - description + - status + - adminOnly + properties: + name: type: string - description: Product name e.g. BTC-USD - type: + description: The name of the action. + enum: + - approvals.customer.enterpriseAdmin + example: approvals.customer.enterpriseAdmin + label: type: string - description: Must be set to "market" - fundingType: - $ref: '#/components/schemas/FundingType' - side: - $ref: '#/components/schemas/Side' - quantity: + description: A label for the action which can be shown to an end user. + example: Enterprise Admin + description: type: string - format: decimal - quantityCurrency: + description: A description for the action which can be shown to an end user. + example: Enterprise admin approval + status: type: string - description: The quantity currency must be in quote currency for buy and base currency for sell. e.g. If product is BTC-USD, the base currency will be BTC. - example: - clientOrderId: myorder1 - type: market - product: BTC-USD - side: buy - quantity: '10000' - quantityCurrency: USD - NewLimitOrderRequest: - title: Limit - required: - - product - - quantity - - quantityCurrency - - side - - type - - limitPrice + description: | + Status of the action. Indicates if the Actions is usable 'ACTIVE' or not 'INACTIVE'. + + * 'ACTIVE' - The action is available for use. + * 'INACTIVE' - The action is NOT available for use. + enum: + - ACTIVE + - INACTIVE + example: ACTIVE + adminOnly: + type: boolean + description: true, if this is an internal action, false otherwise. + example: false + EnterpriseAdminActionRequest: + title: Require enterprise-admin approval type: object + description: Require enterprise-admin approval. + required: + - name properties: - clientOrderId: - type: string - description: Custom order ID. This must be a unique ID associated with an order and cannot be the same across multiple requests. - maxLength: 256 - product: - type: string - description: Product name e.g. BTC-USD - type: + name: type: string - description: Must be set to "limit" - fundingType: - $ref: '#/components/schemas/FundingType' - side: - $ref: '#/components/schemas/Side' - quantity: + description: Name of the associated Action. + enum: + - approvals.customer.enterpriseAdmin + example: approvals.customer.enterpriseAdmin + operator: + $ref: '#/components/schemas/OperatorType' + EnterpriseUserAction: + title: Require approval from a set of enterprise users + type: object + description: Requires approval from a set of enterprise users. + required: + - name + - label + - description + - status + - adminOnly + - parameters + properties: + name: type: string - format: decimal - quantityCurrency: + description: The name of the action. + enum: + - approvals.customer.enterpriseUser + example: approvals.customer.enterpriseUser + label: type: string - description: The quantity currency must be in the base currency for both buy and sell. e.g. If product is BTC-USD, the base currency will be BTC. - limitPrice: + description: A label for the action which can be shown to an end user. + example: Require approval from a set of users + description: type: string - format: decimal - duration: - type: integer - description: Duration of the limit order in minutes. For orders that are good till cancelled, skip duration and use timeInForce=GTC. - timeInForce: + description: A description for the action which can be shown to an end user. + example: Enterprise users approval + status: type: string - description: Time in force for the order. GTC (Good Till Cancelled) is the only allowed value. + description: | + Status of the action. Indicates if the Actions is usable 'ACTIVE' or not 'INACTIVE'. + + * 'ACTIVE' - The action is available for use. + * 'INACTIVE' - The action is NOT available for use. enum: - - GTC - example: - clientOrderId: myorder1 - type: limit - product: BTC-USD - side: buy - quantity: '1' - quantityCurrency: BTC - limitPrice: '10005' - duration: 60 - NewTWAPOrderRequest: - title: TWAP + - ACTIVE + - INACTIVE + example: ACTIVE + adminOnly: + type: boolean + description: true, if this is an internal action, false otherwise. + example: false + parameters: + type: array + description: A list of Parameters to control how the action behaves. + items: + anyOf: + - $ref: '#/components/schemas/EnterpriseUserIdsActionParameter' + - $ref: '#/components/schemas/MinRequireActionParameter' + - $ref: '#/components/schemas/InitiatorIsAllowedToApproveActionParameter' + EnterpriseUserIdsActionParameter: + title: Approvers user ids + type: object + description: The set of enterprise users approvers. required: - - product - - quantity - - quantityCurrency - - side + - name + - label + - description - type - - duration - - interval - type: object + - required + - allowMultiple properties: - clientOrderId: - type: string - description: Custom order ID. This must be a unique ID associated with an order and cannot be the same across multiple requests. - maxLength: 256 - product: - type: string - description: Product name e.g. BTC-USD - type: + name: type: string - description: Must be set to "twap" - fundingType: - $ref: '#/components/schemas/FundingType' - side: - $ref: '#/components/schemas/Side' - quantity: + description: The name of the action parameter. + enum: + - userIds + example: userIds + label: type: string - format: decimal - quantityCurrency: + description: A label for the action parameter which can be shown to an end user. + example: Users + description: type: string - description: The quantity currency must be in quote currency for buy unless a limit price is specified, in which case buy orders can only be placed in the base currency. For sell, the quantity currency must be in base. e.g. If product is BTC-USD, the base currency will be BTC. - limitPrice: + description: A description for the action parameter which can be shown to an end user. + example: List of enterprise users for approval + type: type: string - format: decimal - duration: - type: integer - description: Duration of the TWAP order in minutes. - interval: - type: integer - description: Interval of the TWAP order in minutes. - scheduledDate: + description: The type of acceptable values for this action parameter. + enum: + - BITGO_USER_ID + example: BITGO_USER_ID + required: type: string - format: date-time - example: - clientOrderId: myorder1 - type: twap - product: BTC-USD - side: buy - quantity: '100000' - quantityCurrency: USD - duration: 60 - interval: 5 - PrimeTrade: - required: - - id - - orderId - - time - - product - - side - - price - - quoteQuantity - - quantity - - settled + description: A value must be always provided for exactly one or more of the action Parameters with a 'required' value of 'ONE_OR_MORE'. In other words, all the action Parameters with a 'required' of 'ONE_OR_MORE' form a group, and a value must be provided for one or more of the action Parameters in the group. + enum: + - ONE_OR_MORE + example: ONE_OR_MORE + allowMultiple: + type: boolean + description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. + example: true + EnterpriseUsersActionRequest: + title: Require approval from a set of enterprise users type: object + description: Require approval from a set of enterprise users. + required: + - name + - parameters properties: - id: - type: string - format: uuid - orderId: - type: string - format: uuid - time: + name: type: string - format: date-time - product: + description: Name of the associated Action. + enum: + - approvals.customer.enterpriseUser + example: approvals.customer.enterpriseUser + parameters: + type: object + description: Required data needed to configure the Action. + required: + - userIds + - minRequired + properties: + userIds: + type: array + items: + type: string + example: 63cf101298470200073bbae71add80d5 + description: List of enterprise users for approval + example: + - 63cf101298470200073bbae71add80d5 + minRequired: + type: number + description: Minimum required number of approvers + example: 1 + initiatorIsAllowedToApprove: + type: boolean + description: Whether the initiator is allowed to approve this action. false by default. + example: false + default: false + operator: + $ref: '#/components/schemas/OperatorType' + FinalApprovalAction: + title: Require final approval from wallet users + type: object + description: Requires final approval from wallet users after wallet-admin approval. Final approvers don't have to be wallet admins. + required: + - name + - label + - description + - status + - adminOnly + - parameters + properties: + name: type: string - description: Product name e.g. BTC-USD - side: - $ref: '#/components/schemas/Side' - price: + description: The name of the action. + enum: + - approvals.customer.finalApproval + example: approvals.customer.finalApproval + label: type: string - format: decimal - quoteQuantity: + description: A label for the action which can be shown to an end user. + example: Require final approval from wallet users + description: type: string - format: decimal - description: Quote quantity, e.g. For BTC-USD product, 100.50 USD - quantity: + description: A description for the action which can be shown to an end user. + example: Require final approval from wallet users + status: type: string - format: decimal - description: Base quantity, e.g. For BTC-USD product, 0.0045 BTC - settled: + description: | + Status of the action. Indicates if the Actions is usable 'ACTIVE' or not 'INACTIVE'. + + * 'ACTIVE' - The action is available for use. + * 'INACTIVE' - The action is NOT available for use. + enum: + - ACTIVE + - INACTIVE + example: ACTIVE + adminOnly: type: boolean - example: - id: 7e0c768e-2d16-4c1e-b39d-06fa20009397 - orderId: d50ec984-77a8-460a-b958-66f114b0de9b - time: {} - side: buy - product: BTC-USD - quoteQuantity: '100.50' - price: '22333.33' - quantity: '0.0045' - settled: true - Trades: - type: array - items: - $ref: '#/components/schemas/PrimeTrade' - Currency: + description: true, if this is an internal action, false otherwise. + example: false + parameters: + type: array + description: A list of Parameters to control how the action behaves. + items: + anyOf: + - $ref: '#/components/schemas/FinalApproversUserIdsActionParameter' + - $ref: '#/components/schemas/InitiatorIsAllowedToApproveActionParameter' + FinalApprovalActionRequest: + title: Require final approval from wallet users + type: object + description: Require final approval from wallet users. required: - - id - name - - symbol - type: object + - parameters properties: - id: - type: string - format: uuid - symbol: - type: string name: type: string - example: - id: 6016e0a9-545a-45fb-8370-caab1680956a - symbol: BTC - name: Bitcoin - Currencies: - type: array - items: - $ref: '#/components/schemas/Currency' - Product: + description: Name of the associated Action. + enum: + - approvals.customer.finalApproval + example: approvals.customer.finalApproval + parameters: + type: object + description: Required data needed to configure the Action. + required: + - userIds + properties: + userIds: + type: array + items: + type: string + example: 63cf101298470200073bbae71add80d5 + description: The final approvers + example: + - 63cf101298470200073bbae71add80d5 + initiatorIsAllowedToApprove: + type: boolean + description: Whether the initiator is allowed to approve this action. true by default. + example: true + default: true + operator: + $ref: '#/components/schemas/OperatorType' + FinalApproversUserIdsActionParameter: + title: Final approvers user ids + type: object + description: The final approvers. required: - - baseCurrencyId - - baseCurrency - - baseMinSize - - id - - isTradeDisabled - - isMarginTradeSupported - name - - quoteCurrencyId - - quoteCurrency - - quoteIncrement - - quoteMinSize - type: object + - label + - description + - type + - required + - allowMultiple properties: - id: - type: string - format: uuid name: type: string - description: Product name e.g. BTC - baseCurrencyId: - type: string - format: uuid - baseCurrency: - type: string - description: Currency name e.g. BTC - quoteCurrencyId: - type: string - format: uuid - quoteCurrency: - type: string - description: Currency name e.g. USD - baseMinSize: - type: string - format: decimal - baseMaxSize: + description: The name of the action parameter. + enum: + - userIds + example: userIds + label: type: string - format: decimal - baseIncrement: + description: A label for the action parameter which can be shown to an end user. + example: Users + description: type: string - format: decimal - quoteMinSize: + description: A description for the action parameter which can be shown to an end user. + example: List of users for final approval + type: type: string - format: decimal - quoteIncrement: + description: The type of acceptable values for this action parameter. + enum: + - BITGO_USER_ID + example: BITGO_USER_ID + required: type: string - format: decimal - isTradeDisabled: - type: boolean - isMarginTradeSupported: + description: A value must be always provided for exactly one or more of the action Parameters with a 'required' value of 'ONE_OR_MORE'. In other words, all the action Parameters with a 'required' of 'ONE_OR_MORE' form a group, and a value must be provided for one or more of the action Parameters in the group. + enum: + - ONE_OR_MORE + example: ONE_OR_MORE + allowMultiple: type: boolean - description: True if margin trading is supported for this product - example: - id: 86d09911-e58e-4f27-ac1f-91d5f9c79952 - name: BTC-USD - baseCurrencyId: 6016e0a9-545a-45fb-8370-caab1680956a - quoteCurrencyId: 7d5d1e8d-e6e1-4676-99af-190012515418 - baseCurrency: BTC - quoteCurrency: USD - baseMinSize: '0.001' - baseMaxSize: '10000.00' - quoteIncrement: '0.01' - Products: - type: array - items: - $ref: '#/components/schemas/Product' - Level1OrderBookSnapshot: - required: - - askPrice - - askSize - - bidPrice - - bidSize - - product - - time + description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. + example: true + InitiatorIsAllowedToApproveActionParameter: + title: Initiator is allowed to approve type: object + description: Whether the initiator is allowed to approve this action. + required: + - name + - label + - description + - type + - required + - allowMultiple properties: - time: - type: string - format: date-time - product: + name: type: string - description: Product name e.g. BTC - bidPrice: + description: The name of the action parameter. + enum: + - initiatorIsAllowedToApprove + example: initiatorIsAllowedToApprove + label: type: string - format: decimal - bidSize: + description: A label for the action parameter which can be shown to an end user. + example: Initiator Is Allowed To Approve + description: type: string - format: decimal - askPrice: + description: A description for the action parameter which can be shown to an end user. + example: Whether the initiator is allowed to approve this action + type: type: string - format: decimal - askSize: + description: The type of acceptable values for this action parameter. + enum: + - BOOLEAN + example: BOOLEAN + required: type: string - format: decimal - example: - time: {} - product: BTC-USD - bidPrice: '7090.96' - bidSize: '1.253433' - askPrice: '7090.97' - askSize: '25.23881' - Level2OrderBookSnapshot: - required: - - asks - - bids - - product - - time + description: A value is not required. + enum: + - OPTIONAL + example: OPTIONAL + allowMultiple: + type: boolean + description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. + example: false + MinRequireActionParameter: + title: Minimum number of approvals required type: object + description: Minimum required number of approvers. + required: + - name + - label + - description + - type + - required + - allowMultiple properties: - time: + name: type: string - format: date-time - product: + description: The name of the action parameter. + enum: + - minRequired + example: minRequired + label: type: string - description: Product name e.g. BTC - bids: - type: array - description: An array of levels of [price, size] - items: - type: string - format: decimal - asks: - type: array - description: An array of levels of [price, size] - items: - type: string - format: decimal - example: - time: {} - product: BTC-USD - bids: - - - '7090.96' - - '1.253433' - asks: - - - '7090.97' - - '25.23881' - OrderStatus: - type: string - enum: - - pending_open - - open - - completed - - pending_cancel - - canceled - - error - - scheduled - Error: - required: - - error - - errorName - - reqId - type: object - properties: - error: + description: A label for the action parameter which can be shown to an end user. + example: Approvals Required + description: type: string - errorName: + description: A description for the action parameter which can be shown to an end user. + example: Minimum required number of approvers + type: type: string - reqId: + description: The type of acceptable values for this action parameter. + enum: + - POSITIVE_NUMBER + example: POSITIVE_NUMBER + required: type: string - example: - error: invalid permission - errorName: backend:common:forbidden - reqId: d41d4d21e63d63b293caf55f2a739a79 - Side: - description: Side of a trade, from the perspective of the requesting user + description: A value must always be provided, i.e. the parameter is required. + enum: + - ALWAYS + example: ALWAYS + allowMultiple: + type: boolean + description: true, if multiple values can be provided, i.e. as a list of values. When false only one value can be provided, i.e. a list with more than one element will be rejected. + example: false + OperatorType: type: string + description: Boolean operators that join Conditions, and/or Actions. Must be null on the last Condition or Action, or if there is only one Condition or Action, must be non-null on all others. enum: - - buy - - sell - example: buy - StakingRequestPOSTBody: + - AND + - OR + example: AND + PaginatedResults: type: object - properties: - clientId: - description: Optional user generated identifier to detect duplicated requests. - type: string - amount: - description: Amount to stake in base units (i.e. Wei for ETH). For Ethereum the amount must be a multiple of 32 ETH (32000000000000000000 Wei). For Testnet the 32 ETH multiple restriction does not apply. - type: string - example: '32000000000000000000' - type: - description: Staking Request type = 'STAKE' - type: string - example: STAKE + description: Common fields of a paginated result. required: - - amount - - type - AvaxPStakingRequestPOSTBody: - title: AVAXP stake - allOf: - - $ref: '#/components/schemas/StakingRequestPOSTBody' - type: object + - page + - totalPages + - totalElements properties: - amount: - description: Amount to stake in base units. - type: string - example: '1000' - type: - description: Staking Request type = 'STAKE'. - type: string - example: STAKE - durationSeconds: - description: The length of time in seconds to complete a staking period. + page: type: integer - example: 604800 - required: - - amount - - type - - durationSeconds - EthStakingRequestPOSTBody: - title: ETH stake - allOf: - - $ref: '#/components/schemas/StakingRequestPOSTBody' + description: Page number. Page numbers start at 1. + totalPages: + type: integer + description: Total number of pages. Total pages start at 1. + totalElements: + type: integer + description: Total number of elements across all pages. + PaginatedResultsWithNextBatchPrevId: type: object + description: Common fields of a paginated result paged with a nextBatchPrevId. + required: + - nextBatchPrevId properties: - gasPrice: + nextBatchPrevId: type: string - description: User overridden gas price to apply for the generated transactions for this request. GasPrice is in base units. - MaticStakingRequestPOSTBody: - title: MATIC stake - allOf: - - $ref: '#/components/schemas/StakingRequestPOSTBody' + description: The value to pass as the prevId to the API for getting the next page. + PolicyRule2: type: object + description: | + A Policy Rule, the combination of a Scope, a Touchpoint, Conditions, and Actions. It allows you to define what + needs to happen (Actions) before a user can execute a sensitive operation (Touchpoint) on a Scope (e.g. a Wallet) + depending on the specific details of the operation (Conditions). See Concepts. + required: + - id + - uniqueId + - name + - status + - adminOnly + - touchpointId + - touchpointLabel + - scopeId + - scopeLabel + - clauses + - filteringConditions + - locked + - lockType + - createdBy + - modifiedBy + - createdDate + - modifiedDate properties: - gasPrice: + id: type: string - description: User overridden gas price to apply for the generated transactions for this request. GasPrice is in base units. - NearStakingRequestPOSTBody: - title: NEAR stake - allOf: - - $ref: '#/components/schemas/StakingRequestPOSTBody' - type: object - properties: - amount: - description: Amount to stake in base units. + description: Id of the Policy Rule. This identifier is not unique in isolation, it must be paired with an specific Policy Rule Version number to uniquely identified a particular version of a Policy Rule. A UUID. + example: 306258df-dcab-489e-a9fe-ff28ce9fa312 + uniqueId: type: string - example: '12000000000000000000' - SolStakingRequestPOSTBody: - title: SOL stake - allOf: - - $ref: '#/components/schemas/StakingRequestPOSTBody' - type: object - properties: - amount: - description: Amount to stake in base units. + description: The uniqueId of the Policy Rule version. A UUID. + example: cb4e0a0a-2768-4024-904a-178ca6d2cd54 + name: type: string - example: '1000' - DotStakingRequestPOSTBody: - title: DOT stake - allOf: - - $ref: '#/components/schemas/StakingRequestPOSTBody' - type: object - properties: - amount: - description: Amount to stake in base units. + description: Human readable name of the rule. + example: My first policy rule + status: type: string - example: '10000000000' - CosmosLikeStakingRequestPOSTBody: - title: ATOM-like stake - allOf: - - $ref: '#/components/schemas/StakingRequestPOSTBody' - type: object - properties: - validator: - description: The validator to delegate to. + description: | + Indicates if the Policy Rule is considered in Evaluations. + + * 'ACTIVE' - Will be Evaluated. + * 'INACTIVE' - Will NOT be Evaluated. + * 'DENIED' - The requested policy rule change was Denied. + * 'PENDING_APPROVAL' - This version of the policy rule is Pending Approval before it can be activated. + enum: + - ACTIVE + - INACTIVE + - DENIED + - PENDING_APPROVAL + example: ACTIVE + version: + type: integer + description: The Policy Rule Version, an integer that is incremented each time the Policy Rule changes. + default: 1 + example: 1 + adminOnly: + type: boolean + description: true, if the Policy Rule is a BitGo internal rule. Typically, this allows setting Global Policy Rules across enterprises. + example: false + touchpointId: type: string - example: 017234b285929170324e1051ccd887dc08adf049650ecf5d383985b0b0048ab39b - required: - - validator - AtomStakingRequestPOSTBody: - title: ATOM stake - allOf: - - $ref: '#/components/schemas/StakingRequestPOSTBody' - type: object - UnStakingRequestPOSTBody: - type: object - properties: - clientId: - description: Optional user generated identifier to detect duplicated requests. + description: The id of the Touchpoint associated with the Policy Rule. A UUID. + example: 0a244ae3-26cf-48ed-9854-edd5b9751f3e + touchpointLabel: + type: string + description: Label of the Touchpoint associated with the Policy Rule. For example the Transfer from a Wallet Touchpoint. + example: Transfer from a Wallet + scopeId: type: string - type: - description: Staking Request type = 'UNSTAKE'. + description: The id of the Scope associated with the Policy Rule. A UUID. + example: 08a3f714-c330-41e6-bd83-bad3a8d37188 + scopeLabel: type: string - example: UNSTAKE - required: - - type - MaticUnStakingRequestPOSTBody: - title: MATIC unstake - allOf: - - $ref: '#/components/schemas/UnStakingRequestPOSTBody' - type: object - properties: - gasPrice: + description: Label of the Scope associated with the Policy Rule. For example the All Wallets Scope. + example: All Wallets + clauses: + type: array + description: | + List of Policy Rule Clauses: a combination of Conditions and Actions. + items: + $ref: '#/components/schemas/Clause' + filteringConditions: + type: array + description: List of Filtering Conditions that must trigger for this Policy Rule to be Evaluated. + items: + anyOf: + - $ref: '#/components/schemas/WalletTypeFilteringCondition' + - $ref: '#/components/schemas/WalletIdsFilteringCondition' + - $ref: '#/components/schemas/WalletAllFilteringCondition' + locked: + type: boolean + description: true, if the Policy Rule is locked, false otherwise. + example: false + lockType: type: string - description: User overridden gas price to apply for the generated transactions for this request. GasPrice is in base units. - NearUnStakingRequestPOSTBody: - title: NEAR unstake - allOf: - - $ref: '#/components/schemas/UnStakingRequestPOSTBody' - type: object - properties: - amount: - description: Amount to stake in base units. + description: | + Indicates how the Policy Rule is locked. + + * 'LOCK_AFTER_DATE' - Will lock after the lockDate set on the Policy Rule. + * 'PERMANENT' - Is permanently locked. + enum: + - LOCK_AFTER_DATE + - PERMANENT + example: PERMANENT + lockDate: type: string - example: '12000000000000000000' - type: - description: Staking Request type = 'UNSTAKE'. + description: | + The date after which the Policy Rule will be locked. Only applicable if the Policy Rule is locked with + 'LOCK_AFTER_DATE'. + format: date-time + example: '2023-11-13T14:49:48.830522Z' + enterpriseId: type: string - example: UNSTAKE - required: - - amount - - type - SolUnStakingRequestPOSTBody: - title: SOL unstake - allOf: - - $ref: '#/components/schemas/UnStakingRequestPOSTBody' - type: object - properties: - type: - description: Staking Request type = 'UNSTAKE'. + description: The id of the Enterprise this Policy Rule belongs to. + example: 5d1a5f2c8f0a9c001a5f2c8f0ad00000 + lastTriggeredDate: type: string - example: UNSTAKE - delegationId: - description: The delegation ID representing the delegation to unstake. + description: | + The date when the Policy Rule was last triggered. Only applicable if the Policy Rule is locked with + 'LOCK_AFTER_DATE'. + format: date-time + example: '2023-11-13T14:49:48.830522Z' + lastTriggeredEvaluationId: type: string - required: - - type - DotUnStakingRequestPOSTBody: - title: DOT unstake - allOf: - - $ref: '#/components/schemas/UnStakingRequestPOSTBody' - type: object - properties: - type: - description: Staking Request type = 'UNSTAKE'. + description: | + The id of the Evaluation that last triggered the Policy Rule. A UUID. + example: 306258df-dcab-489e-a9fe-ff28ce9fa312 + createdBy: type: string - example: UNSTAKE - delegationId: - description: The delegation ID representing the delegation to unstake. + description: The id of the user who created the Policy Rule or the string \"BitGo\". + example: 5d1a5f2c8f0a9c001a5f2c8f0ad00000 + modifiedBy: type: string - amount: - description: Amount to unstake in base units. + description: The id of the user who last modified the Policy Rule or the string \"BitGo\". + example: 5d1a5f2c8f0a9c001a5f2c8f0ad00000 + createdDate: type: string - example: '10000000000' - required: - - type - CosmosLikeUnStakingRequestPOSTBody: - title: ATOM-like unstake - allOf: - - $ref: '#/components/schemas/UnStakingRequestPOSTBody' - type: object - properties: - delegationId: - description: Optional delegation ID representing the delegation to unstake. + description: The date when the Policy Rule was created. A timestamp. + format: date-time + example: '2023-11-13T14:49:48.830522Z' + modifiedDate: type: string - amount: - description: Amount to unstake in base units. + description: The date when the Policy Rule was last modified. A timestamp. + format: date-time + example: '2023-11-13T14:49:48.830522Z' + lockModifiedBy: type: string - example: '10000000000' - required: - - amount - AtomUnStakingRequestPOSTBody: - title: ATOM unstake + description: The id of the user who last modified the lock of the Policy Rule. + example: 5d1a5f2c8f0a9c001a5f2c8f0ad00000 + evaluationId: + type: string + description: | + The id of the Evaluation that was done when this Policy Rule version was requested to be created, modified + or deleted. A UUID. + example: 306258df-dcab-489e-a9fe-ff28ce9fa312 + PolicyRulesResults: + description: Paginated list of Policy Rules. allOf: - - $ref: '#/components/schemas/UnStakingRequestPOSTBody' + - $ref: '#/components/schemas/PaginatedResultsWithNextBatchPrevId' + - type: object + properties: + rules: + type: array + description: | + A list of Policy Rules matching the search criteria. + items: + $ref: '#/components/schemas/PolicyRule2' + TransferAmountConditionParameters: type: object - properties: - amount: - description: Amount to unstake in base units. - type: string - example: '10000000000' + description: Data required to evaluate the condition. required: + - operator - amount - EthStakingRequest: - title: ETH - allOf: - - $ref: '#/components/schemas/StakingRequest' - type: object + - coin properties: - gasPrice: + operator: type: string - description: User overridden gas price to apply for the generated transactions for this request. GasPrice is in base units. - delegations: - type: array - minItems: 1 - maxItems: 500 - items: - $ref: '#/components/schemas/EthStakingDelegation' - transactions: - type: array - minItems: 1 - maxItems: 500 - items: - $ref: '#/components/schemas/EthStakingTransaction' + enum: + - '>' + - '>=' + - < + - <= + description: The comparison operator to use when comparing the transfer amount with the given limit + example: '>' amount: - description: Amount to stake in base units (i.e. Wei for ETH). For Ethereum the amount needs to be a multiple of 32 ETH (32000000000000000000 Wei). For Testnet the 32 ETH multiple restriction does not apply. - type: string - MaticStakingRequest: - title: MATIC - allOf: - - $ref: '#/components/schemas/StakingRequest' - type: object - properties: - gasPrice: type: string - description: User overridden gas price to apply for the generated transactions for this request. GasPrice is in base units. - delegations: - type: array - minItems: 1 - maxItems: 500 - items: - $ref: '#/components/schemas/MaticStakingDelegation' - transactions: - type: array - minItems: 1 - maxItems: 500 - items: - $ref: '#/components/schemas/MaticStakingTransaction' - amount: - description: Amount to stake in base units (i.e. Wei for MATIC) + description: The transfer amount is compared with this limit. + example: '100000000' + coin: type: string - NearStakingRequest: - title: NEAR - allOf: - - $ref: '#/components/schemas/StakingRequest' + description: This condition only applies to transfers of this currency (USD applies to all transfers). + example: btc + TransferAmountConditionRequest: + title: Amount type: object + description: Transfer-amount condition. + required: + - name + - parameters properties: - delegations: - type: array - minItems: 1 - maxItems: 1 - items: - $ref: '#/components/schemas/NearStakingDelegation' - transactions: - type: array - minItems: 1 - maxItems: 500 - items: - $ref: '#/components/schemas/NearStakingTransaction' - amount: - description: Amount to stake in base units. + name: type: string - CosmosLikeStakingRequest: - title: ATOM like - allOf: - - $ref: '#/components/schemas/StakingRequest' + description: Name of the condition. + enum: + - transfer.amount + example: transfer.amount + parameters: + $ref: '#/components/schemas/TransferAmountConditionParameters' + operator: + $ref: '#/components/schemas/OperatorType' + TransferDestinationTypeConditionParameters: type: object + description: Data required to evaluate the transfer destination condition. + required: + - type properties: - delegations: - type: array - minItems: 1 - maxItems: 1 - items: - $ref: '#/components/schemas/CosmosLikeStakingDelegation' - transactions: - type: array - minItems: 1 - maxItems: 500 - items: - $ref: '#/components/schemas/CosmosLikeStakingTransaction' - amount: - description: Amount to stake in base units. + type: type: string - AtomStakingRequest: - title: ATOM - allOf: - - $ref: '#/components/schemas/StakingRequest' - type: object - properties: - delegations: - type: array - minItems: 1 - maxItems: 1 - items: - $ref: '#/components/schemas/AtomStakingDelegation' - transactions: - type: array - minItems: 1 - maxItems: 500 - items: - $ref: '#/components/schemas/AtomStakingTransaction' - amount: - description: Amount to stake in base units. + enum: + - whitelistedAddress + - nonWhitelistedAddress + description: The type of destination this condition will match. + example: whitelistedAddress + coin: type: string - SolStakingRequest: - title: SOL - allOf: - - $ref: '#/components/schemas/StakingRequest' + description: The asset this condition applies to. + example: btc + TransferDestinationTypeConditionRequest: + title: Destination type: object + description: Destination condition. + required: + - name + - parameters properties: - delegations: - type: array - minItems: 1 - maxItems: 1 - items: - $ref: '#/components/schemas/SolStakingDelegation' - transactions: - type: array - minItems: 1 - maxItems: 500 - items: - $ref: '#/components/schemas/SolStakingTransaction' - amount: - description: Amount to stake in base units. + name: type: string - DotStakingRequest: - title: DOT - allOf: - - $ref: '#/components/schemas/StakingRequest' + description: Name of the condition. + enum: + - transfer.destination.type + example: transfer.destination.type + parameters: + $ref: '#/components/schemas/TransferDestinationTypeConditionParameters' + operator: + $ref: '#/components/schemas/OperatorType' + TransferInitiatorsConditionParameters: type: object + description: Data required to evaluate the transfer initiator condition. + required: + - userIds properties: - delegations: - type: array - minItems: 1 - maxItems: 1 - items: - $ref: '#/components/schemas/DotStakingDelegation' - transactions: + userIds: type: array - minItems: 1 - maxItems: 500 items: - $ref: '#/components/schemas/DotStakingTransaction' - amount: - description: Amount to stake in base units. - type: string - AvaxPStakingRequest: - title: AVAXP - allOf: - - $ref: '#/components/schemas/StakingRequest' + type: string + description: A list of user IDs to validate for the transfer initiator. + example: '[659bdac013822ba1e8c60d8c497197c4, 63ebe51c12381c0007415e4f50bc95ce]' + TransferInitiatorsConditionRequest: + title: Initiator type: object + description: Initiator condition. + required: + - name + - parameters properties: - delegations: - type: array - minItems: 1 - maxItems: 1 - items: - $ref: '#/components/schemas/AvaxPStakingDelegation' - transactions: - type: array - minItems: 1 - maxItems: 500 - items: - $ref: '#/components/schemas/AvaxPStakingTransaction' - amount: - description: Amount to stake in base units. + name: type: string - durationSeconds: - description: The length of time in seconds to complete a staking period. - type: integer - StakingDelegationProperties: - type: object - properties: - delegationCycle: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: The number of cycles this delegation will be active. - endBurnBlockHeight: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: The end burn block height for this delegation. - StakingDelegation: + description: Name of the condition. + enum: + - transfer.initiators + example: transfer.initiators + parameters: + $ref: '#/components/schemas/TransferInitiatorsConditionParameters' + operator: + $ref: '#/components/schemas/OperatorType' + TransferVelocityLimitConditionParameters: type: object + description: Data required to evaluate the transfer velocity limit condition. + required: + - scope + - timeWindow + - amount + - coin properties: - id: - description: The staking request ID. - type: string - coin: - description: The staking asset. - type: string - walletId: - description: The ID of the wallet that the delegation is tied to. - type: string - delegationAddress: - description: The delegation address. - type: string - withdrawalAddress: - description: The withdrawal address. - type: string - delegated: - description: The delegation amount. - type: string - status: - description: The status of the delegation. - type: string - rewards: - description: The amount of rewards received over the lifetime. - type: string - lockedRewards: - description: The amount of locked rewards received. - type: string - pendingUnstake: - description: The amount that is pending unstake. - type: string - pendingStake: - description: The amount that is pending stake. - type: string - apy: - description: The estimated reward APY or APR if rewards are not compounding. + scope: type: string - unstakingFee: - description: The total fees needed in the wallet to unstake an amount from the delegation. + enum: + - wallet + - enterprise + description: Entities to include in the velocity calculation. + example: wallet + timeWindow: type: string - unstakingMin: - description: The minimum amount needed to unstake from the delegation. + description: A window of time in which a set of amount can be spent. + example: '60' + amount: type: string - properties: - allOf: - - $ref: '#/components/schemas/StakingDelegationProperties' - type: object - rewardCoin: - description: The coin in which rewards will be received. + description: The transfer amount is compared with this limit. + example: '100000000' + coin: type: string - EthStakingDelegation: - title: ETH - allOf: - - $ref: '#/components/schemas/StakingDelegation' - type: object - MaticStakingDelegation: - title: MATIC - allOf: - - $ref: '#/components/schemas/StakingDelegation' - type: object - properties: - unstakeable: - description: True if unable to unstake. - type: boolean - NearStakingDelegation: - title: NEAR - allOf: - - $ref: '#/components/schemas/StakingDelegation' - type: object - CosmosLikeStakingDelegation: - title: ATOM like - allOf: - - $ref: '#/components/schemas/StakingDelegation' - type: object - AtomStakingDelegation: - allOf: - - $ref: '#/components/schemas/StakingDelegation' - type: object - SolStakingDelegation: - title: SOL - allOf: - - $ref: '#/components/schemas/StakingDelegation' + description: The unit that the amount is denoted in, in either crypto or a fiat currency. + example: ETH + TransferVelocityLimitConditionRequest: + title: Velocity limit type: object - DotStakingDelegation: - title: DOT - allOf: - - $ref: '#/components/schemas/StakingDelegation' + description: Velocity-limit condition. + required: + - name + - parameters + properties: + name: + type: string + description: Name of the condition. + enum: + - transfer.velocity.limit + example: transfer.velocity.limit + parameters: + $ref: '#/components/schemas/TransferVelocityLimitConditionParameters' + operator: + $ref: '#/components/schemas/OperatorType' + TransferWebhookConditionParameters: type: object - AvaxPStakingDelegation: - allOf: - - $ref: '#/components/schemas/StakingDelegation' + description: Data required to evaluate the transfer webhook condition. + required: + - webhookUrl + properties: + webhookUrl: + type: string + description: The webhook url to post transfer payload to. + example: https://webhook.site/91561f7b-4141-4ee2-8336-e10650cd000f + coin: + type: string + description: The asset this condition applies to. + example: btc + TransferWebhookConditionRequest: + title: Webhook type: object - DelegationResults: + description: Transfer webhook condition. + required: + - name + - parameters + properties: + name: + type: string + description: Name of the condition. + enum: + - transfer.webhook + example: transfer.webhook + parameters: + $ref: '#/components/schemas/TransferWebhookConditionParameters' + WalletAdminAction: + title: Require wallet-admin approval type: object + description: Requires approval from one or more wallet admin. + required: + - name + - label + - description + - status + - adminOnly + - parameters properties: - delegations: + name: + type: string + description: The name of the action. + enum: + - approvals.customer.walletAdmin + example: approvals.customer.walletAdmin + label: + type: string + description: A label for the action which can be shown to an end user. + example: Wallet Admin + description: + type: string + description: A description for the action which can be shown to an end user. + example: Require approval from wallet admins + status: + type: string + description: | + Status of the action. Indicates if the Actions is usable 'ACTIVE' or not 'INACTIVE'. + + * 'ACTIVE' - The action is available for use. + * 'INACTIVE' - The action is NOT available for use. + enum: + - ACTIVE + - INACTIVE + example: ACTIVE + adminOnly: + type: boolean + description: true, if this is an internal action, false otherwise. + example: false + parameters: type: array - minItems: 1 - maxItems: 500 + description: A list of Parameters to control how the action behaves. items: - oneOf: - - $ref: '#/components/schemas/CosmosLikeStakingDelegation' - - $ref: '#/components/schemas/DotStakingDelegation' - - $ref: '#/components/schemas/EthStakingDelegation' - - $ref: '#/components/schemas/MaticStakingDelegation' - - $ref: '#/components/schemas/NearStakingDelegation' - - $ref: '#/components/schemas/SolStakingDelegation' - page: - type: integer - description: The page number for paging purposes. - totalPages: - type: integer - description: The total number of pages for paging purposes. - totalElements: - type: integer - description: The number of elements per page used for paging purposes. - EthStakingTransactionSendRequest: + anyOf: + - $ref: '#/components/schemas/MinRequireActionParameter' + WalletAdminActionRequest: + title: Require Require approval from wallet admins type: object + description: Require Require approval from wallet admins. + required: + - name + - parameters properties: - halfSigned: - description: A half-signed transaction object. + name: + type: string + description: Name of the associated Action. + enum: + - approvals.customer.walletAdmin + example: approvals.customer.walletAdmin + parameters: type: object + description: Required data needed to configure the Action. + required: + - minRequired properties: - contractSequenceId: - description: The contract sequence ID of the transaction. - type: string - eip1559: - description: Eip1559 Params - type: object - properties: - maxPriorityFeePerGas: - type: string - maxFeePerGas: - type: string - operationHash: - type: string - expireTime: - type: string - signature: + minRequired: type: string - comment: - type: string - EthStakingTransaction: - allOf: - - $ref: '#/components/schemas/StakingTransaction' + description: Number of required approvals + example: '1' + operator: + $ref: '#/components/schemas/OperatorType' + WalletAllFilteringCondition: + title: All wallets type: object + description: Filter by all wallets. + required: + - name properties: - buildParams: - $ref: '#/components/schemas/TransactionBuildParams' - MaticStakingTransaction: - allOf: - - $ref: '#/components/schemas/StakingTransaction' + name: + type: string + description: Name of the condition. + enum: + - wallet.all + example: wallet.all + WalletIdsFilteringCondition: + title: Wallet ID type: object + description: Filter by wallet ID. + required: + - name + - parameters properties: - gasPrice: - description: The gas limit in base units. + name: type: string - NearStakingTransaction: - allOf: - - $ref: '#/components/schemas/StakingTransaction' - type: object - CosmosLikeStakingTransaction: - allOf: - - $ref: '#/components/schemas/StakingTransaction' - type: object - AtomStakingTransaction: - allOf: - - $ref: '#/components/schemas/StakingTransaction' - type: object - SolStakingTransaction: - allOf: - - $ref: '#/components/schemas/StakingTransaction' - type: object - AvaxPStakingTransaction: - allOf: - - $ref: '#/components/schemas/StakingTransaction' - type: object - DotStakingTransaction: - allOf: - - $ref: '#/components/schemas/StakingTransaction' + description: Name of the condition. + enum: + - wallet.ids + example: wallet.ids + parameters: + type: object + description: Required data needed to evaluate the Filtering Condition. + required: + - walletId + properties: + walletId: + type: array + items: + type: string + description: The Wallet Ids this Filtering Condition will match. + WalletTypeFilteringCondition: + title: Wallet type type: object - DotWalletStakingStateAttributes: + description: Filter by wallet type. + required: + - name + - parameters + properties: + name: + type: string + description: Name of the condition. + enum: + - wallet.type + example: wallet.type + parameters: + type: object + description: Required data needed to evaluate the Filtering Condition. + required: + - walletType + properties: + walletType: + type: array + items: + type: string + enum: + - hot + - custodial + TradeUser: + required: + - email + - firstName + - id + - lastName type: object properties: - spendableAttributes: - $ref: '#/components/schemas/DotWalletStakingSpendableAttributes' - permissionAttributes: - $ref: '#/components/schemas/WalletStakingPermissionAttributes' - disclaimerAttributes: - $ref: '#/components/schemas/WalletStakingDisclaimerAttributes' - WalletStakingStateAttributes: + id: + type: string + format: uuid + firstName: + type: string + lastName: + type: string + email: + type: string + format: email + example: + id: a253c86c-1f0f-42cc-bcd0-2dcc5040b204 + firstName: Uncle + lastName: MoneyPenny + email: uncle.moneypenny@bitgo.com + Account1: + required: + - id + - name type: object properties: - spendableAttributes: - $ref: '#/components/schemas/DotWalletStakingSpendableAttributes' - permissionAttributes: - $ref: '#/components/schemas/WalletStakingPermissionAttributes' - disclaimerAttributes: - $ref: '#/components/schemas/WalletStakingDisclaimerAttributes' - DotWalletStakingSpendableAttributes: + id: + type: string + format: uuid + name: + type: string + example: + id: f230fdebfa084ffebc7e00515f54603f + name: Uncle MoneyPenny's Trading Wallet + Accounts: + type: array + items: + $ref: '#/components/schemas/Account1' + AccountBalance: + required: + - currency + - balance + - heldBalance + - tradableBalance + - withdrawableBalance type: object properties: - stakingSpendableAttributes: - $ref: '#/components/schemas/StakingSpendableAttributes' - unstakingSpendableAttributes: - $ref: '#/components/schemas/UnStakingSpendableAttributes' - AvaxpWalletStakingStateAttributes: + currency: + type: string + description: Currency symbol + balance: + type: string + format: decimal + description: The total balance in the account + heldBalance: + type: string + format: decimal + description: The total balance reserved for some purpose, e.g. a pending withdrawal + tradableBalance: + type: string + format: decimal + description: The total balance available for trading + withdrawableBalance: + type: string + format: decimal + description: The total balance available for withdrawal + example: + currencyId: 6016e0a9-545a-45fb-8370-caab1680956a + currency: BTC + balance: '100.0' + heldBalance: '10.0' + tradableBalance: '90.0' + AccountBalances: + type: array + items: + $ref: '#/components/schemas/AccountBalance' + Amount4: type: object + required: + - quantity + - currency properties: - stakingSpendableAttributes: - allOf: - - $ref: '#/components/schemas/StakingSpendableAttributes' - type: object - properties: - minDuration: - description: The minimum duration in seconds for staking period. - type: integer - maxDuration: - description: The maximum duration in seconds for staking period. - type: integer - unstakingSpendableAttributes: - $ref: '#/components/schemas/UnStakingSpendableAttributes' - WalletStakingPermissionAttributes: + quantity: + type: string + format: decimal + description: The specified quantity. + currency: + type: string + description: The specified quantity currency. + example: + quantity: '100.0' + currency: USD + FundingType: + type: string + enum: + - margin + - funded + description: The funding type of the order. Funded orders will be placed with the user's available balance. Margin orders will be placed with the user's margin balance. + default: funded + MarginNetOpenPosition: type: object + required: + - currency + - enterpriseId + - netOpenPosition + - netOpenPositionValue + - shortMarginPositionNotionalLimit + - longMarginPositionNotionalLimit + - unrealizedPnL + - lastModified properties: - walletPermissionAttributes: - $ref: '#/components/schemas/WalletPermissionAttributes' - stakingPermissionAttributes: - $ref: '#/components/schemas/StakingPermissionAttributes' - unstakingPermissionAttributes: - $ref: '#/components/schemas/UnstakingPermissionAttributes' - WalletStakingDisclaimerAttributes: + currency: + type: string + enterpriseId: + type: string + format: uuid + netOpenPosition: + type: number + format: decimal + netOpenPositionValue: + type: number + format: decimal + shortMarginPositionNotionalLimit: + $ref: '#/components/schemas/Amount4' + longMarginPositionNotionalLimit: + $ref: '#/components/schemas/Amount4' + unrealizedPnL: + $ref: '#/components/schemas/Amount4' + lastModified: + type: string + format: date-time + example: + currency: BTC + enterpriseId: 63925f940c259a00061853808ffea830 + netOpenPosition: -2.3242 + netOpenPositionValue: -124017.22 + shortMarginPositionNotionalLimit: + quantity: 1000000 + currency: USD + longMarginPositionNotionalLimit: + quantity: 1000000 + currency: USD + unrealizedPnL: + quantity: 1200 + currency: USD + lastModified: '2024-07-29T21:13:09.000Z' + MarginNetOpenPositionLimit: type: object + required: + - enterpriseId + - currency + - shortMarginPositionNotionalLimit + - longMarginPositionNotionalLimit properties: - stakingDisclaimerAttributes: - $ref: '#/components/schemas/StakingDisclaimerAttributes' - unstakingDisclaimerAttributes: - $ref: '#/components/schemas/UnstakingDisclaimerAttributes' - StakingSpendableAttributes: + enterpriseId: + type: string + currency: + type: string + shortMarginPositionNotionalLimit: + $ref: '#/components/schemas/Amount4' + longMarginPositionNotionalLimit: + $ref: '#/components/schemas/Amount4' + example: + enterpriseId: enterprise-123 + currency: BTC + shortMarginPositionNotionalLimit: + quantity: '1000000' + currency: USD + longMarginPositionNotionalLimit: + quantity: '2000000' + currency: USD + Order: + required: + - id + - accountId + - time + - creationDate + - completionDate + - type + - fundingType + - status + - product + - side + - quantity + - quantityCurrency + - filledQuantity + - filledQuoteQuantity + - averagePrice type: object properties: - max: - description: The maximum spendable amount. + id: + type: string + format: uuid + accountId: + type: string + clientOrderId: + type: string + time: + type: string + format: date-time + description: DEPRECATED + creationDate: + type: string + format: date-time + scheduledDate: + type: string + format: date-time + lastFillDate: + type: string + format: date-time + completionDate: + type: string + format: date-time + settleDate: + type: string + format: date-time + type: + type: string + fundingType: + $ref: '#/components/schemas/FundingType' + status: + $ref: '#/components/schemas/OrderStatus' + product: + type: string + description: Product name e.g. BTC-USD + side: + $ref: '#/components/schemas/Side' + quantity: type: string - min: - description: The minimum spendable amount. + format: decimal + description: The specified quantity. + quantityCurrency: type: string - fee: - description: The blockchain fee to submit the transactions needed to stake. + description: The specified quantity currency. + filledQuantity: type: string - netMax: - description: The maximum spendable amount minus fees. + format: decimal + description: The base quantity that was filled. + filledQuoteQuantity: type: string - netMin: - description: The net minimum spendable amount plus fees. + format: decimal + description: The quote quantity that was filled. + averagePrice: type: string - isStakingDurationNeeded: - description: True, if staking duration in seconds is required. - type: boolean - minStakeMore: - description: The minimum amount required to stake to the same validator. + format: decimal + limitPrice: + type: string + format: decimal + duration: type: integer - UnStakingSpendableAttributes: + description: Duration of the order in minutes. + twapInterval: + type: integer + description: Interval length of the TWAP order in minutes. + reason: + description: Reason for order cancellation. 'internalError' indicates an error occurred within the server while processing the order, resulting in an order cancellation. 'insufficientFunds' indicates that the order was cancelled due to shortage of funds to complete the transaction. + type: string + enum: + - internalError + - insufficientFunds + example: insufficientFunds + example: + id: 67fd640c-cb6c-4218-80ae-49e79ec15646 + accountId: 60e740e7898f7d00064d43769a73dc48 + clientOrderId: myorderid1 + time: {} + creationDate: {} + scheduledDate: {} + lastFillDate: {} + completionDate: {} + settleDate: {} + fundingType: funded + type: market + status: completed + product: BTC-USD + side: buy + quantity: '1000' + quantityCurrency: USD + filledQuantity: '0.02457152' + filledQuoteQuantity: '1000' + averagePrice: '40697.32' + Orders: + type: array + items: + $ref: '#/components/schemas/Order' + NewOrderRequest: + oneOf: + - $ref: '#/components/schemas/NewMarketOrderRequest' + - $ref: '#/components/schemas/NewLimitOrderRequest' + - $ref: '#/components/schemas/NewTWAPOrderRequest' + NewMarketOrderRequest: + title: Market + required: + - product + - quantity + - quantityCurrency + - side + - type + - fundingType type: object properties: - max: - description: The maximum spendable amount. + clientOrderId: type: string - min: - description: The minimum spendable amount. + description: Custom order ID. This must be a unique ID associated with an order and cannot be the same across multiple requests. + maxLength: 256 + product: type: string - fee: - description: The blockchain fee to submit the transactions needed to unstake. + description: Product name e.g. BTC-USD + type: type: string - multipleDelegations: - description: True, if more than one active staking delegation exists for a wallet. - type: boolean - WalletPermissionAttributes: + description: Must be set to "market" + fundingType: + $ref: '#/components/schemas/FundingType' + side: + $ref: '#/components/schemas/Side' + quantity: + type: string + format: decimal + quantityCurrency: + type: string + description: The quantity currency must be in quote currency for buy and base currency for sell. e.g. If product is BTC-USD, the base currency will be BTC. + example: + clientOrderId: myorder1 + type: market + product: BTC-USD + side: buy + quantity: '10000' + quantityCurrency: USD + NewLimitOrderRequest: + title: Limit + required: + - product + - quantity + - quantityCurrency + - side + - type + - limitPrice type: object properties: - hasEnoughAdmins: - description: True, if the wallet has enough admins to create a staking request. - type: boolean - numberOfRequiredAdmin: - description: The number of admins required to create a hot staking request. + clientOrderId: + type: string + description: Custom order ID. This must be a unique ID associated with an order and cannot be the same across multiple requests. + maxLength: 256 + product: + type: string + description: Product name e.g. BTC-USD + type: + type: string + description: Must be set to "limit" + fundingType: + $ref: '#/components/schemas/FundingType' + side: + $ref: '#/components/schemas/Side' + quantity: + type: string + format: decimal + quantityCurrency: + type: string + description: The quantity currency must be in the base currency for both buy and sell. e.g. If product is BTC-USD, the base currency will be BTC. + limitPrice: + type: string + format: decimal + duration: type: integer - StakingPermissionAttributes: + description: Duration of the limit order in minutes. For orders that are good till cancelled, skip duration and use timeInForce=GTC. + timeInForce: + type: string + description: Time in force for the order. GTC (Good Till Cancelled) is the only allowed value. + enum: + - GTC + example: + clientOrderId: myorder1 + type: limit + product: BTC-USD + side: buy + quantity: '1' + quantityCurrency: BTC + limitPrice: '10005' + duration: 60 + NewTWAPOrderRequest: + title: TWAP + required: + - product + - quantity + - quantityCurrency + - side + - type + - duration + - interval type: object properties: - enabled: - description: If the wallet has staking request submission permission. + clientOrderId: type: string - disabledReason: - description: The reason that staking request submission has been disabled. + description: Custom order ID. This must be a unique ID associated with an order and cannot be the same across multiple requests. + maxLength: 256 + product: type: string - UnstakingPermissionAttributes: - type: object - properties: - enabled: - description: If the wallet has unstaking request submission permission. + description: Product name e.g. BTC-USD + type: type: string - disabledReason: - description: The reason that unstaking request submission has been disabled. + description: Must be set to "twap" + fundingType: + $ref: '#/components/schemas/FundingType' + side: + $ref: '#/components/schemas/Side' + quantity: type: string - StakingDisclaimerAttributes: + format: decimal + quantityCurrency: + type: string + description: The quantity currency must be in quote currency for buy unless a limit price is specified, in which case buy orders can only be placed in the base currency. For sell, the quantity currency must be in base. e.g. If product is BTC-USD, the base currency will be BTC. + limitPrice: + type: string + format: decimal + duration: + type: integer + description: Duration of the TWAP order in minutes. + interval: + type: integer + description: Interval of the TWAP order in minutes. + scheduledDate: + type: string + format: date-time + example: + clientOrderId: myorder1 + type: twap + product: BTC-USD + side: buy + quantity: '100000' + quantityCurrency: USD + duration: 60 + interval: 5 + PrimeTrade: + required: + - id + - orderId + - time + - product + - side + - price + - quoteQuantity + - quantity + - settled type: object properties: - info: - description: Disclaimer info + id: type: string - transactionsNeeded: - description: The number of transactions needed for a staking request. - type: integer - UnstakingDisclaimerAttributes: + format: uuid + orderId: + type: string + format: uuid + time: + type: string + format: date-time + product: + type: string + description: Product name e.g. BTC-USD + side: + $ref: '#/components/schemas/Side' + price: + type: string + format: decimal + quoteQuantity: + type: string + format: decimal + description: Quote quantity, e.g. For BTC-USD product, 100.50 USD + quantity: + type: string + format: decimal + description: Base quantity, e.g. For BTC-USD product, 0.0045 BTC + settled: + type: boolean + example: + id: 7e0c768e-2d16-4c1e-b39d-06fa20009397 + orderId: d50ec984-77a8-460a-b958-66f114b0de9b + time: {} + side: buy + product: BTC-USD + quoteQuantity: '100.50' + price: '22333.33' + quantity: '0.0045' + settled: true + Trades: + type: array + items: + $ref: '#/components/schemas/PrimeTrade' + Currency: + required: + - id + - name + - symbol type: object properties: - info: - description: Disclaimer info + id: type: string - transactionsNeeded: - description: The number of transactions needed for an unstaking request. - type: integer - StakingWallet: + format: uuid + symbol: + type: string + name: + type: string + example: + id: 6016e0a9-545a-45fb-8370-caab1680956a + symbol: BTC + name: Bitcoin + Currencies: + type: array + items: + $ref: '#/components/schemas/Currency' + Product: + required: + - baseCurrencyId + - baseCurrency + - baseMinSize + - id + - isTradeDisabled + - isMarginTradeSupported + - name + - quoteCurrencyId + - quoteCurrency + - quoteIncrement + - quoteMinSize type: object properties: - enterpriseId: - description: The ID of the enterprise where the the staking request was created. + id: type: string - walletId: - description: The ID of the wallet where the staking request was created. + format: uuid + name: type: string - walletType: - description: The type of wallet the staking request was created from, either cold, custodial, or hot. + description: Product name e.g. BTC + baseCurrencyId: type: string - label: - description: The label of the wallet the staking request was created from. + format: uuid + baseCurrency: type: string - coin: - description: The staking asset. + description: Currency name e.g. BTC + quoteCurrencyId: type: string - delegated: - description: The delegated staked amount in base units. + format: uuid + quoteCurrency: type: string - pendingUnstake: - description: The amount that is actively being unstaked. + description: Currency name e.g. USD + baseMinSize: type: string - pendingStake: - description: The amount that is actively being staked. + format: decimal + baseMaxSize: type: string - spendableAttributes: - description: Spendable attributes - type: object - rewards: - description: The amount of rewards received in base units. + format: decimal + baseIncrement: type: string - lockedRewards: - description: The amout of locked rewards in base units. + format: decimal + quoteMinSize: type: string - apy: - description: The reward accrual annual percentage rate. The rate is estimated yearly based on the last 7 days using the same methodology as leading beacon chain validator aggregators (e.g. https://beaconcha.in/validators). + format: decimal + quoteIncrement: type: string - createdDate: - description: The date the staking request was created. + format: decimal + isTradeDisabled: + type: boolean + isMarginTradeSupported: + type: boolean + description: True if margin trading is supported for this product + example: + id: 86d09911-e58e-4f27-ac1f-91d5f9c79952 + name: BTC-USD + baseCurrencyId: 6016e0a9-545a-45fb-8370-caab1680956a + quoteCurrencyId: 7d5d1e8d-e6e1-4676-99af-190012515418 + baseCurrency: BTC + quoteCurrency: USD + baseMinSize: '0.001' + baseMaxSize: '10000.00' + quoteIncrement: '0.01' + Products: + type: array + items: + $ref: '#/components/schemas/Product' + Level1OrderBookSnapshot: + required: + - askPrice + - askSize + - bidPrice + - bidSize + - product + - time + type: object + properties: + time: type: string - modifiedDate: - description: The last date the staking wallet was modified. + format: date-time + product: + type: string + description: Product name e.g. BTC + bidPrice: + type: string + format: decimal + bidSize: + type: string + format: decimal + askPrice: + type: string + format: decimal + askSize: type: string + format: decimal + example: + time: {} + product: BTC-USD + bidPrice: '7090.96' + bidSize: '1.253433' + askPrice: '7090.97' + askSize: '25.23881' + Level2OrderBookSnapshot: required: - - enterpriseId - - walletId - - walletType - - label - - coin - - delegated - - pendingUnstake - - pendingStake - - rewards - - lockedRewards - - apy - - createdDate - - modifiedDate - StakingWalletsResponse: + - asks + - bids + - product + - time type: object properties: - stakingWallets: - description: An array of staking wallets. + time: + type: string + format: date-time + product: + type: string + description: Product name e.g. BTC + bids: type: array + description: An array of levels of [price, size] items: - $ref: '#/components/schemas/StakingWallet' - page: - type: integer - description: The page number for paging purposes. - totalPages: - type: integer - description: The total number of pages for paging purposes. - totalElements: - type: integer - description: The number of elements per page used for paging purposes. + type: string + format: decimal + asks: + type: array + description: An array of levels of [price, size] + items: + type: string + format: decimal + example: + time: {} + product: BTC-USD + bids: + - - '7090.96' + - '1.253433' + asks: + - - '7090.97' + - '25.23881' + OrderStatus: + type: string + enum: + - pending_open + - open + - completed + - pending_cancel + - canceled + - error + - scheduled + Error: required: - - stakingWallets - - page - - totalPages - - totalElements - StakingEnterprise: + - error + - errorName + - reqId + type: object + properties: + error: + type: string + errorName: + type: string + reqId: + type: string + example: + error: invalid permission + errorName: backend:common:forbidden + reqId: d41d4d21e63d63b293caf55f2a739a79 + Side: + description: Side of a trade, from the perspective of the requesting user + type: string + enum: + - buy + - sell + example: buy + StakingRequestPOSTBody: type: object properties: - enterpriseId: - description: The ID of the enterprise where the the staking request was created from. + clientId: + description: Optional user generated identifier to detect duplicated requests. type: string - coin: - description: The staking asset. + amount: + description: Amount to stake in base units (i.e. Wei for ETH). For Ethereum the amount must be a multiple of 32 ETH (32000000000000000000 Wei). For Testnet the 32 ETH multiple restriction does not apply. type: string - delegated: - description: The delegated staked amount in base units. + example: '32000000000000000000' + type: + description: Staking Request type = 'STAKE' type: string - rewards: - description: The reward accrual amount in base units. + example: STAKE + required: + - amount + - type + AvaxPStakingRequestPOSTBody: + title: AVAXP stake + allOf: + - $ref: '#/components/schemas/StakingRequestPOSTBody' + type: object + properties: + amount: + description: Amount to stake in base units. type: string - apy: - description: Reward accrual annual percentage rate. Estimated yearly based on the last 7 days. Same methodology as leading beacon chain validator aggregators (e.g. https://beaconcha.in/validators) + example: '1000' + type: + description: Staking Request type = 'STAKE'. type: string - StakingRewards: + example: STAKE + durationSeconds: + description: The length of time in seconds to complete a staking period. + type: integer + example: 604800 + required: + - amount + - type + - durationSeconds + EthStakingRequestPOSTBody: + title: ETH stake + allOf: + - $ref: '#/components/schemas/StakingRequestPOSTBody' type: object properties: - rewards: - description: An array of rewards. - type: array - items: - $ref: '#/components/schemas/StakingReward' - page: - type: integer - description: The page number for paging purposes. - totalPages: - type: integer - description: The total number of pages for paging purposes. - totalElements: - type: integer - description: The number of elements per page used for paging purposes. - StakingReward: + gasPrice: + type: string + description: User overridden gas price to apply for the generated transactions for this request. GasPrice is in base units. + MaticStakingRequestPOSTBody: + title: MATIC stake + allOf: + - $ref: '#/components/schemas/StakingRequestPOSTBody' type: object properties: - reward: - description: The reward in base units. + gasPrice: type: string - walletId: - description: The wallet ID. + description: User overridden gas price to apply for the generated transactions for this request. GasPrice is in base units. + NearStakingRequestPOSTBody: + title: NEAR stake + allOf: + - $ref: '#/components/schemas/StakingRequestPOSTBody' + type: object + properties: + amount: + description: Amount to stake in base units. type: string - enterpriseId: - description: The enterprise ID. + example: '12000000000000000000' + SolStakingRequestPOSTBody: + title: SOL stake + allOf: + - $ref: '#/components/schemas/StakingRequestPOSTBody' + type: object + properties: + amount: + description: Amount to stake in base units. type: string - date: - description: The date and time of the reward. + example: '1000' + DotStakingRequestPOSTBody: + title: DOT stake + allOf: + - $ref: '#/components/schemas/StakingRequestPOSTBody' + type: object + properties: + amount: + description: Amount to stake in base units. type: string - format: date-time - required: - - reward - - date - DelegationAccruals: + example: '10000000000' + CosmosLikeStakingRequestPOSTBody: + title: ATOM-like stake + allOf: + - $ref: '#/components/schemas/StakingRequestPOSTBody' type: object properties: - accruals: - description: An array of delegation accruals. - type: array - items: - $ref: '#/components/schemas/DelegationAccrual' - page: - type: integer - description: The page number for paging purposes. - totalPages: - type: integer - description: The total number of pages for paging purposes. - totalElements: - type: integer - description: The number of elements per page used for paging purposes. - DelegationAccrual: + validator: + description: The validator to delegate to. + type: string + example: 017234b285929170324e1051ccd887dc08adf049650ecf5d383985b0b0048ab39b + required: + - validator + AtomStakingRequestPOSTBody: + title: ATOM stake + allOf: + - $ref: '#/components/schemas/StakingRequestPOSTBody' + type: object + UnStakingRequestPOSTBody: type: object properties: - rewardsReceived: - description: The total rewards received over the lifetime of the wallet. + clientId: + description: Optional user generated identifier to detect duplicated requests. type: string - delegated: - description: The total rewards delegated (staked). + type: + description: Staking Request type = 'UNSTAKE'. type: string - pendingDelegated: - description: The total amount pending to be delegated (staked). + example: UNSTAKE + required: + - type + MaticUnStakingRequestPOSTBody: + title: MATIC unstake + allOf: + - $ref: '#/components/schemas/UnStakingRequestPOSTBody' + type: object + properties: + gasPrice: type: string - pendingUndelegated: - description: Total amount pending to be undelegated (unstaked). + description: User overridden gas price to apply for the generated transactions for this request. GasPrice is in base units. + NearUnStakingRequestPOSTBody: + title: NEAR unstake + allOf: + - $ref: '#/components/schemas/UnStakingRequestPOSTBody' + type: object + properties: + amount: + description: Amount to stake in base units. type: string - spendable: - description: Total spendable (withdrawable) amount in the wallet. + example: '12000000000000000000' + type: + description: Staking Request type = 'UNSTAKE'. type: string - locked: - description: The total amount locked but not delegated (staked). Example is staking rewards that are not re-staked and compounding. + example: UNSTAKE + required: + - amount + - type + SolUnStakingRequestPOSTBody: + title: SOL unstake + allOf: + - $ref: '#/components/schemas/UnStakingRequestPOSTBody' + type: object + properties: + type: + description: Staking Request type = 'UNSTAKE'. type: string + example: UNSTAKE delegationId: - description: The delegation ID. + description: The delegation ID representing the delegation to unstake. type: string - delegationAddress: - description: The delegation address. + required: + - type + DotUnStakingRequestPOSTBody: + title: DOT unstake + allOf: + - $ref: '#/components/schemas/UnStakingRequestPOSTBody' + type: object + properties: + type: + description: Staking Request type = 'UNSTAKE'. type: string - withdrawalAddress: - description: The withdrawal address. + example: UNSTAKE + delegationId: + description: The delegation ID representing the delegation to unstake. type: string - walletId: - description: The wallet ID. + amount: + description: Amount to unstake in base units. type: string - enterpriseId: - description: The enterprise ID. + example: '10000000000' + required: + - type + CosmosLikeUnStakingRequestPOSTBody: + title: ATOM-like unstake + allOf: + - $ref: '#/components/schemas/UnStakingRequestPOSTBody' + type: object + properties: + delegationId: + description: Optional delegation ID representing the delegation to unstake. type: string - coin: - description: The staking asset. + amount: + description: Amount to unstake in base units. type: string - date: - description: The date and time of the accrual record. + example: '10000000000' + required: + - amount + AtomUnStakingRequestPOSTBody: + title: ATOM unstake + allOf: + - $ref: '#/components/schemas/UnStakingRequestPOSTBody' + type: object + properties: + amount: + description: Amount to unstake in base units. type: string - format: date-time - TransactionBuildParams: + example: '10000000000' + required: + - amount + EthStakingRequest: + title: ETH + allOf: + - $ref: '#/components/schemas/StakingRequest' type: object properties: - recipients: - description: Recipient build params data - type: object - properties: - amount: - description: The amount to stake in base units. - type: string - address: - description: The address. - type: string - data: - description: The staking data (ABI format). - type: string - stakingParams: - description: Staking params - type: object - properties: - requestId: - type: string - amount: - description: The amount to stake in base units. - type: string - validator: - description: The validator address. - type: string - actionType: - description: The action type (e.g. delegate). - type: string gasPrice: - description: The Gas price in base units. type: string - gasLimit: - description: The Gas limit in base units. + description: User overridden gas price to apply for the generated transactions for this request. GasPrice is in base units. + delegations: + type: array + minItems: 1 + maxItems: 500 + items: + $ref: '#/components/schemas/EthStakingDelegation' + transactions: + type: array + minItems: 1 + maxItems: 500 + items: + $ref: '#/components/schemas/EthStakingTransaction' + amount: + description: Amount to stake in base units (i.e. Wei for ETH). For Ethereum the amount needs to be a multiple of 32 ETH (32000000000000000000 Wei). For Testnet the 32 ETH multiple restriction does not apply. type: string - StakingRequestsResponse: + MaticStakingRequest: + title: MATIC + allOf: + - $ref: '#/components/schemas/StakingRequest' type: object properties: - requests: + gasPrice: + type: string + description: User overridden gas price to apply for the generated transactions for this request. GasPrice is in base units. + delegations: type: array minItems: 1 maxItems: 500 items: - oneOf: - - $ref: '#/components/schemas/EthStakingRequestWithTransactions' - - $ref: '#/components/schemas/NearStakingRequestWithTransactions' - - $ref: '#/components/schemas/CosmosLikeStakingRequestWithTransactions' - - $ref: '#/components/schemas/AtomStakingRequestWithTransactions' - - $ref: '#/components/schemas/SolStakingRequestWithTransactions' - - $ref: '#/components/schemas/DotStakingRequestWithTransactions' - - $ref: '#/components/schemas/MaticStakingRequest' - page: - type: integer - description: The page number for paging purposes. - totalPages: - type: integer - description: The total number of pages for paging purposes. - totalElements: - type: integer - description: The number of elements per page used for paging purposes. - StakingRequestsListResponse: - type: object - properties: - requests: + $ref: '#/components/schemas/MaticStakingDelegation' + transactions: type: array minItems: 1 maxItems: 500 items: - oneOf: - - $ref: '#/components/schemas/EthStakingRequest' - - $ref: '#/components/schemas/MaticStakingRequest' - - $ref: '#/components/schemas/NearStakingRequest' - - $ref: '#/components/schemas/CosmosLikeStakingRequest' - - $ref: '#/components/schemas/AtomStakingRequest' - - $ref: '#/components/schemas/SolStakingRequest' - - $ref: '#/components/schemas/DotStakingRequest' - EthStakingRequestWithTransactions: - title: ETH - allOf: - - $ref: '#/components/schemas/EthStakingRequest' - - type: object - properties: - transactions: - type: array - items: - oneOf: - - $ref: '#/components/schemas/EthStakingTransaction' - NearStakingRequestWithTransactions: + $ref: '#/components/schemas/MaticStakingTransaction' + amount: + description: Amount to stake in base units (i.e. Wei for MATIC) + type: string + NearStakingRequest: title: NEAR allOf: - - $ref: '#/components/schemas/NearStakingRequest' - - type: object - properties: - transactions: - type: array - items: - oneOf: - - $ref: '#/components/schemas/NearStakingTransaction' - CosmosLikeStakingRequestWithTransactions: - title: ATOM like - allOf: - - $ref: '#/components/schemas/CosmosLikeStakingRequest' - - type: object - properties: - transactions: - type: array - items: - oneOf: - - $ref: '#/components/schemas/CosmosLikeStakingTransaction' - AtomStakingRequestWithTransactions: - title: ATOM - allOf: - - $ref: '#/components/schemas/AtomStakingRequest' - - type: object - properties: - transactions: - type: array - items: - oneOf: - - $ref: '#/components/schemas/AtomStakingTransaction' - SolStakingRequestWithTransactions: - title: SOL - allOf: - - $ref: '#/components/schemas/SolStakingRequest' - - type: object - properties: - transactions: - type: array - items: - oneOf: - - $ref: '#/components/schemas/SolStakingTransaction' - DotStakingRequestWithTransactions: - title: DOT - allOf: - - $ref: '#/components/schemas/DotStakingRequest' - - type: object - properties: - transactions: - type: array - items: - oneOf: - - $ref: '#/components/schemas/DotStakingTransaction' - StakeableCoinsResult: - title: Stakeable coins + - $ref: '#/components/schemas/StakingRequest' type: object properties: - coins: + delegations: type: array + minItems: 1 + maxItems: 1 items: - $ref: '#/components/schemas/StakeableCoins' - page: - type: integer - totalPages: - type: integer - totalElements: - type: integer - StakingError: - title: Staking Error - type: object - properties: - error: - type: string - errorName: - type: string - reqId: - type: string - context: - type: object - CoinsUnauthorizedError: - type: object - properties: - error: - type: string - errorName: - type: string - reqId: - type: string - context: - type: object - properties: - errorName: - type: string - StakeableCoins: - type: object - properties: - symbol: - type: string - baseUnit: - type: string - isToken: - type: boolean - isTss: - type: boolean - isMultiSig: - type: boolean - l1Chain: - type: string - StakingValidator: - type: object - properties: - delegationAddress: - description: The delegation address. - type: string - coin: - description: The staked coin. - type: string - delegated: - description: The total delegated amount in base units. - type: string - rewards: - description: The reward accrual amount in base units. - type: string - apy: - description: The annual percentage yield. - type: string - type: - description: The validator provider used for staking. - type: string - rewardCoin: - description: The coin in which rewards will be received. + $ref: '#/components/schemas/NearStakingDelegation' + transactions: + type: array + minItems: 1 + maxItems: 500 + items: + $ref: '#/components/schemas/NearStakingTransaction' + amount: + description: Amount to stake in base units. type: string - StakingValidatorsResponse: + CosmosLikeStakingRequest: + title: ATOM like + allOf: + - $ref: '#/components/schemas/StakingRequest' type: object properties: - validators: + delegations: + type: array + minItems: 1 + maxItems: 1 + items: + $ref: '#/components/schemas/CosmosLikeStakingDelegation' + transactions: type: array minItems: 1 maxItems: 500 items: - allOf: - - $ref: '#/components/schemas/StakingValidator' - - type: object - page: - type: integer - description: The page number for paging purposes. - totalPages: - type: integer - description: The total number of pages for paging purposes. - totalElements: - type: integer - description: The number of elements per page used for paging purposes. - StakingPartneredValidator: + $ref: '#/components/schemas/CosmosLikeStakingTransaction' + amount: + description: Amount to stake in base units. + type: string + AtomStakingRequest: + title: ATOM + allOf: + - $ref: '#/components/schemas/StakingRequest' type: object properties: - delegationAddress: - description: The delegation address. - type: string - type: - description: The validator provider. - type: string - totalStaked: - description: The total staked amount in base units. - type: string - rewards: - description: The reward accrual amount in base units. - type: string - apy: - description: The annual percentage yield. - type: string - commission: - description: The fee charged by the validator as a percentage. - type: string - coin: - description: The staked coin. - type: string - avses: - description: The validator's actively validated services (AVS) for restaking. + delegations: type: array + minItems: 1 + maxItems: 1 items: - type: string - historicRatePerformance: - description: The validator's historical reward rate for the last 30 days. + $ref: '#/components/schemas/AtomStakingDelegation' + transactions: + type: array + minItems: 1 + maxItems: 500 + items: + $ref: '#/components/schemas/AtomStakingTransaction' + amount: + description: Amount to stake in base units. type: string - StakingPartneredValidatorsResponse: + SolStakingRequest: + title: SOL + allOf: + - $ref: '#/components/schemas/StakingRequest' type: object properties: - validators: + delegations: + type: array + minItems: 1 + maxItems: 1 + items: + $ref: '#/components/schemas/SolStakingDelegation' + transactions: type: array minItems: 1 maxItems: 500 items: - allOf: - - $ref: '#/components/schemas/StakingPartneredValidator' - - type: object - page: - type: integer - description: The page number for paging purposes. - totalPages: - type: integer - description: The total number of pages for paging purposes. - totalElements: - type: integer - description: The number of elements per page used for paging purposes. - StakingLicense: + $ref: '#/components/schemas/SolStakingTransaction' + amount: + description: Amount to stake in base units. + type: string + DotStakingRequest: + title: DOT + allOf: + - $ref: '#/components/schemas/StakingRequest' type: object properties: - coin: - description: The name of the coin. - type: string - fee: - description: The corresponding fee for coin in current license. + delegations: + type: array + minItems: 1 + maxItems: 1 + items: + $ref: '#/components/schemas/DotStakingDelegation' + transactions: + type: array + minItems: 1 + maxItems: 500 + items: + $ref: '#/components/schemas/DotStakingTransaction' + amount: + description: Amount to stake in base units. type: string - StakingLicenseResponse: + AvaxPStakingRequest: + title: AVAXP + allOf: + - $ref: '#/components/schemas/StakingRequest' type: object properties: - enterpriseId: - type: string - description: The enterprise ID. - defaultFee: - type: string - description: The default fee for the asset. - fees: + delegations: + type: array + minItems: 1 + maxItems: 1 + items: + $ref: '#/components/schemas/AvaxPStakingDelegation' + transactions: type: array minItems: 1 maxItems: 500 items: - allOf: - - $ref: '#/components/schemas/StakingLicense' - - type: object - StakingRequest: - title: Staking Request + $ref: '#/components/schemas/AvaxPStakingTransaction' + amount: + description: Amount to stake in base units. + type: string + durationSeconds: + description: The length of time in seconds to complete a staking period. + type: integer + StakingDelegationProperties: + type: object + properties: + delegationCycle: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: The number of cycles this delegation will be active. + endBurnBlockHeight: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: The end burn block height for this delegation. + StakingDelegation: type: object properties: id: - description: Staking request ID. - type: string - clientId: - description: Optional clientId if passed into the request. - type: string - requestingUserId: - description: The ID of the user that created the staking request. + description: The staking request ID. type: string - enterpriseId: - description: The ID of the enterprise where the the staking request was created. + coin: + description: The staking asset. type: string walletId: - description: The ID of the wallet where the staking request was created. - type: string - withdrawalAddress: - description: Withdrawal Address + description: The ID of the wallet that the delegation is tied to. type: string - walletType: - description: The type of wallet the staking request was created from either cold, custodial, or hot. + delegationAddress: + description: The delegation address. type: string - type: - $ref: '#/components/schemas/StakingRequestType' - coin: - description: The coin to be staked (ETH, MATIC, NEAR, SOL). + withdrawalAddress: + description: The withdrawal address. type: string - createdDate: - description: The date the staking request was created. + delegated: + description: The delegation amount. type: string - format: date-time status: - $ref: '#/components/schemas/StakingRequestStatus' - statusModifiedDate: - description: The last date the status changed. + description: The status of the delegation. type: string - error: - description: The reason the staking request failed. + rewards: + description: The amount of rewards received over the lifetime. type: string - totalStaked: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: The sum of the amounts of all confirmed staking transactions in this request. - delegationCycle: - allOf: - - $ref: '#/components/schemas/IntegerString' - description: The number of cycles this staking request will be active. - required: - - id - - requestingUserId - - enterpriseId - - walletId - - withdrawalAddress - - walletType - - type - - coin - - createdDate - - status - - statusModifiedDate - StakingRequestStatus: - title: Staking Request Status - description: The status of the staking request. For ETH the status will change from NEW to READY when a validator has been assigned to the wallet's address. - type: string - enum: - - NEW - - PENDING_VALIDATORS - - READY - - PENDING_APPROVAL - - PENDING_BITGO_TRUST_APPROVAL - - PENDING - - FAILED - - REJECTED - - VALIDATOR_ACTIVATING - - PARTIAL_CONFIRMED - - CONFIRMED - - COOLDOWN - - WARMUP - - DELAYED_COOLDOWN - - DELAYED_WARMUP - - ETH_PARTIAL_EXITED - - ETH_EXITED - StakingRequestType: - title: Staking Request Type - description: The type of staking request. - type: string - enum: - - STAKE - - UNSTAKE - - CLAIM_REWARDS - - SWITCH_VALIDATOR - - CHECKPOINT - - UNSUPPORTED - StakingTransaction: - title: Staking Transaction - type: object - properties: - id: - description: The staking transaction ID. + lockedRewards: + description: The amount of locked rewards received. type: string - stakingRequestId: - description: The staking request ID. + pendingUnstake: + description: The amount that is pending unstake. type: string - transactionType: - allOf: - - $ref: '#/components/schemas/StakingTransactionType' - - type: string - description: The transaction type (delegate). - txHash: - description: The transaction hash. + pendingStake: + description: The amount that is pending stake. type: string - createdDate: - description: The date the transaction was created. + apy: + description: The estimated reward APY or APR if rewards are not compounding. type: string - format: date-time - status: - $ref: '#/components/schemas/StakingTransactionStatus' - statusModifiedDate: - description: The last date the status changed. + unstakingFee: + description: The total fees needed in the wallet to unstake an amount from the delegation. type: string - format: date-time - error: - description: The reason the transaction failed. + unstakingMin: + description: The minimum amount needed to unstake from the delegation. type: string - amount: + properties: allOf: - - $ref: '#/components/schemas/IntegerString' - description: The transaction Amount in base units (i.e. Wei for ETH). - delegationId: - description: The staking delegation the transaction is acting on. - type: string - pendingApprovalId: - description: Pending Approval ID - type: string - transferId: - description: Transfer ID - type: string - txRequestId: - description: Transaction Request ID for the Transaction Request API + - $ref: '#/components/schemas/StakingDelegationProperties' + type: object + rewardCoin: + description: The coin in which rewards will be received. type: string - required: - - stakingRequestId - - transactionType - - createdDate - - status - - statusModifiedDate - - delegationId - - amount - StakingTransactionStatus: - title: Staking Transaction Status - description: The status of the transaction, either NEW, READY, INITIATED, CONFIRMED, or REJECTED. - type: string - enum: - - WAITING - - READY - - SENDING - - PENDING_APPROVAL - - PENDING_BITGO_TRUST_APPROVAL - - REJECTED - - PENDING - - FAILED - - CONFIRMED - - VALIDATOR_ACTIVATING - - DELAYED_READY - StakingTransactionType: - title: Staking Transaction Type - description: The type of staking transaction. - type: string - enum: - - delegate - - reward - - undelegate - - withdraw_undelegated - - authorize - - '' - TransactionRequestLite2: - title: TransactionRequestLite + EthStakingDelegation: + title: ETH allOf: - - type: object - properties: - intent: - allOf: - - $ref: '#/components/schemas/TransactionIntent1' - description: The intent of the transaction request - unsignedTxs: - type: array - items: - type: object - properties: - parsedTx: - $ref: '#/components/schemas/ParsedTx' - serializedTxHex: - type: string - description: The unsigned transaction as a hex string. - signableHex: - type: string - description: The portion of a transaction used to generate a signature (may or may not be the same as serializedTxHex) as a hex string. - derivationPath: - type: string - description: A bip32 path. - coinSpecific: - allOf: - - type: object - properties: - nonceAddress: - type: string - stakingAddress: - type: string - - type: object - additionalProperties: {} - description: Coin specific information. - feeInfo: - type: object - properties: - fee: - oneOf: - - type: string - - type: number - feeString: - type: string - required: - - fee - - feeString - required: - - parsedTx - - serializedTxHex - - signableHex - description: Holds all unsigned transactions that will be used to fulfill the TxRequest for MPC wallets. - signatureShares: - type: array - items: - allOf: - - type: object - properties: - vssProof: - type: string - description: The VSS proof of the signature share - privateShareProof: - type: string - description: The private share proof - publicShare: - type: string - description: The public share - - $ref: '#/components/schemas/SignatureShareWithoutVssProof' - description: Only used for MPC coins. This is used to collect signature shares from and exchange them with the user. - commitmentShares: - type: array - items: - allOf: - - type: object - properties: - type: - type: string - enum: - - commitment - description: The type of the commitment share - required: - - type - - $ref: '#/components/schemas/BaseShare' - description: Only used for MPC coins on EdDSA curve. This is used to collect commitment shares from and exchange them with the user. - txHashes: - type: array - items: - type: string - description: The hashes of all transactions from the TxRequest that have been signed and are pending broadcast. - - $ref: '#/components/schemas/TransactionRequestBase' - TransactionIntent1: - title: TransactionIntent - oneOf: - - $ref: '#/components/schemas/AdaConsolidateIntent' - - $ref: '#/components/schemas/AdaPaymentIntent' - - $ref: '#/components/schemas/AdaStakeClaimRewardsIntent' - - $ref: '#/components/schemas/AdaStakeIntent' - - $ref: '#/components/schemas/AdaUnstakeIntent' - - $ref: '#/components/schemas/AdaVoteDelegationIntent' - - $ref: '#/components/schemas/AtomPaymentIntent' - - $ref: '#/components/schemas/AtomStakeIntent' - - $ref: '#/components/schemas/AtomUnstakeIntent' - - $ref: '#/components/schemas/AtomWithdrawIntent' - - $ref: '#/components/schemas/BscDelegateIntent' - - $ref: '#/components/schemas/BscUnDelegateIntent' - - $ref: '#/components/schemas/BscWithdrawUndelegateIntent' - - $ref: '#/components/schemas/CosmosPaymentIntent' - - $ref: '#/components/schemas/CosmosStakeIntent' - - $ref: '#/components/schemas/CosmosSwitchValidatorIntent' - - $ref: '#/components/schemas/CosmosUnstakeIntent' - - $ref: '#/components/schemas/CosmosWithdrawIntent' - - $ref: '#/components/schemas/DotConsolidateIntent' - - $ref: '#/components/schemas/DotCreateAccountIntent' - - $ref: '#/components/schemas/DotPaymentIntent' - - $ref: '#/components/schemas/DotStakingIntent' - - $ref: '#/components/schemas/DotUnstakingIntent' - - $ref: '#/components/schemas/DotWithdrawStakeIntent' - - $ref: '#/components/schemas/EthAccelerationIntent' - - $ref: '#/components/schemas/EthConsolidateIntent' - - $ref: '#/components/schemas/EthConsolidateTokenIntent' - - $ref: '#/components/schemas/EthFillNonceIntent' - - $ref: '#/components/schemas/EthPaymentIntent' - - $ref: '#/components/schemas/EthStakingIntent' - - $ref: '#/components/schemas/EthTransferTokenIntent' - - $ref: '#/components/schemas/LightningPaymentIntent' - - $ref: '#/components/schemas/MmiSignMessageIntent' - - $ref: '#/components/schemas/MmiSignTransactionIntent' - - $ref: '#/components/schemas/NearStakeIntent' - - $ref: '#/components/schemas/NearUnstakeIntent' - - $ref: '#/components/schemas/NearWithdrawIntent' - - $ref: '#/components/schemas/SolAuthorizeIntent' - - $ref: '#/components/schemas/SolClaimIntent' - - $ref: '#/components/schemas/SolCloseAssociatedTokenAccountIntent' - - $ref: '#/components/schemas/SolConsolidateIntent' - - $ref: '#/components/schemas/SolCreateAssociatedTokenAccountIntent' - - $ref: '#/components/schemas/SolDeactivateIntent' - - $ref: '#/components/schemas/SolDelegateIntent' - - $ref: '#/components/schemas/SolPaymentIntent' - - $ref: '#/components/schemas/SolStakeIntent' - - $ref: '#/components/schemas/SolUnstakeIntent' - - $ref: '#/components/schemas/SuiConsolidateIntent' - - $ref: '#/components/schemas/SuiCustomTxIntent' - - $ref: '#/components/schemas/SuiPaymentIntent' - - $ref: '#/components/schemas/SuiStakingIntent' - - $ref: '#/components/schemas/SuiUnstakingIntent' - - $ref: '#/components/schemas/TonConsolidateIntent' - - $ref: '#/components/schemas/TonDelegateIntent' - - $ref: '#/components/schemas/TonPaymentIntent' - - $ref: '#/components/schemas/TonUndelegateIntent' - - $ref: '#/components/schemas/WalletRecoveryIntent' - - $ref: '#/components/schemas/BaseStakeIntentWithCalldata' - - $ref: '#/components/schemas/CoreDaoDelegateIntent' - - $ref: '#/components/schemas/CoreDaoUndelegateIntent' - - $ref: '#/components/schemas/CoreDaoClaimIntent' - - $ref: '#/components/schemas/EthLikeStakeIntent' - - $ref: '#/components/schemas/BeraDelegateIntent' - - $ref: '#/components/schemas/BaseIntent' - ExchangeEddsaCommitmentsResponse: - title: ExchangeEddsaCommitmentsResponse + - $ref: '#/components/schemas/StakingDelegation' + type: object + MaticStakingDelegation: + title: MATIC + allOf: + - $ref: '#/components/schemas/StakingDelegation' type: object properties: - commitmentShare: - allOf: - - $ref: '#/components/schemas/CommitmentShare1' - description: The commitment share. - required: - - commitmentShare - CommitmentShare1: - title: CommitmentShare + unstakeable: + description: True if unable to unstake. + type: boolean + NearStakingDelegation: + title: NEAR allOf: - - type: object - properties: - type: - type: string - enum: - - commitment - description: The type of the commitment share - required: - - type - - $ref: '#/components/schemas/BaseShare' - EncryptedShare: - title: EncryptedShare + - $ref: '#/components/schemas/StakingDelegation' + type: object + CosmosLikeStakingDelegation: + title: ATOM like allOf: - - type: object - properties: - type: - $ref: '#/components/schemas/ShareType' - required: - - type - - $ref: '#/components/schemas/BaseShare' - ShareType: - title: ShareType - type: string - enum: - - encryptedSignerShare - - encryptedRShare - TransactionRequestIdNonEmptyString: - title: TransactionRequestIdNonEmptyString - type: string - example: 123e4567-e89b-12d3-a456-426614174000 - minLength: 1 - format: uuid - CreateBitgoChallengeResponse: - title: CreateBitgoChallengeResponse + - $ref: '#/components/schemas/StakingDelegation' + type: object + AtomStakingDelegation: + allOf: + - $ref: '#/components/schemas/StakingDelegation' + type: object + SolStakingDelegation: + title: SOL + allOf: + - $ref: '#/components/schemas/StakingDelegation' + type: object + DotStakingDelegation: + title: DOT + allOf: + - $ref: '#/components/schemas/StakingDelegation' + type: object + AvaxPStakingDelegation: + allOf: + - $ref: '#/components/schemas/StakingDelegation' + type: object + DelegationResults: type: object properties: - ntilde: - type: string - description: Range proof challenge value - example: e8be92b67d852d83c4e57a4c25139cbab1801654408c4260ca21d480ea5425a7a7778b30d52c24eed11363a6f7bf1efa986747a2016b91e84b9a7d49b723644f4488ec15c64d83289b1fa73a6607544a2c1964d31931ae9c0f4b5c66a0099f82d52a73d4d7a251a29f279c7f053cc0064989479d9b6d900e92641555683efadad5f08a68a6763102a7a14d4d5aecc6620587ceedb28db338858326fdad35e1b2db54b8a7679d8cad36d88c63c61aff15121c6ec06a724e16980fd334cdbbea8885f88e8a509a42b093361e3152bcf391e3a723ceb4786362fcad9c4945a372d617bebe077e1c7ee49ac81701c06ef126e1178b779f1f4be4b1a3616c3c1821b26ead5cc7b1442216162077fb125a4c9250001797e3a224c79f5cd5a78226a9192000bc584bf479aa1dd83d56628860619778a0c6d9801e2680349ccde39e604af6f1e75226c58d6f608c420eb8091def8d3c7a9a59414e9b9a1df542929c81165a46555f5f51c1cb080f04a9ccc74a5d1e3b053e1e2e4b8566d1a7995478a589 - h1: - type: string - description: Range proof challenge value - example: e8be92b67d852d83c4e57a4c25139cbab1801654408c4260ca21d480ea5425a7a7778b30d52c24eed11363a6f7bf1efa986747a2016b91e84b9a7d49b723644f4488ec15c64d83289b1fa73a6607544a2c1964d31931ae9c0f4b5c66a0099f82d52a73d4d7a251a29f279c7f053cc0064989479d9b6d900e92641555683efadad5f08a68a6763102a7a14d4d5aecc6620587ceedb28db338858326fdad35e1b2db54b8a7679d8cad36d88c63c61aff15121c6ec06a724e16980fd334cdbbea8885f88e8a509a42b093361e3152bcf391e3a723ceb4786362fcad9c4945a372d617bebe077e1c7ee49ac81701c06ef126e1178b779f1f4be4b1a3616c3c1821b26ead5cc7b1442216162077fb125a4c9250001797e3a224c79f5cd5a78226a9192000bc584bf479aa1dd83d56628860619778a0c6d9801e2680349ccde39e604af6f1e75226c58d6f608c420eb8091def8d3c7a9a59414e9b9a1df542929c81165a46555f5f51c1cb080f04a9ccc74a5d1e3b053e1e2e4b8566d1a7995478a589 - h2: - type: string - description: Range proof challenge value - example: e8be92b67d852d83c4e57a4c25139cbab1801654408c4260ca21d480ea5425a7a7778b30d52c24eed11363a6f7bf1efa986747a2016b91e84b9a7d49b723644f4488ec15c64d83289b1fa73a6607544a2c1964d31931ae9c0f4b5c66a0099f82d52a73d4d7a251a29f279c7f053cc0064989479d9b6d900e92641555683efadad5f08a68a6763102a7a14d4d5aecc6620587ceedb28db338858326fdad35e1b2db54b8a7679d8cad36d88c63c61aff15121c6ec06a724e16980fd334cdbbea8885f88e8a509a42b093361e3152bcf391e3a723ceb4786362fcad9c4945a372d617bebe077e1c7ee49ac81701c06ef126e1178b779f1f4be4b1a3616c3c1821b26ead5cc7b1442216162077fb125a4c9250001797e3a224c79f5cd5a78226a9192000bc584bf479aa1dd83d56628860619778a0c6d9801e2680349ccde39e604af6f1e75226c58d6f608c420eb8091def8d3c7a9a59414e9b9a1df542929c81165a46555f5f51c1cb080f04a9ccc74a5d1e3b053e1e2e4b8566d1a7995478a589 - 'n': - type: string - description: BitGo's paillier modulus 'n'. - example: e8be92b67d852d83c4e57a4c25139cbab1801654408c4260ca21d480ea5425a7a7778b30d52c24eed11363a6f7bf1efa986747a2016b91e84b9a7d49b723644f4488ec15c64d83289b1fa73a6607544a2c1964d31931ae9c0f4b5c66a0099f82d52a73d4d7a251a29f279c7f053cc0064989479d9b6d900e92641555683efadad5f08a68a6763102a7a14d4d5aecc6620587ceedb28db338858326fdad35e1b2db54b8a7679d8cad36d88c63c61aff15121c6ec06a724e16980fd334cdbbea8885f88e8a509a42b093361e3152bcf391e3a723ceb4786362fcad9c4945a372d617bebe077e1c7ee49ac81701c06ef126e1178b779f1f4be4b1a3616c3c1821b26ead5cc7b1442216162077fb125a4c9250001797e3a224c79f5cd5a78226a9192000bc584bf479aa1dd83d56628860619778a0c6d9801e2680349ccde39e604af6f1e75226c58d6f608c420eb8091def8d3c7a9a59414e9b9a1df542929c81165a46555f5f51c1cb080f04a9ccc74a5d1e3b053e1e2e4b8566d1a7995478a589 - p: + delegations: type: array + minItems: 1 + maxItems: 500 items: - type: string - description: Pallier proof challenge value - example: e8be92b67d852d83c4e57a4c25139cbab1801654408c4260ca21d480ea5425a7a7778b30d52c24eed11363a6f7bf1efa986747a2016b91e84b9a7d49b723644f4488ec15c64d83289b1fa73a6607544a2c1964d31931ae9c0f4b5c66a0099f82d52a73d4d7a251a29f279c7f053cc0064989479d9b6d900e92641555683efadad5f08a68a6763102a7a14d4d5aecc6620587ceedb28db338858326fdad35e1b2db54b8a7679d8cad36d88c63c61aff15121c6ec06a724e16980fd334cdbbea8885f88e8a509a42b093361e3152bcf391e3a723ceb4786362fcad9c4945a372d617bebe077e1c7ee49ac81701c06ef126e1178b779f1f4be4b1a3616c3c1821b26ead5cc7b1442216162077fb125a4c9250001797e3a224c79f5cd5a78226a9192000bc584bf479aa1dd83d56628860619778a0c6d9801e2680349ccde39e604af6f1e75226c58d6f608c420eb8091def8d3c7a9a59414e9b9a1df542929c81165a46555f5f51c1cb080f04a9ccc74a5d1e3b053e1e2e4b8566d1a7995478a589 - required: - - ntilde - - h1 - - h2 - - 'n' - - p - TransactionRequest2: - title: TransactionRequest - oneOf: - - $ref: '#/components/schemas/TransactionRequestLite2' - - $ref: '#/components/schemas/TransactionRequestFull' - ListTxRequestAwaitingSignatureForWalletResponse: - title: ListTxRequestAwaitingSignatureForWalletResponse + oneOf: + - $ref: '#/components/schemas/CosmosLikeStakingDelegation' + - $ref: '#/components/schemas/DotStakingDelegation' + - $ref: '#/components/schemas/EthStakingDelegation' + - $ref: '#/components/schemas/MaticStakingDelegation' + - $ref: '#/components/schemas/NearStakingDelegation' + - $ref: '#/components/schemas/SolStakingDelegation' + page: + type: integer + description: The page number for paging purposes. + totalPages: + type: integer + description: The total number of pages for paging purposes. + totalElements: + type: integer + description: The number of elements per page used for paging purposes. + EthStakingTransactionSendRequest: type: object properties: - txRequests: - type: array - items: - allOf: - - type: object - properties: - transactions: - type: array - items: - type: object - properties: - state: - $ref: '#/components/schemas/TransactionState' - unsignedTx: - $ref: '#/components/schemas/UnsignedTransaction' - signatureShares: - type: array - items: - allOf: - - type: object - properties: - privateShareProof: - type: string - description: The private share proof - publicShare: - type: string - description: The public share - vssProof: - type: string - description: The VSS proof of the signature share - - $ref: '#/components/schemas/SignatureShareWithoutVssProof' - commitmentShares: - type: array - items: - allOf: - - type: object - properties: - type: - type: string - enum: - - commitment - description: The type of the commitment share - required: - - type - - $ref: '#/components/schemas/BaseShare' - txHash: - type: string - updatedDate: - type: string - format: date-time - title: ISO Date String - createdDate: - type: string - format: date-time - title: ISO Date String - required: - - state - - unsignedTx - description: The transactions associated with the transaction request - - $ref: '#/components/schemas/TransactionRequestBase' - bitgoRangeProofChallenge: - allOf: - - type: object + halfSigned: + description: A half-signed transaction object. + type: object + properties: + contractSequenceId: + description: The contract sequence ID of the transaction. + type: string + eip1559: + description: Eip1559 Params + type: object properties: - ntildeProof: - $ref: '#/components/schemas/NtildeProof' - required: - - ntildeProof - - $ref: '#/components/schemas/Challenge' - totalCount: - type: number - nextBatchPrevId: + maxPriorityFeePerGas: + type: string + maxFeePerGas: + type: string + operationHash: + type: string + expireTime: + type: string + signature: + type: string + comment: type: string - description: When a result set is truncated, this field returns the id of the last object in the previous batch. To get the next batch of results, pass this value via the "prevId" query parameter. - example: 585951a5df8380e0e3063e9f - format: uuid - required: - - txRequests - Challenge: - title: Challenge + EthStakingTransaction: + allOf: + - $ref: '#/components/schemas/StakingTransaction' type: object properties: - ntilde: - type: string - description: Range proof challenge value - h1: - type: string - description: Range proof challenge value - h2: + buildParams: + $ref: '#/components/schemas/TransactionBuildParams' + MaticStakingTransaction: + allOf: + - $ref: '#/components/schemas/StakingTransaction' + type: object + properties: + gasPrice: + description: The gas limit in base units. type: string - description: Range proof challenge value - required: - - ntilde - - h1 - - h2 - NtildeProof: - title: NtildeProof + NearStakingTransaction: + allOf: + - $ref: '#/components/schemas/StakingTransaction' + type: object + CosmosLikeStakingTransaction: + allOf: + - $ref: '#/components/schemas/StakingTransaction' + type: object + AtomStakingTransaction: + allOf: + - $ref: '#/components/schemas/StakingTransaction' + type: object + SolStakingTransaction: + allOf: + - $ref: '#/components/schemas/StakingTransaction' + type: object + AvaxPStakingTransaction: + allOf: + - $ref: '#/components/schemas/StakingTransaction' + type: object + DotStakingTransaction: + allOf: + - $ref: '#/components/schemas/StakingTransaction' + type: object + DotWalletStakingStateAttributes: type: object - description: The ntildeProof value is only required when creating the initial config. properties: - h1WrtH2: - type: object - properties: - alpha: - type: array - items: - type: string - description: The alpha value of the range proof challenge proof is an array of 128 hex strings. - t: - type: array - items: - type: string - description: The t value of the range proof challenge proof is an array of 128 hex strings. - required: - - alpha - - t - h2WrtH1: + spendableAttributes: + $ref: '#/components/schemas/DotWalletStakingSpendableAttributes' + permissionAttributes: + $ref: '#/components/schemas/WalletStakingPermissionAttributes' + disclaimerAttributes: + $ref: '#/components/schemas/WalletStakingDisclaimerAttributes' + WalletStakingStateAttributes: + type: object + properties: + spendableAttributes: + $ref: '#/components/schemas/DotWalletStakingSpendableAttributes' + permissionAttributes: + $ref: '#/components/schemas/WalletStakingPermissionAttributes' + disclaimerAttributes: + $ref: '#/components/schemas/WalletStakingDisclaimerAttributes' + DotWalletStakingSpendableAttributes: + type: object + properties: + stakingSpendableAttributes: + $ref: '#/components/schemas/StakingSpendableAttributes' + unstakingSpendableAttributes: + $ref: '#/components/schemas/UnStakingSpendableAttributes' + AvaxpWalletStakingStateAttributes: + type: object + properties: + stakingSpendableAttributes: + allOf: + - $ref: '#/components/schemas/StakingSpendableAttributes' type: object properties: - alpha: - type: array - items: - type: string - description: The alpha value of the range proof challenge proof is an array of 128 hex strings. - t: - type: array - items: - type: string - description: The t value of the range proof challenge proof is an array of 128 hex strings. - required: - - alpha - - t - required: - - h1WrtH2 - - h2WrtH1 - GetTransactionRequestsWithWalletPermissionsResponse: - title: GetTransactionRequestsWithWalletPermissionsResponse + minDuration: + description: The minimum duration in seconds for staking period. + type: integer + maxDuration: + description: The maximum duration in seconds for staking period. + type: integer + unstakingSpendableAttributes: + $ref: '#/components/schemas/UnStakingSpendableAttributes' + WalletStakingPermissionAttributes: type: object properties: - nextBatchPrevId: + walletPermissionAttributes: + $ref: '#/components/schemas/WalletPermissionAttributes' + stakingPermissionAttributes: + $ref: '#/components/schemas/StakingPermissionAttributes' + unstakingPermissionAttributes: + $ref: '#/components/schemas/UnstakingPermissionAttributes' + WalletStakingDisclaimerAttributes: + type: object + properties: + stakingDisclaimerAttributes: + $ref: '#/components/schemas/StakingDisclaimerAttributes' + unstakingDisclaimerAttributes: + $ref: '#/components/schemas/UnstakingDisclaimerAttributes' + StakingSpendableAttributes: + type: object + properties: + max: + description: The maximum spendable amount. type: string - txRequests: - type: array - items: - allOf: - - type: object - properties: - transactions: - type: array - items: - type: object - properties: - state: - $ref: '#/components/schemas/TransactionState' - unsignedTx: - $ref: '#/components/schemas/UnsignedTransaction' - signatureShares: - type: array - items: - allOf: - - type: object - properties: - privateShareProof: - type: string - description: The private share proof - publicShare: - type: string - description: The public share - vssProof: - type: string - description: The VSS proof of the signature share - - $ref: '#/components/schemas/SignatureShareWithoutVssProof' - commitmentShares: - type: array - items: - allOf: - - type: object - properties: - type: - type: string - enum: - - commitment - description: The type of the commitment share - required: - - type - - $ref: '#/components/schemas/BaseShare' - txHash: - type: string - updatedDate: - type: string - format: date-time - title: ISO Date String - createdDate: - type: string - format: date-time - title: ISO Date String - required: - - state - - unsignedTx - description: The transactions associated with the transaction request - - $ref: '#/components/schemas/TransactionRequestBase' - required: - - txRequests - TransferAction: - title: TransferAction - type: string - enum: - - created - - approved - - rejected - - signed - - unconfirmed - - confirmed - - removed - - commented - - failed - - regenerated - - replaced - - replacing - - abandoned - TransferState1: - title: TransferState - type: string - enum: - - initialized - - pendingApproval - - rejected - - signed - - unconfirmed - - confirmed - - removed - - failed - - replaced - - deleted - TransferType: - title: TransferType - type: string - enum: - - send - - receive - NumberLike: - title: NumberLike - type: number - Token: - title: Token + min: + description: The minimum spendable amount. + type: string + fee: + description: The blockchain fee to submit the transactions needed to stake. + type: string + netMax: + description: The maximum spendable amount minus fees. + type: string + netMin: + description: The net minimum spendable amount plus fees. + type: string + isStakingDurationNeeded: + description: True, if staking duration in seconds is required. + type: boolean + minStakeMore: + description: The minimum amount required to stake to the same validator. + type: integer + UnStakingSpendableAttributes: + type: object + properties: + max: + description: The maximum spendable amount. + type: string + min: + description: The minimum spendable amount. + type: string + fee: + description: The blockchain fee to submit the transactions needed to unstake. + type: string + multipleDelegations: + description: True, if more than one active staking delegation exists for a wallet. + type: boolean + WalletPermissionAttributes: + type: object + properties: + hasEnoughAdmins: + description: True, if the wallet has enough admins to create a staking request. + type: boolean + numberOfRequiredAdmin: + description: The number of admins required to create a hot staking request. + type: integer + StakingPermissionAttributes: type: object properties: - limit: + enabled: + description: If the wallet has staking request submission permission. type: string - token: + disabledReason: + description: The reason that staking request submission has been disabled. type: string - TrustedTokenState: - title: TrustedTokenState - type: string - enum: - - pending - - active - RegionalFeatures: - title: RegionalFeatures + UnstakingPermissionAttributes: type: object properties: - trading: - type: boolean - custody: - type: boolean - lending: - type: boolean - borrowing: - type: boolean - required: - - trading - - custody - - lending - - borrowing - OrganizationRole: - title: OrganizationRole - type: string - enum: - - admin - - member - - customer - example: admin - Transfer1: - title: Transfer + enabled: + description: If the wallet has unstaking request submission permission. + type: string + disabledReason: + description: The reason that unstaking request submission has been disabled. + type: string + StakingDisclaimerAttributes: type: object properties: - baseValue: - type: number - description: The value (in base units) sent by this transfer, excluding network fees. BitGo is deprecating this field in the future. - baseValueString: + info: + description: Disclaimer info type: string - description: The value (in base units) sent by this transfer, excluding network fees represented as a string. BitGo is deprecating this field in the future. - example: '2000000' - pattern: ^-?\d+$ - coin: - $ref: '#/components/schemas/CoinString' - comment: - nullable: true + transactionsNeeded: + description: The number of transactions needed for a staking request. + type: integer + UnstakingDisclaimerAttributes: + type: object + properties: + info: + description: Disclaimer info type: string - description: A comment from the user - date: + transactionsNeeded: + description: The number of transactions needed for an unstaking request. + type: integer + StakingWallet: + type: object + properties: + enterpriseId: + description: The ID of the enterprise where the the staking request was created. type: string - description: The date this Transfer was last updated - format: date-time - title: ISO Date String - enterprise: + walletId: + description: The ID of the wallet where the staking request was created. type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - organization: + walletType: + description: The type of wallet the staking request was created from, either cold, custodial, or hot. type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - bitgoOrg: + label: + description: The label of the wallet the staking request was created from. type: string - enum: - - BitGo Trust - - BitGo New York - - BitGo Germany - - BitGo Switzerland - - BitGo Europe ApS - - Frankfurt DE Trust - - BitGo Singapore - - BitGo Korea - - BitGo Mena Fze - - BitGo Sister Trust 1 - - BitGo Inc - entries: - type: array - items: - type: object - properties: - address: - type: string - description: An address affected by this Transfer - example: 2NAUwNgXaoFj2VVnSEvNLGuez8CfdU2UCMZ - valueString: - type: string - description: The change (in base units) in the address' balance represented as a string - example: '20000' - pattern: '"^-?\d+$"' - isChange: - type: boolean - description: True if this address is a change address (only exists for UTXO coins) and if this is a "send" transfer - wallet: - type: string - description: Only visible when the user has access to the wallet - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - value: - type: number - description: The change (in base units) in the address' balance - nftSymbol: - type: string - type: - type: string - enum: - - flushForwarderTokens - - walletFunding - - walletInitialization - - addressInitialization - - importedOutput - isPayGo: - type: boolean - description: True if this address is the BitGo PayGo wallet - token: - type: string - description: If this is a token entry, the token's symbol - example: omg - failed: - type: boolean - description: True if this entry is failed - associatedNativeCoinAddress: - type: string - description: The native coin receive address associated with the solana ATA address. This is currently present only for BitGo addresses. This change was done so that there is a mapping between the two addresses in the transfer entries. - required: - - address - description: An array of objects describing the change in address balances made as a result of this Transfer - history: - type: array - items: - type: object - properties: - action: - $ref: '#/components/schemas/TransferAction' - comment: - nullable: true - type: string - description: If this history object is of action "commented", this is the comment from the user - date: - type: string - description: The date of this history object - format: date-time - title: ISO Date String - transferId: - type: string - description: The ID of the transfer that this history object is associated with - txid: - type: string - description: The transaction ID of the transaction that this history object is associated with - user: - type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - required: - - action - - date - description: An audit log of events that have happened to the Transfer during its lifecycle - id: + coin: + description: The staking asset. type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - pendingApproval: + delegated: + description: The delegated staked amount in base units. type: string - state: - $ref: '#/components/schemas/TransferState1' - stakingParams: + pendingUnstake: + description: The amount that is actively being unstaked. + type: string + pendingStake: + description: The amount that is actively being staked. + type: string + spendableAttributes: + description: Spendable attributes type: object - properties: - actionType: - type: string - coreDao: - type: object - properties: - amount: - type: string - format: number - expiration: - type: string - format: date-time - title: ISO Date String - fee: - type: number - rewardAddress: - type: string - validator: - type: string - version: - type: number - required: - - amount - - expiration - - fee - - rewardAddress - - validator - - version - requestId: - type: string - source: - type: string - enum: - - external - - internal - validator: - type: string - required: - - actionType - - requestId - txid: + rewards: + description: The amount of rewards received in base units. type: string - description: The on-chain transaction id - example: b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26 - type: - allOf: - - $ref: '#/components/schemas/TransferType' - description: Defines whether or not this Transfer was sent or received by the user - usd: - type: number - description: The amount of USD of this Transfer (will be negative if it's a send) - usdRate: - type: number - description: The USD rate at the time this Transfer was created - value: - type: number - description: The total value (in base units) sent by this Transfer (may be approximate for ETH and other coins where amounts in base units can exceed 2^53 - 1) - valueString: + lockedRewards: + description: The amout of locked rewards in base units. type: string - description: The total value (in base units) sent by this Transfer represented as a String - example: '2000000' - pattern: ^-?\d+$ - wallet: + apy: + description: The reward accrual annual percentage rate. The rate is estimated yearly based on the last 7 days using the same methodology as leading beacon chain validator aggregators (e.g. https://beaconcha.in/validators). type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - walletType: + createdDate: + description: The date the staking request was created. + type: string + modifiedDate: + description: The last date the staking wallet was modified. type: string - enum: - - backing - - cold - - custodial - - custodialPaired - - hot - - trading - description: Wallet type - replaces: - type: array - items: - type: string - description: Transaction IDs that this transfer replaces. - replacedBy: - type: array - items: - type: string - description: Transaction IDs that replace this transfer. required: + - enterpriseId + - walletId + - walletType + - label - coin - - date - - entries - - history - - id - - state - - type - - valueString - - wallet - ListPendingApprovalsCountByEnterpriseResponse: - title: ListPendingApprovalsCountByEnterpriseResponse + - delegated + - pendingUnstake + - pendingStake + - rewards + - lockedRewards + - apy + - createdDate + - modifiedDate + StakingWalletsResponse: type: object properties: - enterprises: - $ref: '#/components/schemas/PendingApprovalsCountSchema' - organizations: - type: object - additionalProperties: - type: object - properties: - pendingApprovalsCount: - type: number - description: The number of pending approvals - required: - - pendingApprovalsCount + stakingWallets: + description: An array of staking wallets. + type: array + items: + $ref: '#/components/schemas/StakingWallet' + page: + type: integer + description: The page number for paging purposes. + totalPages: + type: integer + description: The total number of pages for paging purposes. + totalElements: + type: integer + description: The number of elements per page used for paging purposes. required: - - enterprises - PendingApprovalsCountSchema: - title: PendingApprovalsCountSchema - type: object - additionalProperties: - type: object - properties: - pendingApprovalsCount: - type: number - description: The number of pending approvals - required: - - pendingApprovalsCount - DeployAddressAndForwardTokenResponse: - title: DeployAddressAndForwardTokenResponse + - stakingWallets + - page + - totalPages + - totalElements + StakingEnterprise: type: object properties: - txId: + enterpriseId: + description: The ID of the enterprise where the the staking request was created from. type: string - required: - - txId - AddressProofResult: - title: AddressProofResult + coin: + description: The staking asset. + type: string + delegated: + description: The delegated staked amount in base units. + type: string + rewards: + description: The reward accrual amount in base units. + type: string + apy: + description: Reward accrual annual percentage rate. Estimated yearly based on the last 7 days. Same methodology as leading beacon chain validator aggregators (e.g. https://beaconcha.in/validators) + type: string + StakingRewards: type: object - description: Proof of address ownership properties: - iou: - type: boolean - description: True if this is an IOU - address: + rewards: + description: An array of rewards. + type: array + items: + $ref: '#/components/schemas/StakingReward' + page: + type: integer + description: The page number for paging purposes. + totalPages: + type: integer + description: The total number of pages for paging purposes. + totalElements: + type: integer + description: The number of elements per page used for paging purposes. + StakingReward: + type: object + properties: + reward: + description: The reward in base units. type: string - description: The address - signature: + walletId: + description: The wallet ID. type: string - description: The proof signature - prefix: + enterpriseId: + description: The enterprise ID. type: string - description: A 64-character random string used to generate the proof - chain: - allOf: - - $ref: '#/components/schemas/ProofChain' - description: The coin name ('BITCOIN' or 'ETHEREUM') - proofType: - allOf: - - $ref: '#/components/schemas/ProofType' - description: The type of proof - auxProofData: + date: + description: The date and time of the reward. + type: string + format: date-time + required: + - reward + - date + DelegationAccruals: + type: object + properties: + accruals: + description: An array of delegation accruals. type: array items: - type: object - properties: - type: - allOf: - - $ref: '#/components/schemas/AuxProofType' - description: The type of data - data: - type: object - properties: - script: - type: string - description: The REDEEM_SCRIPT or WITNESS_SCRIPT associated with the address - nonce: - type: string - salt: - type: string - init_code_hash: - type: string - required: - - type - - data - required: - - iou - ProofChain: - title: ProofChain - type: string - enum: - - BITCOIN - - ETHEREUM - ProofType: - title: ProofType - type: string - enum: - - BITCOIN_P2SH - - BITCOIN_P2SH_P2WSH - - BITCOIN_P2WSH - - ETHEREUM_CONTRACT - AuxProofType: - title: AuxProofType - type: string - enum: - - REDEEM_SCRIPT - - WITNESS_SCRIPT - - ETH_CREATE - - ETH_CREATE2 - WalletAddress: - title: WalletAddress + $ref: '#/components/schemas/DelegationAccrual' + page: + type: integer + description: The page number for paging purposes. + totalPages: + type: integer + description: The total number of pages for paging purposes. + totalElements: + type: integer + description: The number of elements per page used for paging purposes. + DelegationAccrual: type: object properties: - chain: - allOf: - - $ref: '#/components/schemas/AddressChain' - example: '1' - coin: - $ref: '#/components/schemas/CoinString' - index: - type: number - wallet: + rewardsReceived: + description: The total rewards received over the lifetime of the wallet. type: string - id: + delegated: + description: The total rewards delegated (staked). type: string - description: Platform public ID for an address - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - address: - $ref: '#/components/schemas/AddressString' - balance: - $ref: '#/components/schemas/TrimmedBalance1' - coinSpecific: - allOf: - - $ref: '#/components/schemas/AddressSubdocument' - description: Properties specific to certain coin types - label: - $ref: '#/components/schemas/AddressLabelString' - lastNonce: - type: number - default: -1 - token: + pendingDelegated: + description: The total amount pending to be delegated (staked). type: string - proof: + pendingUndelegated: + description: Total amount pending to be undelegated (unstaked). type: string - signature: + spendable: + description: Total spendable (withdrawable) amount in the wallet. type: string - lastConsolidatedTime: + locked: + description: The total amount locked but not delegated (staked). Example is staking rewards that are not re-staked and compounding. type: string - format: date - title: Date String - needsConsolidation: - type: boolean - tokenConsolidationState: {} - required: - - chain - - coin - - index - - wallet - AddressChain: - title: AddressChain - type: number - enum: - - 0 - - 1 - - 10 - - 11 - - 20 - - 21 - - 30 - - 31 - - 40 - - 41 - TrimmedBalance1: - title: TrimmedBalance - type: object - properties: - balanceString: + delegationId: + description: The delegation ID. type: string - description: String representation of the balance. Guaranteed to not lose precision. - example: '500000' - confirmedBalanceString: + delegationAddress: + description: The delegation address. type: string - description: The total balance of confirmed transactions for the address (in the chain's base unit). Guaranteed to not lose precision. - example: '400000' - spendableBalanceString: + withdrawalAddress: + description: The withdrawal address. type: string - description: The total balance of the address (in the chain's base unit) which may be used as inputs for creating new transactions in string representation. Guaranteed to not lose precision. - example: '40000' - updated: - oneOf: - - type: string - format: date-time - title: ISO Date String - - type: string - format: date - title: Date String - description: The last time a transaction affected the balance of this address - balance: - type: number - example: 50000 - lockedBalanceString: + walletId: + description: The wallet ID. type: string - reservedBalanceString: + enterpriseId: + description: The enterprise ID. type: string - totalReceived: - type: number - description: The total amount received on this address (in the chain's base unit) - totalSent: - type: number - description: The total amount sent from this address (in the chain's base unit) - transferCount: - type: number - tokens: - type: object - additionalProperties: {} - nfts: - type: object - additionalProperties: {} - unsupportedNfts: - type: object - additionalProperties: {} - type: {} - metadata: {} - required: - - balanceString - - confirmedBalanceString - - spendableBalanceString - AddressSubdocument: - title: AddressSubdocument - oneOf: - - $ref: '#/components/schemas/AlgorandAddress' - - $ref: '#/components/schemas/AtomAddress' - - $ref: '#/components/schemas/AvaxPAddress' - - $ref: '#/components/schemas/UtxoAddress' - - $ref: '#/components/schemas/BitcoinCashAddress' - - $ref: '#/components/schemas/CasperAddress' - - $ref: '#/components/schemas/DotAddress' - - $ref: '#/components/schemas/EosAddress' - - $ref: '#/components/schemas/EthereumAddress' - - $ref: '#/components/schemas/Ethereum2Address' - - $ref: '#/components/schemas/FiatAddress' - - $ref: '#/components/schemas/HederaAddress' - - $ref: '#/components/schemas/OffchainAddressSubdocument' - - $ref: '#/components/schemas/SilvergateUSDAddress' - - $ref: '#/components/schemas/SolAddress' - - $ref: '#/components/schemas/StacksAddress' - - $ref: '#/components/schemas/StellarAddress' - - $ref: '#/components/schemas/TestcoinAddress' - - $ref: '#/components/schemas/TezosAddress' - - $ref: '#/components/schemas/TronAddress' - - $ref: '#/components/schemas/XRPAddress' - - $ref: '#/components/schemas/TonAddress' - AddressLabelString: - title: AddressLabelString - type: string - description: A human-readable label for the address - example: Bob's Hot Wallet Address - maxLength: 250 - AlgorandAddress: - title: Algorand Address - type: object - properties: - rootAddress: + coin: + description: The staking asset. type: string - trustedTokens: - type: array - items: - allOf: - - type: object - properties: - state: - $ref: '#/components/schemas/TrustedTokenState' - - $ref: '#/components/schemas/Token' - addressVersion: - type: number - threshold: - type: number - bitgoKey: {} - bitgoPubKey: + date: + description: The date and time of the accrual record. type: string - required: - - rootAddress - AtomAddress: - title: Atom Address + format: date-time + TransactionBuildParams: type: object properties: - rootAddress: + recipients: + description: Recipient build params data + type: object + properties: + amount: + description: The amount to stake in base units. + type: string + address: + description: The address. + type: string + data: + description: The staking data (ABI format). + type: string + stakingParams: + description: Staking params + type: object + properties: + requestId: + type: string + amount: + description: The amount to stake in base units. + type: string + validator: + description: The validator address. + type: string + actionType: + description: The action type (e.g. delegate). + type: string + gasPrice: + description: The Gas price in base units. type: string - memoId: + gasLimit: + description: The Gas limit in base units. type: string - required: - - rootAddress - - memoId - AvaxPAddress: - title: AvaxP Address + StakingRequestsResponse: type: object properties: - threshold: - type: number - addresses: + requests: type: array + minItems: 1 + maxItems: 500 items: - type: string - required: - - threshold - - addresses - UtxoAddress: - title: Utxo Address + oneOf: + - $ref: '#/components/schemas/EthStakingRequestWithTransactions' + - $ref: '#/components/schemas/NearStakingRequestWithTransactions' + - $ref: '#/components/schemas/CosmosLikeStakingRequestWithTransactions' + - $ref: '#/components/schemas/AtomStakingRequestWithTransactions' + - $ref: '#/components/schemas/SolStakingRequestWithTransactions' + - $ref: '#/components/schemas/DotStakingRequestWithTransactions' + - $ref: '#/components/schemas/MaticStakingRequest' + page: + type: integer + description: The page number for paging purposes. + totalPages: + type: integer + description: The total number of pages for paging purposes. + totalElements: + type: integer + description: The number of elements per page used for paging purposes. + StakingRequestsListResponse: type: object properties: - redeemScript: - type: string - witnessScript: - type: string - BitcoinCashAddress: - title: Bitcoin Cash Address + requests: + type: array + minItems: 1 + maxItems: 500 + items: + oneOf: + - $ref: '#/components/schemas/EthStakingRequest' + - $ref: '#/components/schemas/MaticStakingRequest' + - $ref: '#/components/schemas/NearStakingRequest' + - $ref: '#/components/schemas/CosmosLikeStakingRequest' + - $ref: '#/components/schemas/AtomStakingRequest' + - $ref: '#/components/schemas/SolStakingRequest' + - $ref: '#/components/schemas/DotStakingRequest' + EthStakingRequestWithTransactions: + title: ETH allOf: + - $ref: '#/components/schemas/EthStakingRequest' - type: object properties: - format: - $ref: '#/components/schemas/SupportedAddressFormat' - - $ref: '#/components/schemas/UtxoAddress' - CasperAddress: - title: Casper Address - type: object - properties: - accountHash: - type: string - rootAddress: - type: string - transferId: - type: string - required: - - accountHash - - rootAddress - - transferId - DotAddress: - title: Dot Address - type: object - properties: - rootAddress: - type: string - nonceTracker: - type: object + transactions: + type: array + items: + oneOf: + - $ref: '#/components/schemas/EthStakingTransaction' + NearStakingRequestWithTransactions: + title: NEAR + allOf: + - $ref: '#/components/schemas/NearStakingRequest' + - type: object properties: - lastReservedNonce: - type: number - lastExecutedNonce: - type: number - detectedMissingNonces: + transactions: type: array items: - type: object - properties: - nonce: - type: number - isNonceLocked: - type: boolean - nonceLockExpireTime: - type: string - format: date - title: Date String - required: - - nonce - - isNonceLocked - detecMissingNoncesData: + oneOf: + - $ref: '#/components/schemas/NearStakingTransaction' + CosmosLikeStakingRequestWithTransactions: + title: ATOM like + allOf: + - $ref: '#/components/schemas/CosmosLikeStakingRequest' + - type: object + properties: + transactions: type: array items: - type: object - properties: - nonce: - type: number - isNonceLocked: - type: boolean - nonceLockExpireTime: - type: string - format: date - title: Date String - required: - - nonce - - isNonceLocked - required: - - lastReservedNonce - - lastExecutedNonce - - detectedMissingNonces - - detecMissingNoncesData - required: - - rootAddress - - nonceTracker - EosAddress: - title: Eos Address + oneOf: + - $ref: '#/components/schemas/CosmosLikeStakingTransaction' + AtomStakingRequestWithTransactions: + title: ATOM + allOf: + - $ref: '#/components/schemas/AtomStakingRequest' + - type: object + properties: + transactions: + type: array + items: + oneOf: + - $ref: '#/components/schemas/AtomStakingTransaction' + SolStakingRequestWithTransactions: + title: SOL + allOf: + - $ref: '#/components/schemas/SolStakingRequest' + - type: object + properties: + transactions: + type: array + items: + oneOf: + - $ref: '#/components/schemas/SolStakingTransaction' + DotStakingRequestWithTransactions: + title: DOT + allOf: + - $ref: '#/components/schemas/DotStakingRequest' + - type: object + properties: + transactions: + type: array + items: + oneOf: + - $ref: '#/components/schemas/DotStakingTransaction' + StakeableCoinsResult: + title: Stakeable coins type: object properties: - rootAddress: + coins: + type: array + items: + $ref: '#/components/schemas/StakeableCoins' + page: + type: integer + totalPages: + type: integer + totalElements: + type: integer + StakingError: + title: Staking Error + type: object + properties: + error: type: string - memoId: + errorName: type: string - required: - - rootAddress - - memoId - EthereumAddress: - title: Ethereum Address + reqId: + type: string + context: + type: object + CoinsUnauthorizedError: type: object properties: - creationFailure: - type: array - items: - type: string - forwarderVersion: - type: number - nonce: - type: number - feeAddress: + error: type: string - pendingChainInitialization: - type: boolean - pendingDeployment: - type: boolean - txCount: - type: number - updateTime: + errorName: type: string - format: date - title: Date String - hopTxid: + reqId: type: string - salt: + context: + type: object + properties: + errorName: + type: string + StakeableCoins: + type: object + properties: + symbol: type: string - usdtBug: + baseUnit: + type: string + isToken: type: boolean isTss: type: boolean - isNonceLocked: + isMultiSig: type: boolean - nonceLockExpireTime: - type: string - format: date - title: Date String - previousLowBalanceEmailSentAt: - type: string - format: date - title: Date String - required: - - creationFailure - - forwarderVersion - - nonce - - feeAddress - - pendingChainInitialization - - pendingDeployment - - txCount - - updateTime - Ethereum2Address: - title: Ethereum2 Address - type: object - properties: - feeAddress: + l1Chain: type: string - FiatAddress: - title: Fiat Address + StakingValidator: type: object properties: - bankAccountId: - type: string - faBankAccountId: + delegationAddress: + description: The delegation address. type: string - bankAccount: - $ref: '#/components/schemas/BankAccountJson' - HederaAddress: - title: Hedera Address - type: object - properties: - baseAddress: + coin: + description: The staked coin. type: string - memoId: + delegated: + description: The total delegated amount in base units. type: string - required: - - baseAddress - - memoId - OffchainAddressSubdocument: - title: Offchain Address - type: object - additionalProperties: {} - SilvergateUSDAddress: - title: Silvergate USD Address - type: object - properties: - bankAccountId: + rewards: + description: The reward accrual amount in base units. type: string - bankAccount: - $ref: '#/components/schemas/BankAccountJson' - required: - - bankAccountId - SolAddress: - title: Sol Address + apy: + description: The annual percentage yield. + type: string + type: + description: The validator provider used for staking. + type: string + rewardCoin: + description: The coin in which rewards will be received. + type: string + StakingValidatorsResponse: type: object properties: - rootAddress: - type: string - minimumFunding: - type: number - pendingChainInitialization: - type: boolean - trustedTokens: + validators: type: array + minItems: 1 + maxItems: 500 items: allOf: + - $ref: '#/components/schemas/StakingValidator' - type: object - properties: - state: - $ref: '#/components/schemas/TrustedTokenState' - - $ref: '#/components/schemas/Token' - nonceExpiresAt: - type: string - format: date - title: Date String - nonceTxRequestid: + page: + type: integer + description: The page number for paging purposes. + totalPages: + type: integer + description: The total number of pages for paging purposes. + totalElements: + type: integer + description: The number of elements per page used for paging purposes. + StakingPartneredValidator: + type: object + properties: + delegationAddress: + description: The delegation address. type: string type: + description: The validator provider. type: string - required: - - rootAddress - - minimumFunding - - pendingChainInitialization - - trustedTokens - StacksAddress: - title: Stacks Address - type: object - properties: - baseAddress: + totalStaked: + description: The total staked amount in base units. type: string - memoId: + rewards: + description: The reward accrual amount in base units. type: string - required: - - baseAddress - - memoId - StellarAddress: - title: Stellar Address - type: object - properties: - memoId: + apy: + description: The annual percentage yield. type: string - rootAddress: + commission: + description: The fee charged by the validator as a percentage. type: string - required: - - memoId - - rootAddress - TestcoinAddress: - title: Testcoin Address - type: object - additionalProperties: {} - TezosAddress: - title: Tezos Address - type: object - properties: - counter: - type: number - updateTime: + coin: + description: The staked coin. type: string - format: date - title: Date String - txCount: - type: number - pendingChainInitialization: - type: boolean - pendingPublicKeyRevelation: - type: boolean - creationFailure: + avses: + description: The validator's actively validated services (AVS) for restaking. type: array items: type: string - delegate: - type: string - previousLowBalanceEmailSentAt: + historicRatePerformance: + description: The validator's historical reward rate for the last 30 days. type: string - format: date - title: Date String - required: - - counter - - updateTime - - txCount - - pendingChainInitialization - - pendingPublicKeyRevelation - - creationFailure - TronAddress: - title: Tron Address + StakingPartneredValidatorsResponse: type: object properties: - rootPub: - type: string - required: - - rootPub - XRPAddress: - title: XRP Address + validators: + type: array + minItems: 1 + maxItems: 500 + items: + allOf: + - $ref: '#/components/schemas/StakingPartneredValidator' + - type: object + page: + type: integer + description: The page number for paging purposes. + totalPages: + type: integer + description: The total number of pages for paging purposes. + totalElements: + type: integer + description: The number of elements per page used for paging purposes. + StakingLicense: type: object properties: - nonceTracker: - type: object - properties: - detectedMissingNonces: - type: array - items: - type: object - properties: - nonce: - type: number - isNonceLocked: - type: boolean - nonceLockExpireTime: - type: string - format: date - title: Date String - required: - - nonce - - isNonceLocked - detectedMissingNoncesData: - type: array - items: - type: object - properties: - nonce: - type: number - isNonceLocked: - type: boolean - nonceLockExpireTime: - type: string - format: date - title: Date String - required: - - nonce - - isNonceLocked - required: - - detectedMissingNonces - - detectedMissingNoncesData - required: - - nonceTracker - TonAddress: - title: Ton Address + coin: + description: The name of the coin. + type: string + fee: + description: The corresponding fee for coin in current license. + type: string + StakingLicenseResponse: type: object properties: - addresses: + enterpriseId: + type: string + description: The enterprise ID. + defaultFee: + type: string + description: The default fee for the asset. + fees: type: array + minItems: 1 + maxItems: 500 items: - type: string - required: - - addresses - BankAccountJson: - title: BankAccountJson + allOf: + - $ref: '#/components/schemas/StakingLicense' + - type: object + StakingRequest: + title: Staking Request type: object properties: - accountNumber: - type: string - address1: - type: string - name: + id: + description: Staking request ID. type: string - owner: - type: object - properties: - name: - type: string - address1: - type: string - address2: - type: string - address3: - type: string - required: - - name - - address1 - idHash: + clientId: + description: Optional clientId if passed into the request. type: string - verificationState: + requestingUserId: + description: The ID of the user that created the staking request. type: string - address2: + enterpriseId: + description: The ID of the enterprise where the the staking request was created. type: string - address3: + walletId: + description: The ID of the wallet where the staking request was created. type: string - enterpriseId: + withdrawalAddress: + description: Withdrawal Address type: string - id: + walletType: + description: The type of wallet the staking request was created from either cold, custodial, or hot. type: string - routingNumber: + type: + $ref: '#/components/schemas/StakingRequestType' + coin: + description: The coin to be staked (ETH, MATIC, NEAR, SOL). type: string - shortCountryCode: + createdDate: + description: The date the staking request was created. type: string - swiftCode: + format: date-time + status: + $ref: '#/components/schemas/StakingRequestStatus' + statusModifiedDate: + description: The last date the status changed. type: string - type: + error: + description: The reason the staking request failed. type: string + totalStaked: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: The sum of the amounts of all confirmed staking transactions in this request. + delegationCycle: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: The number of cycles this staking request will be active. required: - - accountNumber - - address1 - - name - - owner - - idHash - - verificationState - SupportedAddressFormat: - title: SupportedAddressFormat + - id + - requestingUserId + - enterpriseId + - walletId + - withdrawalAddress + - walletType + - type + - coin + - createdDate + - status + - statusModifiedDate + StakingRequestStatus: + title: Staking Request Status + description: The status of the staking request. For ETH the status will change from NEW to READY when a validator has been assigned to the wallet's address. type: string enum: - - cashaddr - - base58 - AddressWithBalanceQueryResult: - title: AddressWithBalanceQueryResult + - NEW + - PENDING_VALIDATORS + - READY + - PENDING_APPROVAL + - PENDING_BITGO_TRUST_APPROVAL + - PENDING + - FAILED + - REJECTED + - VALIDATOR_ACTIVATING + - PARTIAL_CONFIRMED + - CONFIRMED + - COOLDOWN + - WARMUP + - DELAYED_COOLDOWN + - DELAYED_WARMUP + - ETH_PARTIAL_EXITED + - ETH_EXITED + StakingRequestType: + title: Staking Request Type + description: The type of staking request. + type: string + enum: + - STAKE + - UNSTAKE + - CLAIM_REWARDS + - SWITCH_VALIDATOR + - CHECKPOINT + - UNSUPPORTED + StakingTransaction: + title: Staking Transaction type: object - description: Represents the result of a query for addresses with balances. This structure contains the details of a set of addresses, their associated balances, and pagination information about the query results. properties: - coin: + id: + description: The staking transaction ID. + type: string + stakingRequestId: + description: The staking request ID. + type: string + transactionType: allOf: - - $ref: '#/components/schemas/CoinString' - description: The coin associated with the address balances - page: - type: number - description: The current page number - totalAddressCount: - type: number - description: Total number of addresses present - totalPages: - type: number - description: Total number of pages available for pagination - addresses: - type: array - items: - type: object - properties: - address: - type: string - description: The address itself - balance: - allOf: - - $ref: '#/components/schemas/TrimmedBalance1' - description: The balance associated with the address - required: - - address - - balance - description: List of addresses with their balances - message: + - $ref: '#/components/schemas/StakingTransactionType' + - type: string + description: The transaction type (delegate). + txHash: + description: The transaction hash. + type: string + createdDate: + description: The date the transaction was created. + type: string + format: date-time + status: + $ref: '#/components/schemas/StakingTransactionStatus' + statusModifiedDate: + description: The last date the status changed. + type: string + format: date-time + error: + description: The reason the transaction failed. + type: string + amount: + allOf: + - $ref: '#/components/schemas/IntegerString' + description: The transaction Amount in base units (i.e. Wei for ETH). + delegationId: + description: The staking delegation the transaction is acting on. + type: string + pendingApprovalId: + description: Pending Approval ID + type: string + transferId: + description: Transfer ID + type: string + txRequestId: + description: Transaction Request ID for the Transaction Request API type: string - description: Optional message from the response required: - - coin - AddressQueryResult: - title: AddressQueryResult - type: object - properties: - coin: - $ref: '#/components/schemas/CoinString' - pendingAddressCount: - type: number - description: Total number of addresses pending on-chain initialization on this wallet **Note:** for wallets with many addresses (100,000 or more), this property may be omitted for performance reasons. If the pending address count is needed for a large wallet, the 'includeTotalAddressCount' query parameter can be used to force an address count to be returned with the initial page of addresses. - totalAddressCount: - type: number - description: Total number of addresses which match the provided query parameters. **Note:** for wallets with many addresses (100,000 or more), this property may be omitted for performance reasons. If the total address count is needed for a large wallet, the 'includeTotalAddressCount' query parameter can be used to force an address count to be returned with the initial page of addresses. - addresses: - type: array - items: - type: object - properties: - address: - $ref: '#/components/schemas/AddressString' - balance: - $ref: '#/components/schemas/TrimmedBalance1' - chain: + - stakingRequestId + - transactionType + - createdDate + - status + - statusModifiedDate + - delegationId + - amount + StakingTransactionStatus: + title: Staking Transaction Status + description: The status of the transaction, either NEW, READY, INITIATED, CONFIRMED, or REJECTED. + type: string + enum: + - WAITING + - READY + - SENDING + - PENDING_APPROVAL + - PENDING_BITGO_TRUST_APPROVAL + - REJECTED + - PENDING + - FAILED + - CONFIRMED + - VALIDATOR_ACTIVATING + - DELAYED_READY + StakingTransactionType: + title: Staking Transaction Type + description: The type of staking transaction. + type: string + enum: + - delegate + - reward + - undelegate + - withdraw_undelegated + - authorize + - '' + TransactionRequestLite2: + title: TransactionRequestLite + allOf: + - type: object + properties: + intent: + allOf: + - $ref: '#/components/schemas/TransactionIntent1' + description: The intent of the transaction request + unsignedTxs: + type: array + items: + type: object + properties: + parsedTx: + $ref: '#/components/schemas/ParsedTx' + serializedTxHex: + type: string + description: The unsigned transaction as a hex string. + signableHex: + type: string + description: The portion of a transaction used to generate a signature (may or may not be the same as serializedTxHex) as a hex string. + derivationPath: + type: string + description: A bip32 path. + coinSpecific: + allOf: + - type: object + properties: + nonceAddress: + type: string + stakingAddress: + type: string + - type: object + additionalProperties: {} + description: Coin specific information. + feeInfo: + type: object + properties: + fee: + oneOf: + - type: string + - type: number + feeString: + type: string + required: + - fee + - feeString + required: + - parsedTx + - serializedTxHex + - signableHex + description: Holds all unsigned transactions that will be used to fulfill the TxRequest for MPC wallets. + signatureShares: + type: array + items: allOf: - - $ref: '#/components/schemas/AddressChain' - example: '1' - coin: - $ref: '#/components/schemas/CoinString' - coinSpecific: + - type: object + properties: + vssProof: + type: string + description: The VSS proof of the signature share + privateShareProof: + type: string + description: The private share proof + publicShare: + type: string + description: The public share + - $ref: '#/components/schemas/SignatureShareWithoutVssProof' + description: Only used for MPC coins. This is used to collect signature shares from and exchange them with the user. + commitmentShares: + type: array + items: allOf: - - $ref: '#/components/schemas/AddressSubdocument' - description: Properties specific to certain coin types - id: - type: string - description: Platform public ID for an address - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - index: - type: number - label: - $ref: '#/components/schemas/AddressLabelString' - lastConsolidatedTime: - type: string - format: date - title: Date String - lastNonce: - type: number - default: -1 - needsConsolidation: - type: boolean - proof: - type: string - signature: - type: string - token: - type: string - tokenConsolidationState: {} - wallet: + - type: object + properties: + type: + type: string + enum: + - commitment + description: The type of the commitment share + required: + - type + - $ref: '#/components/schemas/BaseShare' + description: Only used for MPC coins on EdDSA curve. This is used to collect commitment shares from and exchange them with the user. + txHashes: + type: array + items: type: string - required: - - chain - - coin - - index - - wallet - nextBatchPrevId: - type: string - description: When a result set is truncated, this field returns the id of the last object in the previous batch. To get the next batch of results, pass this value via the 'prevId' query parameter. - example: 585951a5df8380e0e3063e9f - format: uuid - count: - type: number - description: Total number of addresses returned in this response + description: The hashes of all transactions from the TxRequest that have been signed and are pending broadcast. + - $ref: '#/components/schemas/TransactionRequestBase' + TransactionIntent1: + title: TransactionIntent + oneOf: + - $ref: '#/components/schemas/AdaConsolidateIntent' + - $ref: '#/components/schemas/AdaPaymentIntent' + - $ref: '#/components/schemas/AdaStakeClaimRewardsIntent' + - $ref: '#/components/schemas/AdaStakeIntent' + - $ref: '#/components/schemas/AdaUnstakeIntent' + - $ref: '#/components/schemas/AdaVoteDelegationIntent' + - $ref: '#/components/schemas/AtomPaymentIntent' + - $ref: '#/components/schemas/AtomStakeIntent' + - $ref: '#/components/schemas/AtomUnstakeIntent' + - $ref: '#/components/schemas/AtomWithdrawIntent' + - $ref: '#/components/schemas/BscDelegateIntent' + - $ref: '#/components/schemas/BscUnDelegateIntent' + - $ref: '#/components/schemas/BscWithdrawUndelegateIntent' + - $ref: '#/components/schemas/CosmosPaymentIntent' + - $ref: '#/components/schemas/CosmosStakeIntent' + - $ref: '#/components/schemas/CosmosSwitchValidatorIntent' + - $ref: '#/components/schemas/CosmosUnstakeIntent' + - $ref: '#/components/schemas/CosmosWithdrawIntent' + - $ref: '#/components/schemas/DotConsolidateIntent' + - $ref: '#/components/schemas/DotCreateAccountIntent' + - $ref: '#/components/schemas/DotPaymentIntent' + - $ref: '#/components/schemas/DotStakingIntent' + - $ref: '#/components/schemas/DotUnstakingIntent' + - $ref: '#/components/schemas/DotWithdrawStakeIntent' + - $ref: '#/components/schemas/EthAccelerationIntent' + - $ref: '#/components/schemas/EthConsolidateIntent' + - $ref: '#/components/schemas/EthConsolidateTokenIntent' + - $ref: '#/components/schemas/EthFillNonceIntent' + - $ref: '#/components/schemas/EthPaymentIntent' + - $ref: '#/components/schemas/EthStakingIntent' + - $ref: '#/components/schemas/EthTransferTokenIntent' + - $ref: '#/components/schemas/LightningPaymentIntent' + - $ref: '#/components/schemas/MmiSignMessageIntent' + - $ref: '#/components/schemas/MmiSignTransactionIntent' + - $ref: '#/components/schemas/NearStakeIntent' + - $ref: '#/components/schemas/NearUnstakeIntent' + - $ref: '#/components/schemas/NearWithdrawIntent' + - $ref: '#/components/schemas/SolAuthorizeIntent' + - $ref: '#/components/schemas/SolClaimIntent' + - $ref: '#/components/schemas/SolCloseAssociatedTokenAccountIntent' + - $ref: '#/components/schemas/SolConsolidateIntent' + - $ref: '#/components/schemas/SolCreateAssociatedTokenAccountIntent' + - $ref: '#/components/schemas/SolDeactivateIntent' + - $ref: '#/components/schemas/SolDelegateIntent' + - $ref: '#/components/schemas/SolPaymentIntent' + - $ref: '#/components/schemas/SolStakeIntent' + - $ref: '#/components/schemas/SolUnstakeIntent' + - $ref: '#/components/schemas/SuiConsolidateIntent' + - $ref: '#/components/schemas/SuiCustomTxIntent' + - $ref: '#/components/schemas/SuiPaymentIntent' + - $ref: '#/components/schemas/SuiStakingIntent' + - $ref: '#/components/schemas/SuiUnstakingIntent' + - $ref: '#/components/schemas/TonConsolidateIntent' + - $ref: '#/components/schemas/TonDelegateIntent' + - $ref: '#/components/schemas/TonPaymentIntent' + - $ref: '#/components/schemas/TonUndelegateIntent' + - $ref: '#/components/schemas/WalletRecoveryIntent' + - $ref: '#/components/schemas/BaseStakeIntentWithCalldata' + - $ref: '#/components/schemas/CoreDaoDelegateIntent' + - $ref: '#/components/schemas/CoreDaoUndelegateIntent' + - $ref: '#/components/schemas/CoreDaoClaimIntent' + - $ref: '#/components/schemas/EthLikeStakeIntent' + - $ref: '#/components/schemas/BeraDelegateIntent' + - $ref: '#/components/schemas/BaseIntent' + ExchangeEddsaCommitmentsResponse: + title: ExchangeEddsaCommitmentsResponse + type: object + properties: + commitmentShare: + allOf: + - $ref: '#/components/schemas/CommitmentShare1' + description: The commitment share. required: - - coin - InvalidWalletId2: - title: Invalid Wallet ID + - commitmentShare + CommitmentShare1: + title: CommitmentShare allOf: - type: object properties: - name: + type: type: string enum: - - InvalidWalletId + - commitment + description: The type of the commitment share required: - - name - - $ref: '#/components/schemas/InvalidId' - forwardersBalanceResponse: - title: forwardersBalanceResponse - type: object - properties: - forwarders: - type: array - items: - type: object - properties: - address: - type: string - description: The forwarder address. - balance: - type: string - description: Current balance of the forwarder address. - required: - - address - - balance - required: - - forwarders - ListWalletShareRequestResponse: - title: ListWalletShareRequestResponse - type: object - properties: - walletShareRequests: - type: array - items: - type: object - properties: - id: - type: string - walletId: - $ref: '#/components/schemas/WalletIdString' - walletLabel: - type: string - coin: - type: string - userId: - type: string - userEmail: - type: string - userFullName: - type: string - permissions: - type: array - items: - type: string - enum: - - spend - created: - type: string - format: date-time - title: ISO Date String - required: - - id - - walletId - - walletLabel - - coin - - userId - - userEmail - - userFullName - - permissions - - created - required: - - walletShareRequests - VerifyWebhookNotificationResponse: - title: VerifyWebhookNotificationResponse - type: object - properties: - webhookId: - type: string - isValid: - type: boolean - required: - - webhookId - - isValid - CreateWebhookSecretResponse: - title: CreateWebhookSecretResponse - type: object - properties: - secret: - type: string - required: - - secret - WalletSubdocument: - title: WalletSubdocument - oneOf: - - $ref: '#/components/schemas/AdaWallet' - - $ref: '#/components/schemas/AlgorandWallet' - - $ref: '#/components/schemas/AtomWallet' - - $ref: '#/components/schemas/AvaxPWallet' - - $ref: '#/components/schemas/UtxoWallet' - - $ref: '#/components/schemas/CasperWallet' - - $ref: '#/components/schemas/DotWallet' - - $ref: '#/components/schemas/EosWallet' - - $ref: '#/components/schemas/EthereumWallet' - - $ref: '#/components/schemas/Ethereum2Wallet' - - $ref: '#/components/schemas/FiatWallet' - - $ref: '#/components/schemas/HederaWallet' - - $ref: '#/components/schemas/NearWallet' - - $ref: '#/components/schemas/Offchain' - - $ref: '#/components/schemas/SilvergateUSDWallet' - - $ref: '#/components/schemas/StacksWallet' - - $ref: '#/components/schemas/TestcoinWallet' - - $ref: '#/components/schemas/TonWallet' - - $ref: '#/components/schemas/TronWallet' - - $ref: '#/components/schemas/StellarWallet' - - $ref: '#/components/schemas/XRPWallet' - - $ref: '#/components/schemas/TezosWallet' - - $ref: '#/components/schemas/SolWallet' - - $ref: '#/components/schemas/LightningCoinWallet' - MultiSigType: - title: MultiSigType - type: string - enum: - - onchain - - tss - - blsdkg - MultisigTypeVersion1: - title: MultisigTypeVersion - type: string - enum: - - MPCv2 - WalletType: - title: WalletType - type: string - enum: - - backing - - cold - - custodial - - custodialPaired - - hot - - trading - WalletSubType: - title: WalletSubType + - type + - $ref: '#/components/schemas/BaseShare' + EncryptedShare: + title: EncryptedShare + allOf: + - type: object + properties: + type: + $ref: '#/components/schemas/ShareType' + required: + - type + - $ref: '#/components/schemas/BaseShare' + ShareType: + title: ShareType type: string enum: - - distributedCustody - - pairedCustodial - - custodialHot - - custodialCold - WalletFlag1: - title: WalletFlag + - encryptedSignerShare + - encryptedRShare + TransactionRequestIdNonEmptyString: + title: TransactionRequestIdNonEmptyString type: string - enum: - - isStaking - - lightning - - musigKp - - trackingInscriptions - - lockedAmount - - rbf - - coldWalletStaking - - tokenizationToken - - oneClickStaking - AdaWallet: - title: Ada Wallet + example: 123e4567-e89b-12d3-a456-426614174000 + minLength: 1 + format: uuid + CreateBitgoChallengeResponse: + title: CreateBitgoChallengeResponse type: object properties: - rootAddress: - type: string - addressCount: - type: string - pendingChainInitialization: - type: boolean - rewardAddress: + ntilde: type: string - lastChainIndex: - type: object - additionalProperties: - type: number - required: - - rootAddress - - addressCount - - pendingChainInitialization - - rewardAddress - AlgorandWallet: - title: Algorand Wallet - type: object - properties: - addressVersion: - type: number - rootAddress: + description: Range proof challenge value + example: e8be92b67d852d83c4e57a4c25139cbab1801654408c4260ca21d480ea5425a7a7778b30d52c24eed11363a6f7bf1efa986747a2016b91e84b9a7d49b723644f4488ec15c64d83289b1fa73a6607544a2c1964d31931ae9c0f4b5c66a0099f82d52a73d4d7a251a29f279c7f053cc0064989479d9b6d900e92641555683efadad5f08a68a6763102a7a14d4d5aecc6620587ceedb28db338858326fdad35e1b2db54b8a7679d8cad36d88c63c61aff15121c6ec06a724e16980fd334cdbbea8885f88e8a509a42b093361e3152bcf391e3a723ceb4786362fcad9c4945a372d617bebe077e1c7ee49ac81701c06ef126e1178b779f1f4be4b1a3616c3c1821b26ead5cc7b1442216162077fb125a4c9250001797e3a224c79f5cd5a78226a9192000bc584bf479aa1dd83d56628860619778a0c6d9801e2680349ccde39e604af6f1e75226c58d6f608c420eb8091def8d3c7a9a59414e9b9a1df542929c81165a46555f5f51c1cb080f04a9ccc74a5d1e3b053e1e2e4b8566d1a7995478a589 + h1: type: string - trustedTokens: - type: array - items: - allOf: - - type: object - properties: - state: - $ref: '#/components/schemas/TrustedTokenState' - - $ref: '#/components/schemas/Token' - required: - - addressVersion - - rootAddress - AtomWallet: - title: Atom Wallet - type: object - properties: - rootAddress: + description: Range proof challenge value + example: e8be92b67d852d83c4e57a4c25139cbab1801654408c4260ca21d480ea5425a7a7778b30d52c24eed11363a6f7bf1efa986747a2016b91e84b9a7d49b723644f4488ec15c64d83289b1fa73a6607544a2c1964d31931ae9c0f4b5c66a0099f82d52a73d4d7a251a29f279c7f053cc0064989479d9b6d900e92641555683efadad5f08a68a6763102a7a14d4d5aecc6620587ceedb28db338858326fdad35e1b2db54b8a7679d8cad36d88c63c61aff15121c6ec06a724e16980fd334cdbbea8885f88e8a509a42b093361e3152bcf391e3a723ceb4786362fcad9c4945a372d617bebe077e1c7ee49ac81701c06ef126e1178b779f1f4be4b1a3616c3c1821b26ead5cc7b1442216162077fb125a4c9250001797e3a224c79f5cd5a78226a9192000bc584bf479aa1dd83d56628860619778a0c6d9801e2680349ccde39e604af6f1e75226c58d6f608c420eb8091def8d3c7a9a59414e9b9a1df542929c81165a46555f5f51c1cb080f04a9ccc74a5d1e3b053e1e2e4b8566d1a7995478a589 + h2: type: string - lastMemoId: + description: Range proof challenge value + example: e8be92b67d852d83c4e57a4c25139cbab1801654408c4260ca21d480ea5425a7a7778b30d52c24eed11363a6f7bf1efa986747a2016b91e84b9a7d49b723644f4488ec15c64d83289b1fa73a6607544a2c1964d31931ae9c0f4b5c66a0099f82d52a73d4d7a251a29f279c7f053cc0064989479d9b6d900e92641555683efadad5f08a68a6763102a7a14d4d5aecc6620587ceedb28db338858326fdad35e1b2db54b8a7679d8cad36d88c63c61aff15121c6ec06a724e16980fd334cdbbea8885f88e8a509a42b093361e3152bcf391e3a723ceb4786362fcad9c4945a372d617bebe077e1c7ee49ac81701c06ef126e1178b779f1f4be4b1a3616c3c1821b26ead5cc7b1442216162077fb125a4c9250001797e3a224c79f5cd5a78226a9192000bc584bf479aa1dd83d56628860619778a0c6d9801e2680349ccde39e604af6f1e75226c58d6f608c420eb8091def8d3c7a9a59414e9b9a1df542929c81165a46555f5f51c1cb080f04a9ccc74a5d1e3b053e1e2e4b8566d1a7995478a589 + 'n': type: string - lastChainIndex: {} - pendingEcdsaTssInitialization: - type: boolean - required: - - rootAddress - - lastMemoId - AvaxPWallet: - title: AvaxP Wallet - type: object - properties: - unlockAddresses: + description: BitGo's paillier modulus 'n'. + example: e8be92b67d852d83c4e57a4c25139cbab1801654408c4260ca21d480ea5425a7a7778b30d52c24eed11363a6f7bf1efa986747a2016b91e84b9a7d49b723644f4488ec15c64d83289b1fa73a6607544a2c1964d31931ae9c0f4b5c66a0099f82d52a73d4d7a251a29f279c7f053cc0064989479d9b6d900e92641555683efadad5f08a68a6763102a7a14d4d5aecc6620587ceedb28db338858326fdad35e1b2db54b8a7679d8cad36d88c63c61aff15121c6ec06a724e16980fd334cdbbea8885f88e8a509a42b093361e3152bcf391e3a723ceb4786362fcad9c4945a372d617bebe077e1c7ee49ac81701c06ef126e1178b779f1f4be4b1a3616c3c1821b26ead5cc7b1442216162077fb125a4c9250001797e3a224c79f5cd5a78226a9192000bc584bf479aa1dd83d56628860619778a0c6d9801e2680349ccde39e604af6f1e75226c58d6f608c420eb8091def8d3c7a9a59414e9b9a1df542929c81165a46555f5f51c1cb080f04a9ccc74a5d1e3b053e1e2e4b8566d1a7995478a589 + p: type: array items: type: string - threshold: - type: number + description: Pallier proof challenge value + example: e8be92b67d852d83c4e57a4c25139cbab1801654408c4260ca21d480ea5425a7a7778b30d52c24eed11363a6f7bf1efa986747a2016b91e84b9a7d49b723644f4488ec15c64d83289b1fa73a6607544a2c1964d31931ae9c0f4b5c66a0099f82d52a73d4d7a251a29f279c7f053cc0064989479d9b6d900e92641555683efadad5f08a68a6763102a7a14d4d5aecc6620587ceedb28db338858326fdad35e1b2db54b8a7679d8cad36d88c63c61aff15121c6ec06a724e16980fd334cdbbea8885f88e8a509a42b093361e3152bcf391e3a723ceb4786362fcad9c4945a372d617bebe077e1c7ee49ac81701c06ef126e1178b779f1f4be4b1a3616c3c1821b26ead5cc7b1442216162077fb125a4c9250001797e3a224c79f5cd5a78226a9192000bc584bf479aa1dd83d56628860619778a0c6d9801e2680349ccde39e604af6f1e75226c58d6f608c420eb8091def8d3c7a9a59414e9b9a1df542929c81165a46555f5f51c1cb080f04a9ccc74a5d1e3b053e1e2e4b8566d1a7995478a589 required: - - unlockAddresses - - threshold - UtxoWallet: - title: Utxo Wallet + - ntilde + - h1 + - h2 + - 'n' + - p + TransactionRequest2: + title: TransactionRequest + oneOf: + - $ref: '#/components/schemas/TransactionRequestLite2' + - $ref: '#/components/schemas/TransactionRequestFull' + ListTxRequestAwaitingSignatureForWalletResponse: + title: ListTxRequestAwaitingSignatureForWalletResponse type: object properties: - customChangeWalletId: - type: string - customChangeAddressType: - type: string - sendQueueInferredScriptTypes: + txRequests: type: array items: - type: string - CasperWallet: - title: Casper Wallet + allOf: + - type: object + properties: + transactions: + type: array + items: + type: object + properties: + state: + $ref: '#/components/schemas/TransactionState' + unsignedTx: + $ref: '#/components/schemas/UnsignedTransaction' + signatureShares: + type: array + items: + allOf: + - type: object + properties: + privateShareProof: + type: string + description: The private share proof + publicShare: + type: string + description: The public share + vssProof: + type: string + description: The VSS proof of the signature share + - $ref: '#/components/schemas/SignatureShareWithoutVssProof' + commitmentShares: + type: array + items: + allOf: + - type: object + properties: + type: + type: string + enum: + - commitment + description: The type of the commitment share + required: + - type + - $ref: '#/components/schemas/BaseShare' + txHash: + type: string + updatedDate: + type: string + format: date-time + title: ISO Date String + createdDate: + type: string + format: date-time + title: ISO Date String + required: + - state + - unsignedTx + description: The transactions associated with the transaction request + - $ref: '#/components/schemas/TransactionRequestBase' + bitgoRangeProofChallenge: + allOf: + - type: object + properties: + ntildeProof: + $ref: '#/components/schemas/NtildeProof' + required: + - ntildeProof + - $ref: '#/components/schemas/Challenge' + totalCount: + type: number + nextBatchPrevId: + type: string + description: When a result set is truncated, this field returns the id of the last object in the previous batch. To get the next batch of results, pass this value via the "prevId" query parameter. + example: 585951a5df8380e0e3063e9f + format: uuid + required: + - txRequests + Challenge: + title: Challenge type: object properties: - accountHash: + ntilde: type: string - creationFailure: - type: array - items: - type: string - lastTransferId: + description: Range proof challenge value + h1: type: string - pendingChainInitialization: - type: boolean - rootAddress: + description: Range proof challenge value + h2: type: string + description: Range proof challenge value required: - - accountHash - - creationFailure - - lastTransferId - - pendingChainInitialization - - rootAddress - DotWallet: - title: Dot Wallet + - ntilde + - h1 + - h2 + NtildeProof: + title: NtildeProof type: object + description: The ntildeProof value is only required when creating the initial config. properties: - rootAddress: - type: string - pendingChainInitialization: - type: boolean - nonceAddress: - type: string + h1WrtH2: + type: object + properties: + alpha: + type: array + items: + type: string + description: The alpha value of the range proof challenge proof is an array of 128 hex strings. + t: + type: array + items: + type: string + description: The t value of the range proof challenge proof is an array of 128 hex strings. + required: + - alpha + - t + h2WrtH1: + type: object + properties: + alpha: + type: array + items: + type: string + description: The alpha value of the range proof challenge proof is an array of 128 hex strings. + t: + type: array + items: + type: string + description: The t value of the range proof challenge proof is an array of 128 hex strings. + required: + - alpha + - t required: - - rootAddress - - pendingChainInitialization - EosWallet: - title: Eos Wallet + - h1WrtH2 + - h2WrtH1 + GetTransactionRequestsWithWalletPermissionsResponse: + title: GetTransactionRequestsWithWalletPermissionsResponse type: object properties: - rootAddress: + nextBatchPrevId: type: string - pendingChainInitialization: - type: boolean - creationFailure: + txRequests: type: array items: - type: string - lastMemoId: - type: string + allOf: + - type: object + properties: + transactions: + type: array + items: + type: object + properties: + state: + $ref: '#/components/schemas/TransactionState' + unsignedTx: + $ref: '#/components/schemas/UnsignedTransaction' + signatureShares: + type: array + items: + allOf: + - type: object + properties: + privateShareProof: + type: string + description: The private share proof + publicShare: + type: string + description: The public share + vssProof: + type: string + description: The VSS proof of the signature share + - $ref: '#/components/schemas/SignatureShareWithoutVssProof' + commitmentShares: + type: array + items: + allOf: + - type: object + properties: + type: + type: string + enum: + - commitment + description: The type of the commitment share + required: + - type + - $ref: '#/components/schemas/BaseShare' + txHash: + type: string + updatedDate: + type: string + format: date-time + title: ISO Date String + createdDate: + type: string + format: date-time + title: ISO Date String + required: + - state + - unsignedTx + description: The transactions associated with the transaction request + - $ref: '#/components/schemas/TransactionRequestBase' required: - - rootAddress - - pendingChainInitialization - - creationFailure - - lastMemoId - EthereumWallet: - title: Ethereum Wallet + - txRequests + TransferAction: + title: TransferAction + type: string + enum: + - created + - approved + - rejected + - signed + - unconfirmed + - confirmed + - removed + - commented + - failed + - regenerated + - replaced + - replacing + - abandoned + TransferState1: + title: TransferState + type: string + enum: + - initialized + - pendingApproval + - rejected + - signed + - unconfirmed + - confirmed + - removed + - failed + - replaced + - deleted + TransferType: + title: TransferType + type: string + enum: + - send + - receive + NumberLike: + title: NumberLike + type: number + RegionalFeatures: + title: RegionalFeatures type: object properties: - pendingChainInitialization: - type: boolean - creationFailure: - type: array - items: - type: string - gasPriceTier: - type: string - tokenFlushThresholds: - type: object - additionalProperties: - oneOf: - - type: string - - type: number - walletVersion: - type: number - pendingDeployment: - type: boolean - deployForwardersManually: + trading: type: boolean - flushForwardersManually: + custody: type: boolean - enableMMI: + lending: type: boolean - enableNFT: + borrowing: type: boolean - deployedInBlock: - oneOf: - - type: number - - type: boolean - deployTxHash: - type: string - lastChainIndex: {} - baseAddress: - type: string - feeAddress: - type: string - nonce: - type: string - token: + required: + - trading + - custody + - lending + - borrowing + OrganizationRole: + title: OrganizationRole + type: string + enum: + - admin + - member + - customer + example: admin + Transfer1: + title: Transfer + type: object + properties: + baseValue: + type: number + description: The value (in base units) sent by this transfer, excluding network fees. BitGo is deprecating this field in the future. + baseValueString: type: string - pendingEcdsaTssInitialization: - type: boolean - safeModeActivated: + description: The value (in base units) sent by this transfer, excluding network fees represented as a string. BitGo is deprecating this field in the future. + example: '2000000' + pattern: ^-?\d+$ + coin: + $ref: '#/components/schemas/CoinString' + comment: + nullable: true type: string - lowPriorityFeeAddress: + description: A comment from the user + date: type: string - salt: + description: The date this Transfer was last updated + format: date-time + title: ISO Date String + enterprise: type: string - required: - - pendingChainInitialization - - creationFailure - - gasPriceTier - - tokenFlushThresholds - - walletVersion - - pendingDeployment - - deployForwardersManually - - flushForwardersManually - - enableMMI - - enableNFT - Ethereum2Wallet: - title: Ethereum2 Wallet - type: object - properties: - pendingChainInitialization: - type: boolean - baseAddress: + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + organization: type: string - feeAddress: + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + bitgoOrg: type: string - required: - - pendingChainInitialization - FiatWallet: - title: Fiat Wallet - type: object - properties: - backingBankAccountId: {} - backingSENBankAccountId: {} - lastUsedNonce: - type: number - required: - - backingBankAccountId - - backingSENBankAccountId - - lastUsedNonce - HederaWallet: - title: Hedera Wallet - type: object - properties: - addressCount: - type: number - pendingChainInitialization: - type: boolean - creationFailure: + enum: + - BitGo Trust + - BitGo New York + - BitGo Germany + - BitGo Switzerland + - BitGo Europe ApS + - Frankfurt DE Trust + - BitGo Singapore + - BitGo Korea + - BitGo Mena Fze + - BitGo Sister Trust 1 + - BitGo Inc + entries: type: array items: - type: string - trustedTokens: + type: object + properties: + address: + type: string + description: An address affected by this Transfer + example: 2NAUwNgXaoFj2VVnSEvNLGuez8CfdU2UCMZ + valueString: + type: string + description: The change (in base units) in the address' balance represented as a string + example: '20000' + pattern: '"^-?\d+$"' + isChange: + type: boolean + description: True if this address is a change address (only exists for UTXO coins) and if this is a "send" transfer + wallet: + type: string + description: Only visible when the user has access to the wallet + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + value: + type: number + description: The change (in base units) in the address' balance + nftSymbol: + type: string + type: + type: string + enum: + - flushForwarderTokens + - walletFunding + - walletInitialization + - addressInitialization + - importedOutput + isPayGo: + type: boolean + description: True if this address is the BitGo PayGo wallet + token: + type: string + description: If this is a token entry, the token's symbol + example: omg + failed: + type: boolean + description: True if this entry is failed + associatedNativeCoinAddress: + type: string + description: The native coin receive address associated with the solana ATA address. This is currently present only for BitGo addresses. This change was done so that there is a mapping between the two addresses in the transfer entries. + required: + - address + description: An array of objects describing the change in address balances made as a result of this Transfer + history: type: array items: - allOf: - - type: object - properties: - state: - $ref: '#/components/schemas/TrustedTokenState' - - $ref: '#/components/schemas/Token' - deployTxHash: - type: string - baseAddress: - type: string - confirmedTransactionId: - type: string - required: - - addressCount - - pendingChainInitialization - - creationFailure - - trustedTokens - NearWallet: - title: Near Wallet - type: object - properties: - nonceAddress: + type: object + properties: + action: + $ref: '#/components/schemas/TransferAction' + comment: + nullable: true + type: string + description: If this history object is of action "commented", this is the comment from the user + date: + type: string + description: The date of this history object + format: date-time + title: ISO Date String + transferId: + type: string + description: The ID of the transfer that this history object is associated with + txid: + type: string + description: The transaction ID of the transaction that this history object is associated with + user: + type: string + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + required: + - action + - date + description: An audit log of events that have happened to the Transfer during its lifecycle + id: type: string - lastNonce: - type: number - addressCount: - type: number - pendingChainInitialization: - type: boolean - rootAddrss: + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + pendingApproval: type: string - lastChainIndex: + state: + $ref: '#/components/schemas/TransferState1' + stakingParams: type: object - additionalProperties: - type: number - required: - - nonceAddress - - lastNonce - - addressCount - - pendingChainInitialization - Offchain: - title: Offchain - type: object - properties: - needsKeyReshareAfterPasswordReset: - type: boolean - pendingSystemInitialization: - type: boolean - description: If true, this wallet is waiting for the system to finish initializing. In this state, users cannot create addresses or initiate withdrawals. - required: - - needsKeyReshareAfterPasswordReset - SilvergateUSDWallet: - title: Silvergate USD Wallet - type: object - properties: - backingBankAccountId: {} - backingSENBankAccountId: {} - lastUsedNonce: - type: number - required: - - backingBankAccountId - - backingSENBankAccountId - - lastUsedNonce - StacksWallet: - title: Stacks Wallet - type: object - properties: - baseAddress: - type: string - feeAddress: + properties: + actionType: + type: string + coreDao: + type: object + properties: + amount: + type: string + format: number + expiration: + type: string + format: date-time + title: ISO Date String + fee: + type: number + rewardAddress: + type: string + validator: + type: string + version: + type: number + required: + - amount + - expiration + - fee + - rewardAddress + - validator + - version + requestId: + type: string + source: + type: string + enum: + - external + - internal + validator: + type: string + required: + - actionType + - requestId + txid: type: string - lastNonce: + description: The on-chain transaction id + example: b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26 + type: + allOf: + - $ref: '#/components/schemas/TransferType' + description: Defines whether or not this Transfer was sent or received by the user + usd: type: number - addressCount: + description: The amount of USD of this Transfer (will be negative if it's a send) + usdRate: type: number - TestcoinWallet: - title: Testcoin Wallet - type: object - properties: - lastChainIndex: + description: The USD rate at the time this Transfer was created + value: type: number - TonWallet: - title: Ton Wallet - type: object - properties: - rootAddress: + description: The total value (in base units) sent by this Transfer (may be approximate for ETH and other coins where amounts in base units can exceed 2^53 - 1) + valueString: type: string - memoId: + description: The total value (in base units) sent by this Transfer represented as a String + example: '2000000' + pattern: ^-?\d+$ + wallet: type: string - lastMemoId: + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + walletType: type: string - seqno: - type: number - lastChainIndex: + enum: + - backing + - cold + - custodial + - custodialPaired + - hot + - trading + description: Wallet type + replaces: + type: array + items: + type: string + description: Transaction IDs that this transfer replaces. + replacedBy: + type: array + items: + type: string + description: Transaction IDs that replace this transfer. + required: + - coin + - date + - entries + - history + - id + - state + - type + - valueString + - wallet + ListPendingApprovalsCountByEnterpriseResponse: + title: ListPendingApprovalsCountByEnterpriseResponse + type: object + properties: + enterprises: + $ref: '#/components/schemas/PendingApprovalsCountSchema' + organizations: type: object additionalProperties: - type: number - walletVersion: - type: number + type: object + properties: + pendingApprovalsCount: + type: number + description: The number of pending approvals + required: + - pendingApprovalsCount required: - - rootAddress - - memoId - - lastMemoId - - seqno - TronWallet: - title: Tron Wallet + - enterprises + PendingApprovalsCountSchema: + title: PendingApprovalsCountSchema + type: object + additionalProperties: + type: object + properties: + pendingApprovalsCount: + type: number + description: The number of pending approvals + required: + - pendingApprovalsCount + DeployAddressAndForwardTokenResponse: + title: DeployAddressAndForwardTokenResponse type: object properties: - rootAddress: - type: string - rootPub: + txId: type: string - pendingChainInitialization: - type: boolean - creationFailure: - type: array - items: - type: string - minimumFunding: - type: number required: - - rootAddress - - rootPub - - pendingChainInitialization - - creationFailure - - minimumFunding - StellarWallet: - title: Stellar Wallet + - txId + AddressProofResult: + title: AddressProofResult type: object + description: Proof of address ownership properties: - rootAddress: - type: string - pendingChainInitialization: + iou: type: boolean - creationFailure: - type: array - items: - type: string - lastMemoId: - type: string - stellarUsername: + description: True if this is an IOU + address: type: string - homeDomain: + description: The address + signature: type: string - stellarAddress: + description: The proof signature + prefix: type: string - trustedTokens: + description: A 64-character random string used to generate the proof + chain: + allOf: + - $ref: '#/components/schemas/ProofChain' + description: The coin name ('BITCOIN' or 'ETHEREUM') + proofType: + allOf: + - $ref: '#/components/schemas/ProofType' + description: The type of proof + auxProofData: type: array items: - allOf: - - type: object + type: object + properties: + type: + allOf: + - $ref: '#/components/schemas/AuxProofType' + description: The type of data + data: + type: object properties: - state: - $ref: '#/components/schemas/TrustedTokenState' - - $ref: '#/components/schemas/Token' + script: + type: string + description: The REDEEM_SCRIPT or WITNESS_SCRIPT associated with the address + nonce: + type: string + salt: + type: string + init_code_hash: + type: string + required: + - type + - data required: - - rootAddress - - pendingChainInitialization - - creationFailure - - lastMemoId - XRPWallet: - title: XRP Wallet + - iou + ProofChain: + title: ProofChain + type: string + enum: + - BITCOIN + - ETHEREUM + ProofType: + title: ProofType + type: string + enum: + - BITCOIN_P2SH + - BITCOIN_P2SH_P2WSH + - BITCOIN_P2WSH + - ETHEREUM_CONTRACT + AuxProofType: + title: AuxProofType + type: string + enum: + - REDEEM_SCRIPT + - WITNESS_SCRIPT + - ETH_CREATE + - ETH_CREATE2 + AddressWithBalanceQueryResult: + title: AddressWithBalanceQueryResult type: object + description: Represents the result of a query for addresses with balances. This structure contains the details of a set of addresses, their associated balances, and pagination information about the query results. properties: - rootAddress: - type: string - pendingChainInitialization: - type: boolean - creationFailure: - type: array - items: - type: string - trustedTokens: + coin: + allOf: + - $ref: '#/components/schemas/CoinString' + description: The coin associated with the address balances + page: + type: number + description: The current page number + totalAddressCount: + type: number + description: Total number of addresses present + totalPages: + type: number + description: Total number of pages available for pagination + addresses: type: array items: - allOf: - - type: object - properties: - state: - $ref: '#/components/schemas/TrustedTokenState' - - $ref: '#/components/schemas/Token' + type: object + properties: + address: + type: string + description: The address itself + balance: + allOf: + - $ref: '#/components/schemas/TrimmedBalance' + description: The balance associated with the address + required: + - address + - balance + description: List of addresses with their balances + message: + type: string + description: Optional message from the response required: - - rootAddress - - pendingChainInitialization - - creationFailure - TezosWallet: - title: Tezos Wallet + - coin + AddressQueryResult: + title: AddressQueryResult type: object properties: - pendingChainInitialization: - type: boolean - creationFailure: + coin: + $ref: '#/components/schemas/CoinString' + pendingAddressCount: + type: number + description: Total number of addresses pending on-chain initialization on this wallet **Note:** for wallets with many addresses (100,000 or more), this property may be omitted for performance reasons. If the pending address count is needed for a large wallet, the 'includeTotalAddressCount' query parameter can be used to force an address count to be returned with the initial page of addresses. + totalAddressCount: + type: number + description: Total number of addresses which match the provided query parameters. **Note:** for wallets with many addresses (100,000 or more), this property may be omitted for performance reasons. If the total address count is needed for a large wallet, the 'includeTotalAddressCount' query parameter can be used to force an address count to be returned with the initial page of addresses. + addresses: type: array items: - type: string - deployedInBlock: - oneOf: - - type: number - - type: boolean - deployTxHash: - type: string - lastChainIndex: {} - baseAddress: - type: string - feeAddress: - type: string - safeModeActivated: - type: string - lowPriorityFeeAddress: - type: string - delegate: + type: object + properties: + address: + $ref: '#/components/schemas/AddressString' + balance: + $ref: '#/components/schemas/TrimmedBalance' + chain: + allOf: + - $ref: '#/components/schemas/AddressChain' + example: '1' + coin: + $ref: '#/components/schemas/CoinString' + coinSpecific: + allOf: + - $ref: '#/components/schemas/AddressSubdocument' + description: Properties specific to certain coin types + id: + type: string + description: Platform public ID for an address + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + index: + type: number + label: + $ref: '#/components/schemas/AddressLabelString' + lastConsolidatedTime: + type: string + format: date + title: Date String + lastNonce: + type: number + default: -1 + needsConsolidation: + type: boolean + proof: + type: string + signature: + type: string + token: + type: string + tokenConsolidationState: {} + wallet: + type: string + required: + - chain + - coin + - index + - wallet + nextBatchPrevId: type: string + description: When a result set is truncated, this field returns the id of the last object in the previous batch. To get the next batch of results, pass this value via the 'prevId' query parameter. + example: 585951a5df8380e0e3063e9f + format: uuid + count: + type: number + description: Total number of addresses returned in this response required: - - pendingChainInitialization - - creationFailure - SolWallet: - title: Sol Wallet + - coin + InvalidWalletId2: + title: Invalid Wallet ID + allOf: + - type: object + properties: + name: + type: string + enum: + - InvalidWalletId + required: + - name + - $ref: '#/components/schemas/InvalidId' + forwardersBalanceResponse: + title: forwardersBalanceResponse type: object properties: - pendingChainInitialization: - type: boolean - minimumFunding: - type: number - trustedTokens: + forwarders: type: array items: - allOf: - - type: object - properties: - state: - $ref: '#/components/schemas/TrustedTokenState' - - $ref: '#/components/schemas/Token' - rootAddress: - type: string - nonceAddress: - type: string - lastBlockHash: - type: string - lastChainIndex: {} - nonceExpiresAt: - type: string - format: date - title: Date String - nonceTxRequestId: - type: string + type: object + properties: + address: + type: string + description: The forwarder address. + balance: + type: string + description: Current balance of the forwarder address. + required: + - address + - balance required: - - pendingChainInitialization - - minimumFunding - - trustedTokens - LightningCoinWallet: - title: Lightning Coin Wallet + - forwarders + ListWalletShareRequestResponse: + title: ListWalletShareRequestResponse type: object properties: - keys: + walletShareRequests: type: array items: - type: string - uri: - type: string - apiEndpoint: - type: string - nodeId: - type: string - updateSignerIP: - type: boolean - signerIP: - type: string - updateSignerTlsCert: - type: boolean - signerTlsCert: + type: object + properties: + id: + type: string + walletId: + $ref: '#/components/schemas/WalletIdString' + walletLabel: + type: string + coin: + type: string + userId: + type: string + userEmail: + type: string + userFullName: + type: string + permissions: + type: array + items: + type: string + enum: + - spend + created: + type: string + format: date-time + title: ISO Date String + required: + - id + - walletId + - walletLabel + - coin + - userId + - userEmail + - userFullName + - permissions + - created + required: + - walletShareRequests + VerifyWebhookNotificationResponse: + title: VerifyWebhookNotificationResponse + type: object + properties: + webhookId: type: string - updateSignerMacaroon: + isValid: type: boolean - encryptedSignerMacaroon: + required: + - webhookId + - isValid + CreateWebhookSecretResponse: + title: CreateWebhookSecretResponse + type: object + properties: + secret: type: string required: - - keys + - secret GetPinnedWalletsCountResponse: title: GetPinnedWalletsCountResponse type: object @@ -48495,7 +48724,7 @@ components: multisigType: $ref: '#/components/schemas/MultiSigType' multisigTypeVersion: - $ref: '#/components/schemas/MultisigTypeVersion1' + $ref: '#/components/schemas/MultisigTypeVersion' 'n': type: number description: Number of keys provided. This value must be 3 for hot wallets, 1 for **ofc** wallets, and not specified for custodial wallets. @@ -48530,6 +48759,12 @@ components: spendableBalance: type: number description: The total balance in base units (e.g. Satoshis) which may be used as inputs for creating new transactions in string representation. The is only returned if the 'expandBalance' query parameter is set to 'true'. + stakingBalanceString: + type: string + description: The staked balance in base units. Guaranteed to not lose precision. The is only returned if the 'includeStakingBalances' query parameter is set to 'true'. + rewardBalanceString: + type: string + description: The staking reward balance in base units. Guaranteed to not lose precision. The is only returned if the 'includeStakingBalances' query parameter is set to 'true'. users: type: array items: @@ -48559,7 +48794,7 @@ components: type: object properties: name: - $ref: '#/components/schemas/WalletFlag1' + $ref: '#/components/schemas/WalletFlag' value: type: string required: @@ -49123,11 +49358,11 @@ components: type: object properties: multiSigTypeVersion: - $ref: '#/components/schemas/MultisigTypeVersion1' + $ref: '#/components/schemas/MultisigTypeVersion' custodialMultiSigTypeVersion: - $ref: '#/components/schemas/MultisigTypeVersion1' + $ref: '#/components/schemas/MultisigTypeVersion' coldMultiSigTypeVersion: - $ref: '#/components/schemas/MultisigTypeVersion1' + $ref: '#/components/schemas/MultisigTypeVersion' defaultWalletVersion: type: number BitgoTSSPublicKeyResponse: @@ -51339,13 +51574,6 @@ components: example: true description: | Exclude tokens with zero balance. When allTokens is passed, then every token supported by BitGo will be included, regardless of balance. - unspentCount: - name: unspentCount - schema: - type: boolean - in: query - example: true - description: True, if including unspent count for UTXO-based coins. state: name: state description: |