From f5bd74fb1765b3d07ba7b458f91edce7796c8078 Mon Sep 17 00:00:00 2001 From: "dev-portal-updater[bot]" <149019135+dev-portal-updater[bot]@users.noreply.github.com> Date: Wed, 12 Feb 2025 19:24:31 +0000 Subject: [PATCH] feat: update `bitgo-api-docs` This commit updates the BitGo API. --- api.yaml | 13053 ++++++++++++++++++++++++++++------------------------- 1 file changed, 6941 insertions(+), 6112 deletions(-) diff --git a/api.yaml b/api.yaml index 3f8a6e3..ecb99a7 100644 --- a/api.yaml +++ b/api.yaml @@ -146,7 +146,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PendingApproval' + $ref: '#/components/schemas/PlatformPendingApproval' /api/v2/{coin}/wallet/{walletId}: put: tags: @@ -168,15 +168,15 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Wallet' + $ref: '#/components/schemas/PlatformWallet' '400': description: Bad Request content: application/json: schema: oneOf: - - $ref: '#/components/schemas/PlatformError' - - $ref: '#/components/schemas/InvalidWalletId' + - $ref: '#/components/schemas/PlatformPlatformError' + - $ref: '#/components/schemas/PlatformInvalidWalletId' '403': description: Forbidden '404': @@ -196,21 +196,21 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Wallet' + $ref: '#/components/schemas/PlatformWallet' '400': description: Bad Request content: application/json: schema: oneOf: - - $ref: '#/components/schemas/PlatformError' - - $ref: '#/components/schemas/InvalidWalletId' + - $ref: '#/components/schemas/PlatformPlatformError' + - $ref: '#/components/schemas/PlatformInvalidWalletId' '403': description: Forbidden content: application/json: schema: - $ref: '#/components/schemas/PlatformError' + $ref: '#/components/schemas/PlatformPlatformError' 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. @@ -330,7 +330,7 @@ paths: type: array items: allOf: - - $ref: '#/components/schemas/Webhook' + - $ref: '#/components/schemas/PlatformWebhook' - type: object properties: walletId: @@ -344,8 +344,8 @@ paths: application/json: schema: oneOf: - - $ref: '#/components/schemas/PlatformError' - - $ref: '#/components/schemas/InvalidWalletId' + - $ref: '#/components/schemas/PlatformPlatformError' + - $ref: '#/components/schemas/PlatformInvalidWalletId' delete: tags: - Webhook @@ -389,8 +389,8 @@ paths: application/json: schema: oneOf: - - $ref: '#/components/schemas/PlatformError' - - $ref: '#/components/schemas/InvalidWalletId' + - $ref: '#/components/schemas/PlatformPlatformError' + - $ref: '#/components/schemas/PlatformInvalidWalletId' post: summary: Add wallet webhook description: |- @@ -557,7 +557,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PlatformError' + $ref: '#/components/schemas/PlatformPlatformError' post: tags: - Wallet share @@ -573,14 +573,14 @@ paths: type: object properties: state: - $ref: '#/components/schemas/WalletShareState' + $ref: '#/components/schemas/PlatformWalletShareState' responses: '200': description: OK content: application/json: schema: - $ref: '#/components/schemas/UpdateWalletShareResponse' + $ref: '#/components/schemas/PlatformUpdateWalletShareResponse' delete: summary: Cancel a wallet share description: |- @@ -684,7 +684,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Enterprise' + $ref: '#/components/schemas/PlatformEnterprise' '202': description: Accepted content: @@ -696,13 +696,13 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PlatformError' + $ref: '#/components/schemas/PlatformPlatformError' '404': description: Not Found content: application/json: schema: - $ref: '#/components/schemas/PlatformError' + $ref: '#/components/schemas/PlatformPlatformError' get: summary: Get enterprise operationId: enterprise.getById @@ -775,21 +775,21 @@ paths: pendingApprovals: type: array items: - $ref: '#/components/schemas/PendingApproval' + $ref: '#/components/schemas/PlatformPendingApproval' '400': description: Bad Request content: application/json: schema: oneOf: - - $ref: '#/components/schemas/PlatformError' - - $ref: '#/components/schemas/InvalidEnterpriseId' + - $ref: '#/components/schemas/PlatformPlatformError' + - $ref: '#/components/schemas/PlatformInvalidEnterpriseId' '404': description: Not Found content: application/json: schema: - $ref: '#/components/schemas/PlatformError' + $ref: '#/components/schemas/PlatformPlatformError' post: summary: Add user to enterprise operationId: v2.enterprise.user.add @@ -958,13 +958,13 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PendingApproval' + $ref: '#/components/schemas/PlatformPendingApproval' '202': description: Accepted content: application/json: schema: - $ref: '#/components/schemas/PendingApproval' + $ref: '#/components/schemas/PlatformPendingApproval' get: summary: Get pending approval operationId: v2.approval.get @@ -1183,37 +1183,37 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransactionRequest' + $ref: '#/components/schemas/PlatformTransactionRequest' '201': description: Created content: application/json: schema: - $ref: '#/components/schemas/TransactionRequest' + $ref: '#/components/schemas/PlatformTransactionRequest' '400': description: Bad Request content: application/json: schema: - $ref: '#/components/schemas/PlatformError' + $ref: '#/components/schemas/PlatformPlatformError' '401': description: Unauthorized content: application/json: schema: - $ref: '#/components/schemas/PlatformError' + $ref: '#/components/schemas/PlatformPlatformError' '403': description: Forbidden content: application/json: schema: - $ref: '#/components/schemas/PlatformError' + $ref: '#/components/schemas/PlatformPlatformError' '404': description: Not Found content: application/json: schema: - $ref: '#/components/schemas/PlatformError' + $ref: '#/components/schemas/PlatformPlatformError' get: summary: Get transaction requests by wallet description: Get a paginated list of transaction requests filtered by wallet. Use only with MPC wallets. @@ -16221,7 +16221,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' put: tags: - Wallet Policy @@ -16256,7 +16256,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' delete: tags: - Wallet Policy @@ -16291,7 +16291,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' /api/v2/pendingApprovals: get: tags: @@ -16416,7 +16416,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' '404': description: Not Found content: @@ -16467,7 +16467,7 @@ paths: oneOf: - $ref: '#/components/schemas/PlatformError3' - $ref: '#/components/schemas/InvalidTransferId' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' /api/v2/{coin}/wallet/{walletId}/transfer/sequenceId/{sequenceId}: get: tags: @@ -16498,7 +16498,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' /api/v2/user/lock: post: description: | @@ -16780,7 +16780,7 @@ paths: - $ref: '#/components/schemas/PlatformError3' - $ref: '#/components/schemas/CannotRemoveAdmin' - $ref: '#/components/schemas/InvalidUserId' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' '404': description: Not Found /api/v2/{coin}/wallet/{walletId}/freeze: @@ -16816,7 +16816,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' '401': description: Unauthorized content: @@ -16862,7 +16862,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' '403': description: Forbidden content: @@ -16919,7 +16919,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' '404': description: Not Found content: @@ -16952,7 +16952,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' '404': description: Not Found content: @@ -17414,7 +17414,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' /api/v2/{coin}/webhooks: post: tags: @@ -17944,7 +17944,7 @@ paths: oneOf: - $ref: '#/components/schemas/PlatformError3' - $ref: '#/components/schemas/InvalidAddress1' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' /api/v2/{coin}/wallet/{walletId}/consolidateUnspents: post: tags: @@ -17974,7 +17974,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' /api/v2/{coin}/wallet/{walletId}/tx/initiate: post: tags: @@ -18009,7 +18009,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' /api/v2/{coin}/wallet/{walletId}/tx/send: post: tags: @@ -18048,7 +18048,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' - $ref: '#/components/schemas/InvalidOFAC' '423': description: Locked @@ -18085,7 +18085,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' /api/v2/{coin}/requiredReserve: get: tags: @@ -18442,7 +18442,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' /api/v2/{coin}/wallet/{walletId}/sendmany: post: tags: @@ -18484,7 +18484,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' /api/v2/encrypt: post: tags: @@ -18701,7 +18701,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' /api/v2/{coin}/wallet/{walletId}/signtxtss: post: tags: @@ -18723,7 +18723,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransactionRequest1' + $ref: '#/components/schemas/TransactionRequest' /api/v2/{coin}/wallet/{walletId}/recovertoken: post: tags: @@ -18753,7 +18753,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' /api/v2/{coin}/wallet/{walletId}/consolidateAccount/build: post: tags: @@ -18784,7 +18784,7 @@ paths: oneOf: - $ref: '#/components/schemas/PlatformError3' - $ref: '#/components/schemas/InvalidAddress1' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' /api/v2/{coin}/wallet/{walletId}/consolidateunspents: post: tags: @@ -18814,7 +18814,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' /api/v2/{coin}/wallet/{walletId}/fanoutunspents: post: tags: @@ -18844,7 +18844,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' /api/v2/{coin}/wallet/{walletId}/sweep: post: tags: @@ -18877,7 +18877,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' /api/v2/{coin}/wallet/{walletId}/acceleratetx: post: tags: @@ -18923,7 +18923,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' /api/v2/{coin}/wallet/{walletId}/transfer/{transferId}/comment: post: tags: @@ -18957,7 +18957,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' - $ref: '#/components/schemas/InvalidTransferId' '401': description: Unauthorized @@ -19085,7 +19085,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError3' - - $ref: '#/components/schemas/InvalidWalletId1' + - $ref: '#/components/schemas/InvalidWalletId' /api/policy/v1/enterprises/{enterpriseId}/rules: get: tags: @@ -19142,7 +19142,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PolicyRule2' + $ref: '#/components/schemas/PolicyRule1' examples: example: $ref: '#/components/examples/PolicyRuleExample' @@ -19169,7 +19169,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PolicyRule2' + $ref: '#/components/schemas/PolicyRule1' examples: example: $ref: '#/components/examples/InactivePolicyRuleExample' @@ -19230,7 +19230,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PolicyRule2' + $ref: '#/components/schemas/PolicyRule1' examples: example: $ref: '#/components/examples/PolicyRuleExample' @@ -19269,7 +19269,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/PolicyRule2' + $ref: '#/components/schemas/PolicyRule1' examples: example: $ref: '#/components/examples/PolicyRuleExample' @@ -22882,7 +22882,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError' - - $ref: '#/components/schemas/InvalidWalletId2' + - $ref: '#/components/schemas/InvalidWalletId1' '403': description: Forbidden content: @@ -22939,7 +22939,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError' - - $ref: '#/components/schemas/InvalidWalletId2' + - $ref: '#/components/schemas/InvalidWalletId1' /api/v2/{coin}/wallet/{walletId}/fundforwarders: post: summary: Send funds to forwarder @@ -23101,7 +23101,7 @@ paths: schema: oneOf: - $ref: '#/components/schemas/PlatformError' - - $ref: '#/components/schemas/InvalidWalletId2' + - $ref: '#/components/schemas/InvalidWalletId1' /api/v2/{coin}/wallet/{walletId}/tx/changeFee: post: summary: Change Fee @@ -26094,7 +26094,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransactionRequest2' + $ref: '#/components/schemas/TransactionRequest1' '400': description: Bad Request content: @@ -26157,7 +26157,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransactionRequest2' + $ref: '#/components/schemas/TransactionRequest1' '400': description: Bad Request content: @@ -26299,7 +26299,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransactionRequest2' + $ref: '#/components/schemas/TransactionRequest1' '400': description: Bad Request content: @@ -27430,40 +27430,21 @@ paths: $ref: '#/components/schemas/PlatformError' components: schemas: - InvalidWalletId: - title: Invalid wallet id + PlatformError: + title: Api Error allOf: - - $ref: '#/components/schemas/InvalidId' - - properties: + - type: object + properties: name: type: string description: Error code - enum: - - InvalidWalletId - required: - - name - InvalidId: - title: InvalidId - allOf: - - type: object - properties: context: type: object - properties: - id: - type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - required: - - id + additionalProperties: {} + description: Properties that apply to a specific error name required: - context - $ref: '#/components/schemas/PlatformErrorNoName' - Id: - title: ID - type: string - pattern: ^[0-9a-f]{32}$ - example: 59cd72485007a239fb00282ed480da1f PlatformErrorNoName: title: PlatformErrorNoName type: object @@ -27477,21 +27458,6 @@ components: required: - error - requestId - PlatformError: - title: Api Error - allOf: - - type: object - properties: - name: - type: string - description: Error code - context: - type: object - additionalProperties: {} - description: Properties that apply to a specific error name - required: - - context - - $ref: '#/components/schemas/PlatformErrorNoName' Webhook: title: Webhook type: object @@ -27608,72 +27574,51 @@ components: - state - successiveFailedAttempts - listenToFailureStates - VerifiedKycState: - type: string - enum: - - approved - - pending - - rejected - IdentityStatus: + WebhookType: + title: WebhookType type: string enum: - - approved - - declined - - input error - - ssn error - - gov id error - - ssn verified - - gov id verified - - evaluating submission - - awaiting document upload - - records uploaded - - in review - - incomplete verifications - - awaiting signature - - signature submitted - - initiating - - additional information submitted - TransactionState: - title: TransactionState + - txRequest + - txRequestTransaction + - transfer + - transaction + - transactionRemoved + - transactionExpire + - pendingapproval + - block + - admin + - address_confirmation + - lowFee + - circuitBreaker + - wallet_confirmation + - bankAccount + - userKycState + - enterpriseKycState + - identityStatus + - accessToken + - accountCreated + - contractSigned + - fundsDeposited + - kycResult + - policyBalanceChange + - transaction_finality_on_l1 + WebhookState: + title: WebhookState type: string enum: - - initialized - - pendingSignature - - eddsaPendingCommitment - - eddsaPendingRShare - - eddsaPendingGShare - - ecdsaMPCv2Round1 - - ecdsaMPCv2Round2 - - ecdsaMPCv2Round3 - - readyToCombineShares - - signed - - held - - delivered - - invalidSignature - - rejected - description: If supplied, only transaction request transaction state changes from the provided list will trigger notifications. If not provided, all transaction request transaction state changes will trigger notifications. - TransactionRequestState: - title: TransactionRequestState + - active + - suspended + description: If 'active', indicates the webhook can trigger and send to the URL. If 'suspended', indicates the webhook can't trigger. + example: active + WebhookScope: + title: WebhookScope type: string enum: - - pendingApproval - - canceled - - rejected - - initialized - - pendingDelivery - - delivered - - pendingUserSignature - - pendingUserCommitment - - pendingUserRShare - - pendingUserGShare - - readyToSend - - signed - - failed - DateTime: - type: string - format: date-time - example: {} - WebhookTypeWallet: + - wallet + - enterprise + - organization + WalletWebhookType: + title: WalletWebhookType type: string enum: - txRequest @@ -27683,18 +27628,40 @@ components: - transactionRemoved - transactionExpire - pendingapproval - - address_confirmation - - lowFee - block - admin + - address_confirmation + - lowFee - circuitBreaker - transaction_finality_on_l1 - example: transfer - description: Event type to listen to. - Coin: - title: Coin - description: A cryptocurrency or token ticker symbol. + - fundsDeposited + WalletIdNonEmptyString: + title: WalletIdNonEmptyString + type: string + example: 59cd72485007a239fb00282ed480da1f + minLength: 1 + pattern: ^[0-9a-f]{32}$ + InvalidId: + title: InvalidId + allOf: + - type: object + properties: + context: + type: object + properties: + id: + type: string + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + required: + - id + required: + - context + - $ref: '#/components/schemas/PlatformErrorNoName' + CoinString: + title: CoinString type: string + description: A cryptocurrency symbol or token ticker symbol example: btc PendingApproval: title: PendingApproval @@ -28042,37 +28009,74 @@ components: - info - state - scope - PendingApprovalAddressLabel: - description: Address labels of recipients in this Pending Approval + EvaluatedPolicyActionStatus: + title: EvaluatedPolicyActionStatus + type: string + enum: + - SKIPPED + - PENDING + - NOT_NEEDED + - COMPLETE + - CANCELLED + - FAILED + PendingApprovalStatePending: + title: Pending + type: string + enum: + - pending + - awaitingSignature + - pendingFinalApproval + - pendingCustodianApproval + - pendingVideoApproval + - pendingIdVerification + - pendingLivenessVerification + PolicyActionParameters: + title: PolicyActionParameters type: object properties: - address: - $ref: '#/components/schemas/AddressString3' - label: - $ref: '#/components/schemas/AddressLabel' - walletLabel: - $ref: '#/components/schemas/WalletLabel' - required: - - address - - label - WalletLabel: + minRequired: + type: string + minLength: 1 + userIds: + type: array + items: + type: string + minLength: 1 + initiatorIsAllowedToApprove: + type: boolean + webhookURL: + type: string + minLength: 1 + livenessCheckUser: + $ref: '#/components/schemas/LivenessVerificationParameter' + isFallback: + type: boolean + walletSubtype: + $ref: '#/components/schemas/CustodialWalletSubType' + CustodialWalletSubType: + title: CustodialWalletSubType type: string - example: My Wallet - AddressLabel: + enum: + - custodialCold + - custodialHot + LivenessVerificationParameter: + title: LivenessVerificationParameter type: string - nullable: true - example: Bob's Hot Wallet Address - maxLength: 250 - description: A human-readable label for the address. + enum: + - transactionInitiator + - walletAdmins + - videoIdUsers + GroupApprovalRequirementOperator: + title: GroupApprovalRequirementOperator + type: string + enum: + - and + - or AddressString: title: AddressString type: string example: 2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZS maxLength: 250 - ApprovalsRequired: - type: integer - minimum: 1 - example: 1 PendingApprovalState: title: PendingApprovalState oneOf: @@ -28080,6 +28084,22 @@ components: - $ref: '#/components/schemas/PendingApprovalStateResolved' - $ref: '#/components/schemas/PendingApprovalStateTrust' - $ref: '#/components/schemas/PendingApprovalStateProtected' + PendingApprovalStateProtected: + title: Pending Protected + type: string + enum: + - pendingVideoApproval + - pendingIdVerification + - awaitingSignature + - pendingCustodianApproval + PendingApprovalStateTrust: + title: Pending Trust + type: string + enum: + - pendingVideoApproval + - pendingIdVerification + - awaitingSignature + - pendingCustodianApproval PendingApprovalStateResolved: title: Resolved type: string @@ -28089,221 +28109,513 @@ components: - rejected - skipped - failed - PendingApprovalStatePending: - title: Pending - type: string - enum: - - pending - - awaitingSignature - - pendingFinalApproval - - pendingCustodianApproval - - pendingVideoApproval - - pendingIdVerification - - pendingLivenessVerification - PendingApprovalEnterpriseInviteRequest: - title: Enterprise Invite Request + PendingApprovalInfo: + title: PendingApprovalInfo type: object properties: type: - type: string - enum: - - enterpriseInviteRequest - enterpriseInviteRequest: + $ref: '#/components/schemas/PendingApprovalType' + userChangeRequest: type: object properties: action: type: string - enum: - - add - email: + description: The action taken + permissions: + type: array + items: + type: string + description: The permissions associated with the change + userChanged: type: string - description: The email address of the user being invited - userId: - $ref: '#/components/schemas/Id' - description: The ID of the user being invited - isVideoIdUser: + description: The user that changed + transactionRequest: + type: object + properties: + buildParams: {} + coinSpecific: {} + comment: + nullable: true + type: string + description: The comment for the transaction request + fee: {} + isUnsigned: + nullable: true type: boolean - enterpriseInfo: - type: object - properties: - id: - $ref: '#/components/schemas/Id' - description: The ID of the enterprise the user is being invited to - name: - type: string - description: The name of the enterprise the user is being invited to - requiredVerificationStep: - type: string - description: The required verification step needed (if any) before the user can join the enterprise - invitedBy: - type: object - properties: - id: - $ref: '#/components/schemas/Id' - description: The ID of the user who invited the user - fullName: - type: string - description: The full name of the user who invited the user - email: - type: string - description: The email address of the user who invited the user - PendingApprovalEnterpriseModificationResponse: - title: Enterprise modification request - type: object - properties: + description: Indicates if the transaction is unsigned + policyUniqueId: {} + recipients: + type: array + items: + type: object + properties: + address: + type: string + description: The address of the recipient + example: 2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZS + maxLength: 250 + amount: {} + data: + type: string + description: Additional data for the transaction + description: The recipients of the transaction + requestedAmount: {} + sourceWallet: {} + triggeredPolicy: {} + validTransaction: + type: string + description: Indicates if the transaction is valid + validTransactionHash: + type: string + description: The hash of the valid transaction + verificationItems: + nullable: true + type: array + items: + type: string + description: The verification items for the transaction + verificationRuleId: + nullable: true + type: string + description: The ID of the verification rule + videoApprovers: + type: array + items: + description: The video approvers for the transaction + transactionRequestFull: + type: object + properties: + intent: + allOf: + - $ref: '#/components/schemas/PaymentIntent' + description: The intent of the transaction request + policyUniqueId: + type: string + description: The unique ID for the policy + txRequest: + oneOf: + - $ref: '#/components/schemas/TransactionRequestLite2' + - $ref: '#/components/schemas/TransactionRequestFull' + description: The transaction request details + txRequestId: + allOf: + - $ref: '#/components/schemas/TransactionRequestId' + description: The ID of the transaction request + verificationItems: + type: array + items: + type: string + description: The verification items for the transaction + verificationRuleId: + type: string + description: The ID of the verification rule + videoApprovers: + type: array + items: + type: string + description: The video approvers for the transaction + walletRebalanceEventId: + type: string + description: The ID of the wallet rebalance event + required: + - txRequestId policyRuleRequest: type: object properties: action: type: string - updateEnterpriseRequest: + description: The action of the policy rule request + update: type: object + description: The update details of the policy rule request properties: - type: - type: string - enum: - - updateEnterpriseRequest action: + allOf: + - $ref: '#/components/schemas/PolicyRuleAction' + description: The action of the policy rule + coin: + $ref: '#/components/schemas/CoinString' + condition: + allOf: + - $ref: '#/components/schemas/PolicyRuleUpdateCondition' + description: The condition of the policy rule + id: type: string - enum: - - add - - remove - permission: - type: string - enum: - - admin - userId: - type: string - email: + description: The ID of the policy rule + type: allOf: - - $ref: '#/components/schemas/Email' - description: E-Mail address of newly added users - type: - type: string - enum: - - policyRuleRequest - Email: - type: string - format: email - example: user@example.com - PendingApprovalUpdateApprovalsRequiredRequest: - title: Update approvals required request - type: object - properties: - type: - type: string - enum: - - updateApprovalsRequiredRequest + - $ref: '#/components/schemas/ApiRuleType' + description: The type of the API rule updateApprovalsRequiredRequest: type: object properties: requestedApprovalsRequired: type: number - PendingApprovalPolicyRuleRequest: - title: Policy rule request - type: object - properties: - policyRuleRequest: + description: The number of requested approvals required + updateEnterpriseRequest: type: object properties: action: type: string - update: + enum: + - add + - update + - remove + email: + type: string + description: The email of the user + isVideoIdUser: + type: boolean + description: Indicates if the user is a video ID user + permissions: + type: string + enum: + - admin + description: The permissions associated with the update + userId: + type: string + description: The ID of the user + updateOrganizationRequest: + type: object + properties: + action: + type: string + enum: + - add + - update + - remove + email: + type: string + description: The email of the user + role: + type: string + enum: + - admin + - member + - customer + description: The role of the user in the organization + example: admin + userId: + type: string + description: The ID of the user + genericRequest: + type: object + properties: + anchors: + type: array + items: + type: object + properties: + anchorType: + allOf: + - $ref: '#/components/schemas/AnchorType' + description: The type of the anchor + key: + type: string + description: The key of the anchor + value: + type: string + description: The value of the anchor + required: + - anchorType + - key + - value + description: The anchors associated with the request + changeType: + allOf: + - $ref: '#/components/schemas/ChangeType' + description: The type of change requested + currentId: + type: string + description: The current ID associated with the request + description: + type: string + description: The description of the request + metadata: type: object + additionalProperties: + oneOf: + - type: string + - type: number + - type: boolean + description: The metadata of the request + proposedId: + type: string + description: The proposed ID associated with the request + resourceType: + type: string + description: The resource type of the request + enterpriseInviteRequest: + type: object + properties: + action: + type: string + enum: + - add + - update + - remove + email: + type: string + description: The email of the user + enterpriseInfo: + type: object + description: Additional info used by the client accepting the invite properties: - action: - $ref: '#/components/schemas/PolicyRuleActions' - coin: - $ref: '#/components/schemas/Coin' - condition: + id: + type: string + invitedBy: type: object properties: - excludeTags: - $ref: '#/components/schemas/IdArray' - groupTags: - $ref: '#/components/schemas/IdArray' - additionalProperties: true - id: + email: + type: string + fullName: + type: string + id: + type: string + required: + - email + - fullName + - id + name: type: string - description: the id of the rule that is being updated - type: - $ref: '#/components/schemas/PolicyRuleTriggers' - type: - type: string - enum: - - policyRuleRequest - PolicyRuleTriggers: + requiredVerificationStep: + type: string + userKycState: + type: string + required: + - id + - invitedBy + - name + - requiredVerificationStep + isVideoIdUser: + type: boolean + description: Indicates if the user is a video ID user + permissions: + type: string + enum: + - admin + description: The permissions associated with the invite + userId: + type: string + description: The ID of the user + required: + - type + ChangeType: + title: ChangeType + type: string + enum: + - create + - update + - delete + AnchorType: + title: AnchorType + type: string + enum: + - policyRuleId + - settlementId + ApiRuleType: + title: ApiRuleType type: string enum: - advancedWhitelist - allTx - - bitcoinAddressWhitelist - coinAddressWhitelist - coinAddressBlacklist - - transactionLimit + - trustUsdVelocityLimit + - txUsdThreshold + - usdVelocityLimit - velocityLimit - webhook - description: What causes this rule to trigger - IdArray: - type: array - items: - $ref: '#/components/schemas/Id' - example: - - 585951a5df8380e0e3063e9f - - 585951a5df8380e0e304a553 - PolicyRuleActions: - description: What happens when this rule is triggered + PolicyRuleUpdateCondition: + title: PolicyRuleUpdateCondition + oneOf: + - $ref: '#/components/schemas/AddressListRuleUpdateCondition' + - $ref: '#/components/schemas/AdvancedListRuleUpdateCondition' + - $ref: '#/components/schemas/TxUsdThresholdRuleCondition' + - $ref: '#/components/schemas/LimitRuleCondition' + - $ref: '#/components/schemas/WebhookRuleCondition' + WebhookRuleCondition: + title: WebhookRuleCondition type: object properties: - type: + url: type: string - enum: - - deny - - getApproval - - getGroupApproval - - getFinalApproval - - getCustodianApproval - - getIdVerification - - noop - approvalsRequired: - $ref: '#/components/schemas/ApprovalsRequired' - userIds: - description: For a final approver action, who can approve + description: The url to query for the webhook + required: + - url + LimitRuleCondition: + title: LimitRuleCondition + type: object + properties: + amountString: + type: string + example: '2000000' + pattern: ^-?\d+$ + timeWindow: + type: number + description: Time window in seconds for a velocity limit, between 1 and 30 days + minimum: 0 + maximum: 2678400 + groupTags: type: array items: - $ref: '#/components/schemas/Id' + type: string + startDate: + type: string + format: date-time + title: ISO Date String required: - - type - PendingApprovalUserChangeRequest: - title: User change request + - amountString + - timeWindow + TxUsdThresholdRuleCondition: + title: TxUsdThresholdRuleCondition type: object properties: - type: + lowerBound: type: string - enum: - - userChangeRequest - userChangeRequest: + upperBound: + type: string + required: + - lowerBound + AdvancedListRuleUpdateCondition: + title: AdvancedListRuleUpdateCondition + type: object + properties: + add: + $ref: '#/components/schemas/AdvancedListRuleEntry' + remove: type: object properties: - action: + item: type: string - permissions: + type: type: string - userChanged: - $ref: '#/components/schemas/Id' - TransactionRequest: - anyOf: - - $ref: '#/components/schemas/TransactionRequestLite' - - $ref: '#/components/schemas/TransactionRequestFull' + enum: + - address + - enterpriseId + - walletId + required: + - item + verifyItems: + type: object + properties: + items: + type: array + items: + type: string + required: + - items + AdvancedListRuleEntry: + title: AdvancedListRuleEntry + 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: - - txRequestId - - version - - latest + - item + - type + AdvancedListType: + title: AdvancedListType + type: string + enum: + - address + - enterpriseId - walletId - - state - - date - - userId - - intent + AddressListRuleUpdateCondition: + title: AddressListRuleUpdateCondition + type: object + properties: + add: + type: string + remove: + type: string + metaData: + type: object + additionalProperties: + type: object + additionalProperties: {} + PolicyRuleAction: + title: PolicyRuleAction + type: object + properties: + type: + allOf: + - $ref: '#/components/schemas/ActionType' + description: The type of the action + approvalsRequired: + type: number + description: The number of approvals required + userIds: + type: array + items: + type: string + description: The user IDs associated with the action + groupApprovalRequirement: + type: object + description: The group approval requirement + properties: + items: + type: array + items: + type: object + properties: + id: + type: string + description: The ID of the group + minimumApprovals: + type: number + description: The name of the group + type: + type: string + description: The type of the group + required: + - id + - type + operator: + $ref: '#/components/schemas/GroupApprovalRequirementOperator' + required: + - items + - operator + required: + - type + ActionType: + title: ActionType + type: string + enum: + - deny + - getApproval + - getEnterpriseUserApproval + - getAnyApproval + - getGroupApproval + - getFinalApproval + - getVideoApproval + - getIdVerification + - verifyWalletRebalance + - getCustodianApproval + - getCustodialSignature + - noop + - triggerWebhookNotification + - performLivenessVerification + - recommendBackingWalletRouting + TransactionRequestId: + title: TransactionRequestId + type: string + example: 123e4567-e89b-12d3-a456-426614174000 + format: uuid TransactionRequestFull: title: TransactionRequestFull allOf: @@ -28363,165 +28675,6 @@ components: - unsignedTx description: The transactions associated with the transaction request - $ref: '#/components/schemas/TransactionRequestBase' - SignatureShare: - type: object - properties: - from: - allOf: - - $ref: '#/components/schemas/KeyShareSource' - description: The source of the signature share. - to: - allOf: - - $ref: '#/components/schemas/KeyShareSource' - description: The recipient of the signature share. - share: - type: string - description: The signature share. - required: - - from - - to - - share - KeyShareSource: - type: string - enum: - - user - - backup - - bitgo - example: user - CommitmentShare: - type: object - properties: - from: - allOf: - - $ref: '#/components/schemas/KeyShareSource' - description: The source of the commitment share. - to: - allOf: - - $ref: '#/components/schemas/KeyShareSource' - description: The recipient of the commitment share. - share: - type: string - description: The commitment share. - type: - allOf: - - $ref: '#/components/schemas/CommitmentType' - - default: commitment - description: The type of the commitment share. - required: - - from - - to - - share - - type - CommitmentType: - type: string - enum: - - commitment - example: commitment - TransactionRequestUnsignedTransaction: - type: object - properties: - 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. - feeInfo: - type: object - properties: - feeString: - type: string - fee: - type: number - required: - - fee - - feeString - coinSpecific: - description: Coin specific information. - type: object - parsedTx: - description: The parsed transaction information. - type: object - properties: - minerFee: - type: string - spendAmount: - type: string - spendAmounts: - type: array - items: - type: object - properties: - coinName: - type: string - amountString: - type: string - payGoFee: - type: string - outputs: - type: array - items: - type: object - properties: - address: - type: string - isPayGo: - type: boolean - value: - type: number - wallet: - type: string - walletV1: - type: string - baseAddress: - type: string - enterprise: - type: string - valueString: - type: string - data: - type: string - change: - type: boolean - coinName: - type: string - required: - - address - - valueString - inputs: - type: array - items: - type: object - properties: - derivationIndex: - type: number - value: - type: number - address: - type: string - valueString: - type: string - chain: - type: number - index: - type: number - required: - - valueString - - value - type: - type: string - memo: - type: string - required: - - minerFee - - outputs - - inputs - required: - - serializedTxHex - - signableHex TransactionRequestBase: title: TransactionRequestBase type: object @@ -28611,216 +28764,228 @@ components: - updatedBy - intents - latest - TransactionRequestIntent: - anyOf: - - $ref: '#/components/schemas/AdaStakeIntent' - - $ref: '#/components/schemas/ConsolidateTokenIntent' - - $ref: '#/components/schemas/CosmosContractCallIntent' - - $ref: '#/components/schemas/DOTClaimIntent' - - $ref: '#/components/schemas/DotPaymentIntent' - - $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/NearStakeIntent' - - $ref: '#/components/schemas/NearUnstakeIntent' - - $ref: '#/components/schemas/NearWithdrawIntent' - - $ref: '#/components/schemas/SolClaimIntent' - - $ref: '#/components/schemas/SolCreateAssociatedTokenAccountIntent' - - $ref: '#/components/schemas/SolStakeIntent' - - $ref: '#/components/schemas/SolUnstakeIntent' - - $ref: '#/components/schemas/TransferTokenIntent' - - $ref: '#/components/schemas/UnstakeIntent2' - - $ref: '#/components/schemas/WalletRecoveryIntent' - - $ref: '#/components/schemas/WithdrawIntent2' - WithdrawIntent2: - title: Generic claim unstake - allOf: - - $ref: '#/components/schemas/BaseStakeIntent2' - - type: object - properties: - intentType: - type: string - enum: - - claim - required: - - intentType - BaseStakeIntent2: - allOf: - - $ref: '#/components/schemas/BaseIntent2' - - type: object - properties: - stakingRequestId: - type: string - required: - - stakingRequestId - BaseIntent2: + TransactionRequestState: + title: TransactionRequestState + type: string + enum: + - pendingApproval + - canceled + - rejected + - initialized + - pendingDelivery + - delivered + - pendingUserSignature + - pendingUserCommitment + - pendingUserRShare + - pendingUserGShare + - readyToSend + - signed + - failed + WalletIdString: + title: WalletIdString + type: string + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + BaseShare: + title: BaseShare type: object properties: - intentType: + from: + allOf: + - $ref: '#/components/schemas/SignatureShareType' + description: The source of the commitment share + example: user + to: + allOf: + - $ref: '#/components/schemas/SignatureShareType' + description: The recipient of the commitment share. + example: bitgo + share: type: string - sequenceId: + description: The commitment share. + required: + - from + - to + - share + SignatureShareType: + title: SignatureShareType + type: string + enum: + - user + - backup + - bitgo + SignatureShareWithoutVssProof: + title: SignatureShareWithoutVssProof + type: object + properties: + from: + allOf: + - $ref: '#/components/schemas/SignatureShareType' + description: The source of the signature share. + to: + allOf: + - $ref: '#/components/schemas/SignatureShareType' + description: The recipient of the signature share. + share: 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: + description: The signature share + required: + - from + - to + - share + UnsignedTransaction: + title: UnsignedTransaction + type: object + properties: + parsedTx: + $ref: '#/components/schemas/ParsedTx' + serializedTxHex: type: string - description: The 'comment' is only visible to users on the wallet and is not shared publicly. - nonce: + description: The unsigned transaction as a hex string. + signableHex: type: string - description: The 'nonce' of a transaction (optional) - memo: + 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 'memo' is an additional address feature necessary for identifying a transaction recipient beyond wallet address. - required: - - intentType - WalletRecoveryIntent: - title: Wallet Recovery Intent - allOf: - - type: object + 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: - intentType: - type: string - enum: - - walletRecovery - required: - - intentType - - $ref: '#/components/schemas/BaseIntent' - UnstakeIntent2: - title: Generic Unstake - allOf: - - $ref: '#/components/schemas/BaseStakeIntent2' - - type: object - properties: - intentType: - type: string - enum: - - unstake - required: - - intentType - TransferTokenIntent: - title: TransferTokenIntent - allOf: - - type: object - properties: - intentType: + fee: + oneOf: + - type: string + - type: number + feeString: type: string - enum: - - transferToken - recipients: - type: array - items: - allOf: - - type: object - properties: - tokenData: - $ref: '#/components/schemas/TokenData' - required: - - tokenData - - $ref: '#/components/schemas/RecipientEntry' required: - - intentType - - recipients - - $ref: '#/components/schemas/BaseIntent' - RecipientEntry: - title: RecipientEntry - type: object - properties: - address: - $ref: '#/components/schemas/Address' - amount: - $ref: '#/components/schemas/Amount' - data: - $ref: '#/components/schemas/optionalString' - required: - - address - - amount - TokenData: - title: TokenData - allOf: - - type: object - properties: {} - - $ref: '#/components/schemas/TokenRecipientEntryItem' - - $ref: '#/components/schemas/SupportedTokenRecipientEntryItem' - - $ref: '#/components/schemas/UnsupportedTokenRecipientEntryItem' - Amount2: - type: object - properties: - value: - type: string - description: The value should be a valid number. - example: '100' - symbol: - type: string - description: The coin or token the value is referring to. - example: usdc + - fee + - feeString required: - - value - - symbol - TxAddress: + - parsedTx + - serializedTxHex + - signableHex + ParsedTx: + title: ParsedTx type: object properties: - address: + inputs: + type: array + items: + type: object + properties: + valueString: + type: string + _id: + type: string + address: + type: string + chain: + type: number + derivationIndex: + type: number + index: + type: number + value: + oneOf: + - type: number + - type: number + required: + - valueString + minerFee: + oneOf: + - type: string + - type: number + outputs: + type: array + items: + type: object + properties: + valueString: + type: string + address: + type: string + change: + type: boolean + coinName: + type: string + data: + type: string + isPayGo: + type: boolean + value: + oneOf: + - type: number + - type: number + wallet: + type: string + walletV1: + type: string + baseAddress: + type: string + enterprise: + type: string + required: + - valueString + spendAmount: + oneOf: + - type: string + - type: number + gasPrice: + type: number + hasUnvalidatedData: + type: boolean + payGoFee: + oneOf: + - type: string + - type: number + spendAmounts: + type: array + items: + type: object + additionalProperties: {} + type: type: string - options: - type: object required: - - address - SolUnstakeIntent: - title: SOL Unstake Intent - allOf: - - type: object - properties: - stakingAddress: - type: string - amount: - type: object - properties: - symbol: - type: string - value: - type: string - required: - - symbol - - value - remainingStakingAmount: - type: object - properties: - symbol: - type: string - value: - type: string - required: - - symbol - - value - required: - - stakingAddress - - $ref: '#/components/schemas/UnstakeIntent' - - $ref: '#/components/schemas/SolBuildOptions' - SolBuildOptions: - title: SolBuildOptions - allOf: - - type: object - properties: - memo: - $ref: '#/components/schemas/optionalString' - required: - - memo - - $ref: '#/components/schemas/AccountBaseBuildOptions' - optionalString: - title: optionalString + - inputs + - minerFee + - outputs + - spendAmount + TransactionState: + title: TransactionState type: string - BaseIntent1: + enum: + - initialized + - pendingSignature + - eddsaPendingCommitment + - eddsaPendingRShare + - eddsaPendingGShare + - ecdsaMPCv2Round1 + - ecdsaMPCv2Round2 + - ecdsaMPCv2Round3 + - readyToCombineShares + - signed + - held + - delivered + - invalidSignature + - rejected + description: If supplied, only transaction request transaction state changes from the provided list will trigger notifications. If not provided, all transaction request transaction state changes will trigger notifications. + BaseIntent: title: Intent type: object properties: intentType: - $ref: '#/components/schemas/IntentType1' + $ref: '#/components/schemas/IntentType' sequenceId: $ref: '#/components/schemas/optionalString' comment: @@ -28831,6 +28996,9 @@ components: - type: number required: - intentType + optionalString: + title: optionalString + type: string IntentType: title: IntentType type: string @@ -28865,21 +29033,43 @@ components: - deactivate - customTx - closeAssociatedTokenAccount - SolStakeIntent: - title: SOL Stake Intent + BeraDelegateIntent: + title: Bera Delegate Intent allOf: - type: object properties: - validatorAddress: + intentType: type: string - amount: - $ref: '#/components/schemas/Amount' + enum: + - delegate + recipients: + type: array + items: + type: object + properties: + address: + $ref: '#/components/schemas/Address' + amount: + $ref: '#/components/schemas/Amount' + data: + $ref: '#/components/schemas/optionalString' + required: + - address + - amount required: - - validatorAddress - - amount - - $ref: '#/components/schemas/StakeIntent' - - $ref: '#/components/schemas/SolBuildOptions' - Amount1: + - intentType + - $ref: '#/components/schemas/BaseStakeIntent' + BaseStakeIntent: + title: BaseStakeIntent + allOf: + - type: object + properties: + stakingRequestId: + type: string + required: + - stakingRequestId + - $ref: '#/components/schemas/BaseIntent' + Amount: title: Amount type: object properties: @@ -28890,78 +29080,150 @@ components: required: - value - symbol - SolCreateAssociatedTokenAccountIntent: - title: SOL Create Associated Token Account Intent - allOf: - - type: object - properties: {} - - $ref: '#/components/schemas/EnableTokenIntent' - - $ref: '#/components/schemas/SolBuildOptions' - EnableTokenIntent: - title: EnableTokenIntent + Address: + title: Address + type: object + properties: + address: + $ref: '#/components/schemas/optionalString' + option: + $ref: '#/components/schemas/optionalUnknownObject' + optionalUnknownObject: + title: optionalUnknownObject + type: object + additionalProperties: {} + EthLikeStakeIntent: + title: EthLike Stake Intent allOf: - type: object properties: intentType: - type: string - enum: - - enableToken - enableTokens: + $ref: '#/components/schemas/IntentType' + recipients: type: array items: type: object properties: - name: - type: string address: + $ref: '#/components/schemas/Address' + amount: + $ref: '#/components/schemas/Amount' + data: $ref: '#/components/schemas/optionalString' required: - - name + - address + - amount required: - intentType - - enableTokens - - $ref: '#/components/schemas/BaseIntent' - SolClaimIntent: - title: SOL Claim Intent + - $ref: '#/components/schemas/BaseStakeIntent' + CoreDaoClaimIntent: + title: CoreDAO Claim Rewards Intent allOf: - type: object properties: - stakingAddress: + intentType: + type: string + enum: + - stakeClaimRewards + required: + - intentType + - $ref: '#/components/schemas/BaseStakeIntentWithCalldata' + BaseStakeIntentWithCalldata: + title: Base Stake Intent with Calldata + allOf: + - type: object + properties: + calldata: + type: string + required: + - calldata + - $ref: '#/components/schemas/BaseStakeIntent' + CoreDaoUndelegateIntent: + title: CoreDAO Undelegate Intent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - undelegate + validatorAddress: type: string amount: $ref: '#/components/schemas/Amount' required: - - stakingAddress + - intentType + - validatorAddress - amount - - $ref: '#/components/schemas/WithdrawIntent' - - $ref: '#/components/schemas/SolBuildOptions' - NearWithdrawIntent: - title: Near Withdraw Intent + - $ref: '#/components/schemas/BaseStakeIntentWithCalldata' + CoreDaoDelegateIntent: + title: CoreDAO Delegate Intent allOf: - type: object properties: - recipients: - type: array - items: - type: object - properties: - address: - $ref: '#/components/schemas/Address' - amount: - $ref: '#/components/schemas/Amount' - data: - $ref: '#/components/schemas/optionalString' - required: - - address - - amount + intentType: + type: string + enum: + - delegate + validatorAddress: + type: string + amount: + $ref: '#/components/schemas/Amount' required: - - recipients - - $ref: '#/components/schemas/WithdrawIntent' - NearUnstakeIntent: - title: Near Unstake Intent + - intentType + - validatorAddress + - amount + - $ref: '#/components/schemas/BaseStakeIntentWithCalldata' + WalletRecoveryIntent: + title: Wallet Recovery Intent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - walletRecovery + required: + - intentType + - $ref: '#/components/schemas/BaseIntent' + TonUndelegateIntent: + title: TON Undelegate Intent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - undelegate + validatorAddress: + type: string + useSingleNominator: + type: boolean + singleNominatorAmount: + $ref: '#/components/schemas/Amount' + required: + - intentType + - validatorAddress + - useSingleNominator + - singleNominatorAmount + - $ref: '#/components/schemas/BaseIntent' + TonPaymentIntent: + title: TON Payment Intent + allOf: + - type: object + properties: + memo: + $ref: '#/components/schemas/optionalString' + - $ref: '#/components/schemas/PaymentIntent' + PaymentIntent: + title: PaymentIntent allOf: - type: object properties: + intentType: + type: string + enum: + - payment recipients: type: array items: @@ -28977,13 +29239,51 @@ components: - address - amount required: + - intentType - recipients - - $ref: '#/components/schemas/UnstakeIntent' - NearStakeIntent: - title: Near Stake Intent + - $ref: '#/components/schemas/BaseIntent' + TonDelegateIntent: + title: TON Delegate Intent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - delegate + validatorAddress: + type: string + amount: + $ref: '#/components/schemas/Amount' + useSingleNominator: + type: boolean + ownerAddress: + $ref: '#/components/schemas/optionalString' + required: + - intentType + - validatorAddress + - amount + - useSingleNominator + - $ref: '#/components/schemas/BaseIntent' + TonConsolidateIntent: + title: TON Consolidate Intent + allOf: + - $ref: '#/components/schemas/AccountBaseConsolidateIntent' + AccountBaseConsolidateIntent: + title: AccountBaseConsolidateIntent allOf: - type: object properties: + intentType: + type: string + enum: + - consolidate + receiveAddress: + type: string + senderAddressIndex: + $ref: '#/components/schemas/optionalNumber' + consolidateId: + $ref: '#/components/schemas/optionalString' recipients: type: array items: @@ -28998,5781 +29298,6331 @@ components: required: - address - amount + keepAlive: + $ref: '#/components/schemas/optionalBoolean' required: - - recipients - - $ref: '#/components/schemas/StakeIntent' - StakeIntent2: + - intentType + - receiveAddress + - $ref: '#/components/schemas/AccountBaseBuildOptions' + AccountBaseBuildOptions: + title: AccountBaseBuildOptions + type: object + properties: + nonce: + oneOf: + - type: string + - type: number + optionalBoolean: + title: optionalBoolean + type: boolean + optionalNumber: + title: optionalNumber + type: number + SuiUnstakingIntent: + title: SUI Unstaking Intent allOf: - - $ref: '#/components/schemas/BaseStakeIntent2' - type: object properties: - intentType: + stakedSuiObjectId: type: string - enum: - - stake - required: - - intentType - EthStakingIntent: - title: ETH Staking Intent - allOf: - - type: object - properties: - pubkey: - type: string - withdrawalCredentials: - type: string - signature: - type: string - depositDataRoot: - type: string - required: - - pubkey - - withdrawalCredentials - - signature - - depositDataRoot - - $ref: '#/components/schemas/StakeIntent' - - $ref: '#/components/schemas/EthBuildOptions' - EthBuildOptions: - title: EthBuildOptions - allOf: - - type: object - properties: - feeOptions: - oneOf: - - $ref: '#/components/schemas/FeeOption' - - $ref: '#/components/schemas/EIP1559FeeOptions' - hopParams: + amount: type: object properties: - gasPriceMax: - $ref: '#/components/schemas/optionalNumber' - paymentId: - $ref: '#/components/schemas/optionalString' - userReqSig: - $ref: '#/components/schemas/optionalString' + symbol: + type: string + value: + type: string required: - - gasPriceMax - - paymentId - - userReqSig - receiveAddress: - $ref: '#/components/schemas/optionalString' - senderAddressIndex: - $ref: '#/components/schemas/optionalNumber' - - $ref: '#/components/schemas/AccountBaseBuildOptions' - optionalNumber: - title: optionalNumber - type: number - EIP1559FeeOptions: - title: EIP1559FeeOptions - type: object - properties: - gasLimit: - $ref: '#/components/schemas/optionalNumber' - maxFeePerGas: - $ref: '#/components/schemas/optionalNumber' - maxPriorityFeePerGas: - $ref: '#/components/schemas/optionalNumber' - FeeOption: - title: FeeOption - type: object - properties: - unit: - type: string - enum: - - baseUnit - - cpu - - ram - formula: - type: string - enum: - - fixed - - feeRate - - perKB - - custom - - perVKB - feeType: - type: string - enum: - - base - - max - - tip - gasLimit: - $ref: '#/components/schemas/optionalNumber' - gasPrice: - $ref: '#/components/schemas/optionalNumber' - ETHSignMessageIntent: - title: Eth sign message + - symbol + - value + required: + - stakedSuiObjectId + - $ref: '#/components/schemas/WithdrawIntent' + WithdrawIntent: + title: WithdrawIntent allOf: - - $ref: '#/components/schemas/BaseIntent2' - type: object properties: intentType: type: string enum: - - signMessage + - claim + amount: + type: object + properties: + symbol: + type: string + value: + type: string + required: + - symbol + - value required: - intentType - EthPaymentIntent: - title: ETH Payment Intent - allOf: - - type: object - properties: - selfSend: - $ref: '#/components/schemas/optionalBoolean' - required: - - selfSend - - $ref: '#/components/schemas/PaymentIntent' - - $ref: '#/components/schemas/EthBuildOptions' - PaymentIntent1: - title: PaymentIntent + - $ref: '#/components/schemas/BaseStakeIntent' + SuiStakingIntent: + title: SUI Stake Intent allOf: - type: object properties: - intent: - type: string - enum: - - payment + validatorAddress: + $ref: '#/components/schemas/optionalString' + amount: + type: object + properties: + symbol: + type: string + value: + type: string + required: + - symbol + - value recipients: type: array items: type: object properties: address: - $ref: '#/components/schemas/Address1' + $ref: '#/components/schemas/Address' amount: - $ref: '#/components/schemas/Amount1' + $ref: '#/components/schemas/Amount' data: $ref: '#/components/schemas/optionalString' required: - address - amount - required: - - intent - - recipients - - $ref: '#/components/schemas/BaseIntent1' - Address1: - title: Address - type: object - properties: - address: - $ref: '#/components/schemas/optionalString' - option: - $ref: '#/components/schemas/optionalUnknownObject' - optionalUnknownObject: - title: optionalUnknownObject - type: object - additionalProperties: {} - optionalBoolean: - title: optionalBoolean - type: boolean - EthFillNonceIntent: - title: ETH Fill Nonce Intent - allOf: - - type: object - properties: {} - - $ref: '#/components/schemas/FillNonceIntent' - - $ref: '#/components/schemas/EthFillNonceBuildOptions' - EthFillNonceBuildOptions: - title: EthFillNonceBuildOptions - type: object - properties: - feeOptions: - oneOf: - - $ref: '#/components/schemas/FeeOption' - - $ref: '#/components/schemas/EIP1559FeeOptions' - receiveAddress: - $ref: '#/components/schemas/optionalString' - senderAddressIndex: - $ref: '#/components/schemas/optionalNumber' - FillNonceIntent: - title: FillNonceIntent + - $ref: '#/components/schemas/StakeIntent' + StakeIntent: + title: StakeIntent allOf: - type: object properties: intentType: type: string enum: - - fillNonce - nonce: - oneOf: - - type: string - - type: number + - stake required: - intentType - - nonce - - $ref: '#/components/schemas/BaseIntentWithoutNonce' - BaseIntentWithoutNonce: - title: BaseIntentWithoutNonce - type: object - properties: - intentType: - $ref: '#/components/schemas/IntentType' - sequenceId: - $ref: '#/components/schemas/optionalString' - comment: - $ref: '#/components/schemas/optionalString' - required: - - intentType - EthAccelerationIntent: - title: ETH Acceleration Intent + - $ref: '#/components/schemas/BaseStakeIntent' + SuiPaymentIntent: + title: SUI Payment Intent allOf: - type: object - properties: - feeOptions: - oneOf: - - $ref: '#/components/schemas/FeeOption' - - $ref: '#/components/schemas/EIP1559FeeOptions' - required: - - feeOptions - - $ref: '#/components/schemas/AccelerationIntent' - - $ref: '#/components/schemas/EthBuildOptionsWithoutFeeOptions' - EthBuildOptionsWithoutFeeOptions: - title: EthBuildOptionsWithoutFeeOptions + properties: {} + - $ref: '#/components/schemas/PaymentIntent' + - $ref: '#/components/schemas/SuiBuildOptions' + SuiBuildOptions: + title: SuiBuildOptions allOf: - type: object properties: - hopParams: - type: object - properties: - gasPriceMax: - $ref: '#/components/schemas/optionalNumber' - paymentId: - $ref: '#/components/schemas/optionalString' - userReqSig: - $ref: '#/components/schemas/optionalString' - required: - - gasPriceMax - - paymentId - - userReqSig - receiveAddress: + feeOptions: + $ref: '#/components/schemas/SuiFeeOptions' + lockedAmount: $ref: '#/components/schemas/optionalString' - senderAddressIndex: - $ref: '#/components/schemas/optionalNumber' - - $ref: '#/components/schemas/AccountBaseBuildOptions' - AccelerationIntent: - title: AccelerationIntent + required: + - feeOptions + - lockedAmount + - $ref: '#/components/schemas/BaseIntent' + SuiFeeOptions: + title: SuiFeeOptions + type: object + properties: + gasLimit: + type: number + required: + - gasLimit + SuiCustomTxIntent: + title: SUI Custom Tx Intent allOf: - type: object properties: intentType: type: string enum: - - acceleration - txid: + - customTx + rawTx: type: string required: - intentType - - txid + - rawTx - $ref: '#/components/schemas/BaseIntent' - DotUnstakingIntent: - title: DOT Unstaking Intent + - $ref: '#/components/schemas/SuiBuildOptions' + SuiConsolidateIntent: + title: SUI Consolidate Intent allOf: - type: object - properties: - amount: - $ref: '#/components/schemas/Amount' - stakingProxy: - type: string - stopStaking: - $ref: '#/components/schemas/optionalBoolean' - required: - - amount - - stakingProxy - - $ref: '#/components/schemas/UnstakeIntent' - - $ref: '#/components/schemas/DotAccountBaseBuildOptions' - DotAccountBaseBuildOptions: - title: DotAccountBaseBuildOptions + properties: {} + - $ref: '#/components/schemas/AccountBaseConsolidateIntent' + - $ref: '#/components/schemas/SuiBuildOptions' + SolUnstakeIntent: + title: SOL Unstake Intent allOf: - type: object properties: - fee: + stakingAddress: + type: string + amount: type: object properties: - amount: - oneOf: - - type: string - - type: number - formula: + symbol: type: string - enum: - - fixed - - feeRate - - perKB - - custom - type: + value: type: string - enum: - - base - - max - - tip - unit: + required: + - symbol + - value + remainingStakingAmount: + type: object + properties: + symbol: + type: string + value: type: string - enum: - - baseUnit - - cpu - - ram required: - - amount + - symbol + - value + required: + - stakingAddress + - $ref: '#/components/schemas/UnstakeIntent' + - $ref: '#/components/schemas/SolBuildOptions' + SolBuildOptions: + title: SolBuildOptions + allOf: + - type: object + properties: + memo: + $ref: '#/components/schemas/optionalString' + required: + - memo - $ref: '#/components/schemas/AccountBaseBuildOptions' - DotStakingIntent: - title: DOT Staking Intent + UnstakeIntent: + title: UnstakeIntent allOf: - type: object properties: - amount: - $ref: '#/components/schemas/Amount' - stakingProxy: + intentType: type: string - addToStake: - $ref: '#/components/schemas/optionalBoolean' - addProxy: - $ref: '#/components/schemas/optionalBoolean' + enum: + - unstake required: - - amount - - stakingProxy - - $ref: '#/components/schemas/StakeIntent' - - $ref: '#/components/schemas/DotAccountBaseBuildOptions' - DotPaymentIntent: - title: DOT Payment Intent + - intentType + - $ref: '#/components/schemas/BaseStakeIntent' + SolStakeIntent: + title: SOL Stake Intent allOf: - type: object properties: - proxy: - $ref: '#/components/schemas/DotProxy' - owner: - $ref: '#/components/schemas/optionalString' + validatorAddress: + type: string + amount: + $ref: '#/components/schemas/Amount' required: - - proxy - - owner - - $ref: '#/components/schemas/PaymentIntent' - - $ref: '#/components/schemas/DotAccountBaseBuildOptions' - DotProxy: - title: DotProxy - type: object - properties: - name: - $ref: '#/components/schemas/optionalString' - addressString: - $ref: '#/components/schemas/optionalString' - asset: - $ref: '#/components/schemas/optionalString' - amountString: - $ref: '#/components/schemas/optionalString' - DOTClaimIntent: - title: Dot Claim Unstake - allOf: - - $ref: '#/components/schemas/DOTBuildOptions' - - $ref: '#/components/schemas/WithdrawIntent2' - DOTBuildOptions: + - validatorAddress + - amount + - $ref: '#/components/schemas/StakeIntent' + - $ref: '#/components/schemas/SolBuildOptions' + SolPaymentIntent: + title: SolPaymentIntent allOf: - - $ref: '#/components/schemas/AccountBaseBuildOptions2' - type: object - properties: - fee: - $ref: '#/components/schemas/DOTFeeOptions' - DOTFeeOptions: - type: object - properties: - amount: - type: string - unit: - type: string - enum: - - baseUnit - - cpu - - ram - formula: - type: string - enum: - - fixed - - feeRate - - perKB - - custom - type: - type: string - enum: - - base - - max - - tip - required: - - amount - AccountBaseBuildOptions2: - type: object - properties: - nonce: - type: string - CosmosContractCallIntent: - title: Cosmos Contract Call + properties: {} + - $ref: '#/components/schemas/PaymentIntent' + - $ref: '#/components/schemas/SolBuildOptions' + SolDelegateIntent: + title: SOL Delegate Intent allOf: - - $ref: '#/components/schemas/BaseIntent2' - type: object properties: intentType: type: string enum: - - contractCall - contract: - type: string - description: The address of the contract to call. - msgHex: + - delegate + validatorAddress: type: string - description: The binary message data to send to the contract in hex format. + stakingAddresses: + $ref: '#/components/schemas/optionalStringArray' + stakingAddress: + $ref: '#/components/schemas/optionalString' required: - intentType - - contract - - msgHex - ConsolidateTokenIntent: - title: Consolidate Token + - validatorAddress + - stakingAddresses + - stakingAddress + - $ref: '#/components/schemas/BaseIntent' + - $ref: '#/components/schemas/SolBuildOptions' + optionalStringArray: + title: optionalStringArray + type: array + items: + type: string + SolDeactivateIntent: + title: SOL Deactivate Intent allOf: - - $ref: '#/components/schemas/BaseIntent2' - - $ref: '#/components/schemas/EthBuildOptions' - type: object properties: intentType: type: string enum: - - consolidateToken - recipients: - type: array - items: - $ref: '#/components/schemas/RecipientEntry' - 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. + - deactivate + stakingAddresses: + $ref: '#/components/schemas/optionalStringArray' + stakingAddress: + $ref: '#/components/schemas/optionalString' required: - intentType - - recipients - AdaStakeIntent: - title: ADA Stake Intent + - stakingAddresses + - stakingAddress + - $ref: '#/components/schemas/BaseIntent' + - $ref: '#/components/schemas/SolBuildOptions' + SolCreateAssociatedTokenAccountIntent: + title: SOL Create Associated Token Account Intent + allOf: + - type: object + properties: {} + - $ref: '#/components/schemas/EnableTokenIntent' + - $ref: '#/components/schemas/SolBuildOptions' + EnableTokenIntent: + title: EnableTokenIntent allOf: - type: object properties: - poolKeyHash: + intentType: type: string - dRepId: + enum: + - enableToken + enableTokens: + type: array + items: + type: object + properties: + name: + type: string + address: + $ref: '#/components/schemas/optionalString' + required: + - name + required: + - intentType + - enableTokens + - $ref: '#/components/schemas/BaseIntent' + SolConsolidateIntent: + title: SOL Consolidate Intent + allOf: + - $ref: '#/components/schemas/AccountBaseConsolidateIntent' + SolCloseAssociatedTokenAccountIntent: + title: SOL Close Associated Token Account Intent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - closeAssociatedTokenAccount + accountAddress: + type: string + destinationAddress: + type: string + required: + - intentType + - accountAddress + - destinationAddress + - $ref: '#/components/schemas/BaseIntent' + - $ref: '#/components/schemas/SolBuildOptions' + SolClaimIntent: + title: SOL Claim Intent + allOf: + - type: object + properties: + stakingAddress: type: string amount: - type: object - properties: - symbol: - type: string - value: - type: string - required: - - symbol - - value + $ref: '#/components/schemas/Amount' required: - - poolKeyHash - - dRepId - - $ref: '#/components/schemas/StakeIntent' - WalletTypePublic: - type: string - 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 - enum: - - cold - - custodial - - custodialPaired - - hot - - trading - - distributedCustody - TransactionRequestLite: - title: TransactionRequestLite + - stakingAddress + - amount + - $ref: '#/components/schemas/WithdrawIntent' + - $ref: '#/components/schemas/SolBuildOptions' + SolAuthorizeIntent: + title: SOL Authorize Intent allOf: - type: object properties: - intent: - allOf: - - $ref: '#/components/schemas/TransactionIntent' - description: The intent of the transaction request - unsignedTxs: + intentType: + type: string + enum: + - authorize + transactionMessage: + type: string + stakeAccount: + type: string + oldWithdrawPublicKey: + type: string + newWithdrawPublicKey: + type: string + lockupPublicKey: + type: string + nonceAccount: + type: string + nonceAuthority: + type: string + blockhash: + type: string + required: + - intentType + - transactionMessage + - stakeAccount + - oldWithdrawPublicKey + - newWithdrawPublicKey + - lockupPublicKey + - nonceAccount + - nonceAuthority + - blockhash + - $ref: '#/components/schemas/BaseIntent' + - $ref: '#/components/schemas/SolBuildOptions' + NearWithdrawIntent: + title: Near Withdraw Intent + allOf: + - type: object + properties: + recipients: 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 + address: + $ref: '#/components/schemas/Address' + amount: + $ref: '#/components/schemas/Amount' + data: + $ref: '#/components/schemas/optionalString' 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: + - address + - amount + required: + - recipients + - $ref: '#/components/schemas/WithdrawIntent' + NearUnstakeIntent: + title: Near Unstake Intent + allOf: + - type: object + properties: + recipients: 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' - PendingApprovalTransactionRequest: - title: Transaction request (lite) - type: object - properties: - transactionRequest: - type: object + type: object + properties: + address: + $ref: '#/components/schemas/Address' + amount: + $ref: '#/components/schemas/Amount' + data: + $ref: '#/components/schemas/optionalString' + required: + - address + - amount + required: + - recipients + - $ref: '#/components/schemas/UnstakeIntent' + NearStakeIntent: + title: Near Stake Intent + allOf: + - type: object properties: - buildParams: - type: object - coinSpecific: - type: object - comment: - type: string - fee: - $ref: '#/components/schemas/IntegerOrString' - isUnsigned: - type: boolean recipients: type: array items: type: object properties: address: - $ref: '#/components/schemas/AddressString3' + $ref: '#/components/schemas/Address' amount: - $ref: '#/components/schemas/IntegerOrIntegerString' + $ref: '#/components/schemas/Amount' data: - type: string - requestedAmount: - $ref: '#/components/schemas/IntegerOrIntegerString' - sourceWallet: - $ref: '#/components/schemas/Id' - triggeredPolicy: - $ref: '#/components/schemas/Id' - validTransaction: + $ref: '#/components/schemas/optionalString' + required: + - address + - amount + required: + - recipients + - $ref: '#/components/schemas/StakeIntent' + MmiSignTransactionIntent: + title: MMI Sign Transaction Intent + allOf: + - type: object + properties: + custodianTransactionId: type: string - validTransactionHash: + required: + - custodianTransactionId + - $ref: '#/components/schemas/PaymentIntent' + MmiSignMessageIntent: + title: MMI Sign Message Intent + allOf: + - type: object + properties: + custodianMessageId: type: string - type: - type: string - enum: - - transactionRequest - IntegerOrIntegerString: - oneOf: - - type: string - pattern: ^-?\d+$ - example: '2000000' - - type: integer - IntegerOrString: - oneOf: - - type: string - example: '2000000' - - type: integer - ExpressResolvePendingApprovalRequest: + required: + - custodianMessageId + - $ref: '#/components/schemas/SignMessageIntent' + SignMessageIntent: + title: SignMessageIntent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - signMessage + messageRaw: + type: string + description: A plain text message + example: 'for EVM: test message' + messageEncoded: + allOf: + - $ref: '#/components/schemas/optionalString' + description: An encoded string + example: 'for EVM: \x19Ethereum Signed Message:\n12test message' + required: + - intentType + - messageRaw + - messageEncoded + - $ref: '#/components/schemas/BaseIntent' + LightningPaymentIntent: + title: Lightning Payment Intent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - payment + required: + - intentType + - $ref: '#/components/schemas/BaseIntent' + - $ref: '#/components/schemas/LightningPaymentRequestWithSig' + LightningPaymentRequestWithSig: + title: LightningPaymentRequestWithSig type: object properties: - state: - type: string - description: New state for the pending approval - enum: - - approved - - rejected - walletPassphrase: - type: string - description: Passphrase to decrypt the user key on the wallet - xprv: + request: + $ref: '#/components/schemas/LightningPaymentRequest' + signature: type: string - description: Private key in string form, if walletPassphrase is not available - otp: - $ref: '#/components/schemas/Otp' - Otp: - type: string - example: '123456' - description: Second factor authentication token - Wallet: - title: Wallet + required: + - request + - signature + LightningPaymentRequest: + title: LightningPaymentRequest type: object properties: - allowBackupKeySigning: - type: boolean - approvalsRequired: - type: number - example: 1 - minimum: 1 - coin: - $ref: '#/components/schemas/CoinString' - coinSpecific: - $ref: '#/components/schemas/WalletSubdocument' - deleted: - type: boolean - disableTransactionNotifications: - type: boolean - hasLargeNumberOfAddresses: - type: boolean - id: + invoice: type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - isCold: - type: boolean - label: + amountMsat: type: string - example: My Wallet - startDate: + format: number + feeLimitMsat: type: string - description: Wallet creation time - format: date-time - title: ISO Date String - admin: - type: object + format: number + feeLimitRatio: + type: number + required: + - invoice + EthTransferTokenIntent: + title: ETH Transfer Token Intent + allOf: + - type: object + properties: {} + - $ref: '#/components/schemas/TransferTokenIntent' + - $ref: '#/components/schemas/EthBuildOptions' + EthBuildOptions: + title: EthBuildOptions + allOf: + - type: object properties: - policy: - $ref: '#/components/schemas/Policy' - billingEnterprise: + feeOptions: + oneOf: + - $ref: '#/components/schemas/FeeOption' + - $ref: '#/components/schemas/EIP1559FeeOptions' + hopParams: + type: object + properties: + gasPriceMax: + $ref: '#/components/schemas/optionalNumber' + paymentId: + $ref: '#/components/schemas/optionalString' + userReqSig: + $ref: '#/components/schemas/optionalString' + required: + - gasPriceMax + - paymentId + - userReqSig + receiveAddress: + $ref: '#/components/schemas/optionalString' + senderAddressIndex: + $ref: '#/components/schemas/optionalNumber' + - $ref: '#/components/schemas/AccountBaseBuildOptions' + EIP1559FeeOptions: + title: EIP1559FeeOptions + type: object + properties: + gasLimit: + $ref: '#/components/schemas/optionalNumber' + maxFeePerGas: + $ref: '#/components/schemas/optionalNumber' + maxPriorityFeePerGas: + $ref: '#/components/schemas/optionalNumber' + FeeOption: + title: FeeOption + type: object + properties: + unit: type: string - 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: + enum: + - baseUnit + - cpu + - ram + formula: type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - customChangeKeySignatures: - type: object + enum: + - fixed + - feeRate + - perKB + - custom + - perVKB + feeType: + type: string + enum: + - base + - max + - tip + gasLimit: + $ref: '#/components/schemas/optionalNumber' + gasPrice: + $ref: '#/components/schemas/optionalNumber' + TransferTokenIntent: + title: TransferTokenIntent + allOf: + - type: object properties: - user: - type: string - backup: - type: string - bitgo: + intentType: type: string - customerWalletId: - type: string - enterprise: - type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - organization: - type: string - bitgoOrg: - type: string - freeze: - type: object - 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 - 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 - 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: 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 - 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 - 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 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: - needsRecovery: - type: boolean - permissions: - type: array - items: - type: string - enum: - - admin - - spend - - view - - freeze - - trade - recoverable: - type: boolean - user: - type: string - required: - - permissions - walletFlags: - type: array - items: - type: object - properties: - name: - $ref: '#/components/schemas/WalletFlag' - value: - type: string - required: - - name - - value - receiveAddress: - $ref: '#/components/schemas/WalletAddress' - required: - - allowBackupKeySigning - - approvalsRequired - - coin - - coinSpecific - - deleted - - disableTransactionNotifications - - hasLargeNumberOfAddresses - - id - - isCold - - label - - startDate - MultisigTypeVersion: - title: MultisigTypeVersion - type: string - enum: - - MPCv2 - WalletMultisigType: - type: string - enum: - - onchain - - tss - - blsdkg - CustomChangeKeySignatures: - type: object - properties: - 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: + enum: + - transferToken + recipients: + type: array + items: + allOf: + - type: object + properties: + tokenData: + $ref: '#/components/schemas/TokenData' + required: + - tokenData + - $ref: '#/components/schemas/RecipientEntry' + required: + - intentType + - recipients + - $ref: '#/components/schemas/BaseIntent' + RecipientEntry: + title: RecipientEntry type: object properties: - updated: - 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: - 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: - 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: - 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: + address: + $ref: '#/components/schemas/Address' + amount: + $ref: '#/components/schemas/Amount' + data: + $ref: '#/components/schemas/optionalString' + required: + - address + - amount + TokenData: + title: TokenData + allOf: + - type: object + properties: {} + - $ref: '#/components/schemas/TokenRecipientEntryItem' + - $ref: '#/components/schemas/SupportedTokenRecipientEntryItem' + - $ref: '#/components/schemas/UnsupportedTokenRecipientEntryItem' + UnsupportedTokenRecipientEntryItem: + title: UnsupportedTokenRecipientEntryItem type: object properties: - 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 + tokenContractAddress: + $ref: '#/components/schemas/optionalString' + decimals: + $ref: '#/components/schemas/optionalNumber' + SupportedTokenRecipientEntryItem: + title: SupportedTokenRecipientEntryItem 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: + tokenName: type: string - description: Email-like address associated to a Stellar account - example: foo_bar@baz.com*bitgo.com - WalletCoinSpecificCosmos: - title: ATOM + required: + - tokenName + TokenRecipientEntryItem: + title: TokenRecipientEntryItem type: object properties: - rootAddress: + tokenQuantity: 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: + tokenType: 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 + tokenId: + $ref: '#/components/schemas/optionalString' required: - - rootAddress - - lastMemoId - TxId: - type: string - description: The on-chain transaction id - example: b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26 - WalletBuildDefaults: + - tokenQuantity + - tokenType + EthStakingIntent: + title: ETH Staking Intent + allOf: + - type: object + properties: + pubkey: + type: string + withdrawalCredentials: + type: string + signature: + type: string + depositDataRoot: + type: string + required: + - pubkey + - withdrawalCredentials + - signature + - depositDataRoot + - $ref: '#/components/schemas/StakeIntent' + - $ref: '#/components/schemas/EthBuildOptions' + EthPaymentIntent: + title: ETH Payment Intent + allOf: + - type: object + properties: + selfSend: + $ref: '#/components/schemas/optionalBoolean' + required: + - selfSend + - $ref: '#/components/schemas/PaymentIntent' + - $ref: '#/components/schemas/EthBuildOptions' + EthFillNonceIntent: + title: ETH Fill Nonce Intent + allOf: + - type: object + properties: {} + - $ref: '#/components/schemas/FillNonceIntent' + - $ref: '#/components/schemas/EthFillNonceBuildOptions' + EthFillNonceBuildOptions: + title: EthFillNonceBuildOptions 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: - - 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 + feeOptions: + oneOf: + - $ref: '#/components/schemas/FeeOption' + - $ref: '#/components/schemas/EIP1559FeeOptions' + receiveAddress: + $ref: '#/components/schemas/optionalString' + senderAddressIndex: + $ref: '#/components/schemas/optionalNumber' + FillNonceIntent: + title: FillNonceIntent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - fillNonce + nonce: + oneOf: + - type: string + - type: number + required: + - intentType + - nonce + - $ref: '#/components/schemas/BaseIntentWithoutNonce' + BaseIntentWithoutNonce: + title: BaseIntentWithoutNonce type: object properties: - date: - oneOf: - - type: string - format: date-time - title: ISO Date String - - type: string - format: date - title: Date String - format: date-time - id: - type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - latest: - type: boolean - version: - type: number - enterpriseId: - type: string - label: - type: string - rules: - type: array - items: - type: object - properties: - id: - type: string - 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 - format: date-time - title: ISO Date String - mutabilityConstraint: - allOf: - - $ref: '#/components/schemas/MutabilityConstraint' - 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 - coin: - $ref: '#/components/schemas/CoinString' - condition: - allOf: - - $ref: '#/components/schemas/Condition' - description: Parameters for the type - required: - - id - - type - - action - walletId: - type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - required: - - date - - id - - latest - - version - AdvancedListRuleEntry: - title: AdvancedListRuleEntry - 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 - ListRuleEntryType: - type: string - enum: - - address - - walletId - - enterpriseId - description: the kind of resource a list rule entry refers to - MutabilityConstraint: - title: MutabilityConstraint - type: string - enum: - - unlocked - - permanent - - sticky - - managed - UpdateWallet: - 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' - 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: - state: - allOf: - - $ref: '#/components/schemas/WalletShareState' - description: New state of the wallet share after update - changed: - type: boolean - description: Whether the wallet share was changed + intentType: + $ref: '#/components/schemas/IntentType' + sequenceId: + $ref: '#/components/schemas/optionalString' + comment: + $ref: '#/components/schemas/optionalString' 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 + - intentType + EthConsolidateTokenIntent: + title: ETH Consolidate Token Intent + allOf: + - type: object properties: - pub: - description: Sharing user's root public key + intentType: type: string - encryptedPrv: - description: Sharing user's private key encrypted under their wallet passphrase + enum: + - consolidateToken + recipients: + type: array + items: + allOf: + - type: object + properties: + tokenData: + $ref: '#/components/schemas/TokenData' + required: + - tokenData + - $ref: '#/components/schemas/RecipientEntry' + consolidateId: + $ref: '#/components/schemas/optionalString' + keepAlive: + $ref: '#/components/schemas/optionalBoolean' + required: + - intentType + - recipients + - consolidateId + - keepAlive + - $ref: '#/components/schemas/BaseIntent' + - $ref: '#/components/schemas/EthBuildOptions' + EthConsolidateIntent: + title: ETH Consolidate Intent + allOf: + - type: object + properties: {} + - $ref: '#/components/schemas/AccountBaseConsolidateIntent' + - $ref: '#/components/schemas/EthBuildOptions' + EthAccelerationIntent: + title: ETH Acceleration Intent + allOf: + - type: object + properties: + feeOptions: + oneOf: + - $ref: '#/components/schemas/FeeOption' + - $ref: '#/components/schemas/EIP1559FeeOptions' + required: + - feeOptions + - $ref: '#/components/schemas/AccelerationIntent' + - $ref: '#/components/schemas/EthBuildOptionsWithoutFeeOptions' + EthBuildOptionsWithoutFeeOptions: + title: EthBuildOptionsWithoutFeeOptions + allOf: + - type: object + properties: + hopParams: + type: object + properties: + gasPriceMax: + $ref: '#/components/schemas/optionalNumber' + paymentId: + $ref: '#/components/schemas/optionalString' + userReqSig: + $ref: '#/components/schemas/optionalString' + required: + - gasPriceMax + - paymentId + - userReqSig + receiveAddress: + $ref: '#/components/schemas/optionalString' + senderAddressIndex: + $ref: '#/components/schemas/optionalNumber' + - $ref: '#/components/schemas/AccountBaseBuildOptions' + AccelerationIntent: + title: AccelerationIntent + allOf: + - type: object + properties: + intentType: type: string - fromPubKey: - description: Sharing user's derived public key which will be used to calculate the wallet sharing secret. + enum: + - acceleration + txid: type: string - toPubKey: - description: Shared-to user's derived public key which will be used to calculate the wallet sharing secret. + required: + - intentType + - txid + - $ref: '#/components/schemas/BaseIntent' + DotWithdrawStakeIntent: + title: DOT Withdraw Stake Intent + allOf: + - type: object + properties: {} + - $ref: '#/components/schemas/WithdrawIntent' + - $ref: '#/components/schemas/DotAccountBaseBuildOptions' + DotAccountBaseBuildOptions: + title: DotAccountBaseBuildOptions + allOf: + - type: object + properties: + fee: + type: object + properties: + amount: + oneOf: + - type: string + - type: number + formula: + type: string + enum: + - fixed + - feeRate + - perKB + - custom + type: + type: string + enum: + - base + - max + - tip + unit: + type: string + enum: + - baseUnit + - cpu + - ram + required: + - amount + - $ref: '#/components/schemas/AccountBaseBuildOptions' + DotUnstakingIntent: + title: DOT Unstaking Intent + allOf: + - type: object + properties: + amount: + $ref: '#/components/schemas/Amount' + stakingProxy: type: string - path: - description: BIP32 HD path of the derived public keys (fromPubKey and toPubKey) - example: m/1234/1/1 + stopStaking: + $ref: '#/components/schemas/optionalBoolean' + required: + - amount + - stakingProxy + - $ref: '#/components/schemas/UnstakeIntent' + - $ref: '#/components/schemas/DotAccountBaseBuildOptions' + DotStakingIntent: + title: DOT Staking Intent + allOf: + - type: object + properties: + amount: + $ref: '#/components/schemas/Amount' + stakingProxy: type: string - required: - - id - - coin - - wallet - - walletLabel - - fromUser - - toUser - - permissions - - message - - state - - enterprise - Enterprise: - title: Enterprise + addToStake: + $ref: '#/components/schemas/optionalBoolean' + addProxy: + $ref: '#/components/schemas/optionalBoolean' + required: + - amount + - stakingProxy + - $ref: '#/components/schemas/StakeIntent' + - $ref: '#/components/schemas/DotAccountBaseBuildOptions' + DotPaymentIntent: + title: DOT Payment Intent + allOf: + - type: object + properties: + proxy: + $ref: '#/components/schemas/DotProxy' + owner: + $ref: '#/components/schemas/optionalString' + required: + - proxy + - owner + - $ref: '#/components/schemas/PaymentIntent' + - $ref: '#/components/schemas/DotAccountBaseBuildOptions' + DotProxy: + title: DotProxy 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 - publicLabels: - type: array - items: - type: string - description: Subset of labels that are OK to return back to client in GetEnterpriseResponse - 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 + $ref: '#/components/schemas/optionalString' + addressString: + $ref: '#/components/schemas/optionalString' + asset: + $ref: '#/components/schemas/optionalString' + amountString: + $ref: '#/components/schemas/optionalString' + DotCreateAccountIntent: + title: DOT Create Account Intent + allOf: + - type: object 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: + delayBlocks: + type: string + proxyType: + type: string + index: + $ref: '#/components/schemas/optionalNumber' + recipients: + type: array + items: 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 - oauthSetting: - allOf: - - $ref: '#/components/schemas/OAuthSetting' - description: oauth setting 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 Custody 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 + address: + $ref: '#/components/schemas/Address' + amount: + $ref: '#/components/schemas/Amount' + data: + $ref: '#/components/schemas/optionalString' + required: + - address + - amount + required: + - delayBlocks + - proxyType + - $ref: '#/components/schemas/AccountBaseCreateAccountIntent' + - $ref: '#/components/schemas/DotAccountBaseBuildOptions' + AccountBaseCreateAccountIntent: + title: AccountBaseCreateAccountIntent + allOf: + - type: object properties: - type: + intentType: 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: - type: array - items: - $ref: '#/components/schemas/Id' - description: an array of all the Users on the Wallet who need to see this Pending Approval - approvalsRequired: - type: number - minimum: 1 - resolvers: - type: array - items: - type: object - properties: - user: - type: string - date: - type: string - resolutionType: - type: string - enum: - - pending - - approved - - rejected - signatures: - type: array - items: - type: string - videoApprover: - type: string - videoLink: - type: string - videoException: - type: string - EnterprisePermission: - type: string - enum: - - admin - UpdateEnterprise: - type: object - properties: - legalIdentifiers: - $ref: '#/components/schemas/LegalIdentifiers' - approvalsRequired: - type: integer - minimum: 1 - description: How many Enterprise Admins are required for action to fire - distributedCustody: - $ref: '#/components/schemas/DistributedCustodyUpdateEnterprise' - usersViewAllWallets: - type: boolean - description: Allow users to view all wallets - DistributedCustodyUpdateEnterprise: - type: object - description: Parameters associated with distributed custody enterprises. If you want to remove 'signingBitgoOrg', set it to null. - properties: - signingBitgoOrg: - type: string - description: BitGo Organization related to this entity. Allowed values are BitGo Inc, BitGo Trust, BitGo New York, BitGo Germany, BitGo Switzerland, Frankfurt DE Trust, BitGo Sister Trust 1, BitGo Korea, BitGo Singapore, null - nullable: true - LegalIdentifiers: - title: LegalIdentifiers - type: object - properties: - legalPersonNameIdentifierType: - $ref: '#/components/schemas/LegalPersonNameIdentifierType' - legalPersonName: - type: string - required: - - legalPersonNameIdentifierType - InvalidEnterpriseId: - title: Invalid Enterprise ID + - createAccount + name: + $ref: '#/components/schemas/optionalString' + required: + - intentType + - $ref: '#/components/schemas/BaseIntent' + - $ref: '#/components/schemas/AccountBaseBuildOptions' + DotConsolidateIntent: + title: DOT Consolidate Intent + allOf: + - $ref: '#/components/schemas/AccountBaseConsolidateIntent' + CosmosWithdrawIntent: + title: Cosmos Withdraw Intent allOf: - type: object properties: - name: + validatorAddress: type: string - enum: - - InvalidEnterpriseId required: - - name - - $ref: '#/components/schemas/InvalidId' - DeleteEnterpriseUser: - type: object - properties: - username: - type: string - format: email - required: - - username - CreateTransactionRequest: - type: object - properties: - idempotencyKey: - type: string - description: The combination of the idempotencyKey, version and walletId has to be unique. If no idempotencyKey is specified then it remains undefined for the txRequest. Note, version is an internal field that is auto incremented on every update to a txRequest. - intent: - $ref: '#/components/schemas/TransactionRequestIntent' - videoApprovers: - allOf: - - $ref: '#/components/schemas/IdArray' - description: (Custodial) Specify who should perform the Video ID with Trust if one should be required. - apiVersion: - type: string - description: Full or Light to differentiate between the different transaction request flows. - enum: - - lite - - full - default: full - preview: - type: boolean - description: | - When set to true, the transaction request is returned without being stored in the DB. - default: false - required: - - intent - WalletId: - type: string - example: 59cd72485007a239fb00282ed480da1f - Session: - type: object - properties: - created: - type: string - format: date-time - expires: - type: string - 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 - 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/Unlock' - description: The Unlock object, returned if this session is currently unlocked. - user: - $ref: '#/components/schemas/Id' - required: - - created - - expires - - id - - origin - - scope - - user - Unlock: - title: Unlock - type: object - properties: - expires: - type: string - format: date-time - title: ISO Date String - time: - type: string - format: date-time - title: ISO Date String - txCount: - type: number - txValue: - type: number - txValueLimit: - type: number - SpendingLimits: - type: object - additionalProperties: - type: object - properties: - txCount: - type: integer - txValue: - type: integer - txValueLimit: - type: number - example: - btc: - txCount: 1 - txValue: 0 - txValueLimit: 100000000 - eth: - txCount: 1 - txValue: 0 - txValueLimit: 50000000000 - Scope: - type: array - items: - type: string - example: - - crypto_compare - - user_manage - - openid - - profile - - wallet_create - - wallet_manage_all - - wallet_approve_all - - wallet_spend_all - - wallet_edit_all - - wallet_view_all - Ip: - type: string - format: ipv4 - example: 127.0.0.1 - WebhookType: - title: WebhookType - type: string - enum: - - txRequest - - txRequestTransaction - - transfer - - transaction - - transactionRemoved - - transactionExpire - - pendingapproval - - block - - admin - - address_confirmation - - lowFee - - circuitBreaker - - wallet_confirmation - - bankAccount - - userKycState - - enterpriseKycState - - identityStatus - - accessToken - - accountCreated - - contractSigned - - fundsDeposited - - kycResult - - policyBalanceChange - - transaction_finality_on_l1 - WebhookState: - title: WebhookState - type: string - enum: - - active - - suspended - description: If 'active', indicates the webhook can trigger and send to the URL. If 'suspended', indicates the webhook can't trigger. - example: active - WebhookScope: - title: WebhookScope - type: string - enum: - - wallet - - enterprise - - organization - WalletWebhookType: - title: WalletWebhookType - type: string - enum: - - txRequest - - txRequestTransaction - - transfer - - transaction - - transactionRemoved - - transactionExpire - - pendingapproval - - block - - admin - - address_confirmation - - lowFee - - circuitBreaker - - transaction_finality_on_l1 - - fundsDeposited - WalletIdNonEmptyString: - title: WalletIdNonEmptyString - type: string - example: 59cd72485007a239fb00282ed480da1f - minLength: 1 - pattern: ^[0-9a-f]{32}$ - CoinString: - title: CoinString - type: string - description: A cryptocurrency symbol or token ticker symbol - example: btc - EvaluatedPolicyActionStatus: - title: EvaluatedPolicyActionStatus - type: string - enum: - - SKIPPED - - PENDING - - NOT_NEEDED - - COMPLETE - - CANCELLED - - FAILED - PolicyActionParameters: - title: PolicyActionParameters - type: object - properties: - minRequired: - type: string - minLength: 1 - userIds: - type: array - items: - type: string - minLength: 1 - initiatorIsAllowedToApprove: - type: boolean - webhookURL: - type: string - minLength: 1 - livenessCheckUser: - $ref: '#/components/schemas/LivenessVerificationParameter' - isFallback: - type: boolean - walletSubtype: - $ref: '#/components/schemas/CustodialWalletSubType' - CustodialWalletSubType: - title: CustodialWalletSubType - type: string - enum: - - custodialCold - - custodialHot - LivenessVerificationParameter: - title: LivenessVerificationParameter - type: string - enum: - - transactionInitiator - - walletAdmins - - videoIdUsers - GroupApprovalRequirementOperator: - title: GroupApprovalRequirementOperator - type: string - enum: - - and - - or - PendingApprovalStateProtected: - title: Pending Protected - type: string - enum: - - pendingVideoApproval - - pendingIdVerification - - awaitingSignature - - pendingCustodianApproval - PendingApprovalStateTrust: - title: Pending Trust - type: string - enum: - - pendingVideoApproval - - pendingIdVerification - - awaitingSignature - - pendingCustodianApproval - PendingApprovalInfo: - title: PendingApprovalInfo - type: object - properties: - type: - $ref: '#/components/schemas/PendingApprovalType' - userChangeRequest: - type: object + - validatorAddress + - $ref: '#/components/schemas/WithdrawIntent' + CosmosUnstakeIntent: + title: Cosmos Unstake Intent + allOf: + - type: object properties: - action: - type: string - description: The action taken - permissions: - type: array - items: - type: string - description: The permissions associated with the change - userChanged: + intentType: type: string - description: The user that changed - transactionRequest: - type: object - properties: - buildParams: {} - coinSpecific: {} - comment: - nullable: true + enum: + - undelegate + validatorAddress: type: string - description: The comment for the transaction request - fee: {} - isUnsigned: - nullable: true - type: boolean - description: Indicates if the transaction is unsigned - policyUniqueId: {} + amount: + $ref: '#/components/schemas/Amount' recipients: type: array items: type: object properties: address: - type: string - description: The address of the recipient - example: 2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZS - maxLength: 250 - amount: {} + $ref: '#/components/schemas/Address' + amount: + $ref: '#/components/schemas/Amount' data: - type: string - description: Additional data for the transaction - description: The recipients of the transaction - requestedAmount: {} - sourceWallet: {} - triggeredPolicy: {} - validTransaction: + $ref: '#/components/schemas/optionalString' + required: + - address + - amount + required: + - intentType + - validatorAddress + - amount + - $ref: '#/components/schemas/BaseStakeIntent' + CosmosSwitchValidatorIntent: + title: Cosmos Switch Validator Intent + allOf: + - $ref: '#/components/schemas/StakeSwitchValidatorIntent' + StakeSwitchValidatorIntent: + title: StakeSwitchValidatorIntent + allOf: + - type: object + properties: + intentType: type: string - description: Indicates if the transaction is valid - validTransactionHash: + enum: + - switchValidator + amount: + $ref: '#/components/schemas/Amount' + validatorAddress: type: string - description: The hash of the valid transaction - verificationItems: - nullable: true - type: array - items: - type: string - description: The verification items for the transaction - verificationRuleId: - nullable: true + destValidatorAddress: type: string - description: The ID of the verification rule - videoApprovers: - type: array - items: - description: The video approvers for the transaction - transactionRequestFull: - type: object + required: + - intentType + - amount + - validatorAddress + - destValidatorAddress + - $ref: '#/components/schemas/BaseStakeIntent' + CosmosStakeIntent: + title: Cosmos Stake Intent + allOf: + - type: object properties: - intent: - allOf: - - $ref: '#/components/schemas/PaymentIntent' - description: The intent of the transaction request - policyUniqueId: + intentType: type: string - description: The unique ID for the policy - txRequest: - oneOf: - - $ref: '#/components/schemas/TransactionRequestLite2' - - $ref: '#/components/schemas/TransactionRequestFull' - description: The transaction request details - txRequestId: - allOf: - - $ref: '#/components/schemas/TransactionRequestId' - description: The ID of the transaction request - verificationItems: - type: array - items: - type: string - description: The verification items for the transaction - verificationRuleId: + enum: + - delegate + validatorAddress: type: string - description: The ID of the verification rule - videoApprovers: + amount: + $ref: '#/components/schemas/Amount' + recipients: type: array items: - type: string - description: The video approvers for the transaction - walletRebalanceEventId: - type: string - description: The ID of the wallet rebalance event + type: object + properties: + address: + $ref: '#/components/schemas/Address' + amount: + $ref: '#/components/schemas/Amount' + data: + $ref: '#/components/schemas/optionalString' + required: + - address + - amount required: - - txRequestId - policyRuleRequest: - type: object + - intentType + - validatorAddress + - amount + - $ref: '#/components/schemas/BaseStakeIntent' + CosmosPaymentIntent: + title: Cosmos Payment Intent + allOf: + - type: object properties: - action: - type: string - description: The action of the policy rule request - update: - type: object - description: The update details of the policy rule request - properties: - action: - allOf: - - $ref: '#/components/schemas/PolicyRuleAction' - description: The action of the policy rule - coin: - $ref: '#/components/schemas/CoinString' - condition: - allOf: - - $ref: '#/components/schemas/PolicyRuleUpdateCondition' - description: The condition of the policy rule - id: - type: string - description: The ID of the policy rule - type: - allOf: - - $ref: '#/components/schemas/ApiRuleType' - description: The type of the API rule - updateApprovalsRequiredRequest: - type: object + memo: + $ref: '#/components/schemas/optionalString' + required: + - memo + - $ref: '#/components/schemas/PaymentIntent' + BscWithdrawUndelegateIntent: + title: BSC Withdraw Intent + allOf: + - type: object properties: - requestedApprovalsRequired: + validatorAddress: + type: string + requestNumber: type: number - description: The number of requested approvals required - updateEnterpriseRequest: - type: object + required: + - validatorAddress + - requestNumber + - $ref: '#/components/schemas/WithdrawIntent' + BscUnDelegateIntent: + title: BSC UnDelegate Intent + allOf: + - type: object properties: - action: - type: string - enum: - - add - - update - - remove - email: - type: string - description: The email of the user - isVideoIdUser: - type: boolean - description: Indicates if the user is a video ID user - permissions: + intentType: type: string enum: - - admin - description: The permissions associated with the update - userId: + - undelegate + validatorAddress: type: string - description: The ID of the user - updateOrganizationRequest: - type: object - properties: - action: + amount: + $ref: '#/components/schemas/Amount' + relayerFee: + type: string + required: + - intentType + - validatorAddress + - amount + - $ref: '#/components/schemas/BaseStakeIntent' + BscDelegateIntent: + title: BSC Delegate Intent + allOf: + - type: object + properties: + intentType: type: string enum: - - add - - update - - remove - email: + - delegate + validatorAddress: type: string - description: The email of the user - role: + amount: + $ref: '#/components/schemas/Amount' + relayerFee: type: string - enum: - - admin - - member - - customer - description: The role of the user in the organization - example: admin - userId: + delegateVotePower: type: string - description: The ID of the user - genericRequest: - type: object + required: + - intentType + - validatorAddress + - amount + - $ref: '#/components/schemas/BaseStakeIntent' + AtomWithdrawIntent: + title: Atom Withdraw Intent + allOf: + - type: object properties: - anchors: + validatorAddress: + type: string + amount: + $ref: '#/components/schemas/Amount' + required: + - validatorAddress + - amount + - $ref: '#/components/schemas/WithdrawIntent' + AtomUnstakeIntent: + title: Atom Unstake Intent + allOf: + - type: object + properties: + validatorAddress: + type: string + amount: + $ref: '#/components/schemas/Amount' + recipients: type: array items: type: object properties: - anchorType: - allOf: - - $ref: '#/components/schemas/AnchorType' - description: The type of the anchor - key: - type: string - description: The key of the anchor - value: - type: string - description: The value of the anchor + address: + $ref: '#/components/schemas/Address' + amount: + $ref: '#/components/schemas/Amount' + data: + $ref: '#/components/schemas/optionalString' required: - - anchorType - - key - - value - description: The anchors associated with the request - changeType: - allOf: - - $ref: '#/components/schemas/ChangeType' - description: The type of change requested - currentId: - type: string - description: The current ID associated with the request - description: - type: string - description: The description of the request - metadata: - type: object - additionalProperties: - oneOf: - - type: string - - type: number - - type: boolean - description: The metadata of the request - proposedId: + - address + - amount + required: + - validatorAddress + - amount + - $ref: '#/components/schemas/UnstakeIntent' + AtomStakeIntent: + title: Atom Stake Intent + allOf: + - type: object + properties: + validatorAddress: type: string - description: The proposed ID associated with the request - resourceType: + amount: + $ref: '#/components/schemas/Amount' + recipients: + type: array + items: + type: object + properties: + address: + $ref: '#/components/schemas/Address' + amount: + $ref: '#/components/schemas/Amount' + data: + $ref: '#/components/schemas/optionalString' + required: + - address + - amount + required: + - validatorAddress + - amount + - $ref: '#/components/schemas/StakeIntent' + AtomPaymentIntent: + title: Atom Payment Intent + allOf: + - type: object + properties: + memo: + $ref: '#/components/schemas/optionalString' + required: + - memo + - $ref: '#/components/schemas/PaymentIntent' + AdaVoteDelegationIntent: + title: ADA Vote Delegation Intent + allOf: + - type: object + properties: + dRepId: type: string - description: The resource type of the request - enterpriseInviteRequest: - type: object + required: + - dRepId + - $ref: '#/components/schemas/VoteDelegationIntent' + VoteDelegationIntent: + title: Vote Delegation Intent + allOf: + - type: object properties: - action: + intentType: type: string enum: - - add - - update - - remove - email: + - voteDelegation + required: + - intentType + - $ref: '#/components/schemas/BaseStakeIntent' + AdaUnstakeIntent: + title: ADA Unstake Intent + allOf: + - type: object + properties: + poolKeyHash: type: string - description: The email of the user - enterpriseInfo: + amount: type: object - description: Additional info used by the client accepting the invite properties: - id: + symbol: type: string - invitedBy: - type: object - properties: - email: - type: string - fullName: - type: string - id: - type: string - required: - - email - - fullName - - id - name: + value: type: string - requiredVerificationStep: + required: + - symbol + - value + required: + - poolKeyHash + - $ref: '#/components/schemas/UnstakeIntent' + AdaStakeIntent: + title: ADA Stake Intent + allOf: + - type: object + properties: + poolKeyHash: + type: string + dRepId: + type: string + amount: + type: object + properties: + symbol: type: string - userKycState: + value: type: string required: - - id - - invitedBy - - name - - requiredVerificationStep - isVideoIdUser: - type: boolean - description: Indicates if the user is a video ID user - permissions: + - symbol + - value + required: + - poolKeyHash + - dRepId + - $ref: '#/components/schemas/StakeIntent' + AdaStakeClaimRewardsIntent: + title: ADA Stake Claim Rewards Intent + allOf: + - $ref: '#/components/schemas/StakeClaimRewardsIntent' + StakeClaimRewardsIntent: + title: StakeClaimRewardsIntent + allOf: + - type: object + properties: + intentType: type: string enum: - - admin - description: The permissions associated with the invite - userId: - type: string - description: The ID of the user - required: - - type - ChangeType: - title: ChangeType - type: string - enum: - - create - - update - - delete - AnchorType: - title: AnchorType - type: string - enum: - - policyRuleId - - settlementId - ApiRuleType: - title: ApiRuleType + - stakeClaimRewards + amount: + $ref: '#/components/schemas/Amount' + required: + - intentType + - amount + - $ref: '#/components/schemas/BaseStakeIntent' + AdaPaymentIntent: + title: ADA Payment Intent + allOf: + - type: object + properties: + unspents: + $ref: '#/components/schemas/optionalStringArray' + required: + - unspents + - $ref: '#/components/schemas/PaymentIntent' + AdaConsolidateIntent: + title: ADA Consolidate Intent + allOf: + - type: object + properties: + unspents: + $ref: '#/components/schemas/optionalStringArray' + - $ref: '#/components/schemas/AccountBaseConsolidateIntent' + PendingApprovalType: + title: PendingApprovalType type: string enum: - - advancedWhitelist - - allTx - - coinAddressWhitelist - - coinAddressBlacklist - - trustUsdVelocityLimit - - txUsdThreshold - - usdVelocityLimit - - velocityLimit - - webhook - PolicyRuleUpdateCondition: - title: PolicyRuleUpdateCondition - oneOf: - - $ref: '#/components/schemas/AddressListRuleUpdateCondition' - - $ref: '#/components/schemas/AdvancedListRuleUpdateCondition' - - $ref: '#/components/schemas/TxUsdThresholdRuleCondition' - - $ref: '#/components/schemas/LimitRuleCondition' - - $ref: '#/components/schemas/WebhookRuleCondition' - WebhookRuleCondition: - title: WebhookRuleCondition + - userChangeRequest + - transactionRequest + - transactionRequestFull + - policyRuleRequest + - updateApprovalsRequiredRequest + - updateEnterpriseRequest + - updateOrganizationRequest + - genericRequest + - enterpriseInviteRequest + Wallet: + title: Wallet type: object properties: - url: + allowBackupKeySigning: + type: boolean + approvalsRequired: + type: number + example: 1 + minimum: 1 + coin: + $ref: '#/components/schemas/CoinString' + coinSpecific: + $ref: '#/components/schemas/WalletSubdocument' + deleted: + type: boolean + disableTransactionNotifications: + type: boolean + hasLargeNumberOfAddresses: + type: boolean + id: type: string - description: The url to query for the webhook - required: - - url - LimitRuleCondition: - title: LimitRuleCondition - type: object - properties: - amountString: + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + isCold: + type: boolean + label: type: string - example: '2000000' - pattern: ^-?\d+$ - timeWindow: - type: number - description: Time window in seconds for a velocity limit, between 1 and 30 days - minimum: 0 - maximum: 2678400 - groupTags: - type: array - items: - type: string + example: My Wallet startDate: type: string + description: Wallet creation time format: date-time title: ISO Date String - required: - - amountString - - timeWindow - TxUsdThresholdRuleCondition: - title: TxUsdThresholdRuleCondition - type: object - properties: - lowerBound: + admin: + type: object + properties: + policy: + $ref: '#/components/schemas/Policy' + billingEnterprise: type: string - upperBound: + 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 - required: - - lowerBound - AdvancedListRuleUpdateCondition: - title: AdvancedListRuleUpdateCondition - type: object - properties: - add: - $ref: '#/components/schemas/AdvancedListRuleEntry' - remove: + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + customChangeKeySignatures: type: object properties: - item: + user: type: string - type: + backup: type: string - enum: - - address - - enterpriseId - - walletId - required: - - item - verifyItems: - type: object - properties: - items: - type: array - items: - type: string - required: - - items - AdvancedListType: - title: AdvancedListType - type: string - enum: - - address - - enterpriseId - - walletId - AddressListRuleUpdateCondition: - title: AddressListRuleUpdateCondition - type: object - properties: - add: + bitgo: + type: string + customerWalletId: type: string - remove: + enterprise: type: string - metaData: + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + organization: + type: string + bitgoOrg: + type: string + freeze: type: object - additionalProperties: - type: object - additionalProperties: {} - PolicyRuleAction: - title: PolicyRuleAction - type: object - properties: - type: - allOf: - - $ref: '#/components/schemas/ActionType' - description: The type of the action - approvalsRequired: - type: number - description: The number of approvals required - userIds: + 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 - description: The user IDs associated with the action - groupApprovalRequirement: + keySignatures: type: object - description: The group approval requirement properties: - items: - type: array - items: - type: object - properties: - id: - type: string - description: The ID of the group - minimumApprovals: - type: number - description: The name of the group - type: - type: string - description: The type of the group - required: - - id - - type - operator: - $ref: '#/components/schemas/GroupApprovalRequirementOperator' - required: - - items - - operator - required: - - type - ActionType: - title: ActionType - type: string - enum: - - deny - - getApproval - - getEnterpriseUserApproval - - getAnyApproval - - getGroupApproval - - getFinalApproval - - getVideoApproval - - getIdVerification - - verifyWalletRebalance - - getCustodianApproval - - getCustodialSignature - - noop - - triggerWebhookNotification - - performLivenessVerification - - recommendBackingWalletRouting - TransactionRequestId: - title: TransactionRequestId - type: string - example: 123e4567-e89b-12d3-a456-426614174000 - format: uuid - WalletIdString: - title: WalletIdString - type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - BaseShare: - title: BaseShare - type: object - properties: - from: - allOf: - - $ref: '#/components/schemas/SignatureShareType' - description: The source of the commitment share - example: user - to: - allOf: - - $ref: '#/components/schemas/SignatureShareType' - description: The recipient of the commitment share. - example: bitgo - share: + 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 - description: The commitment share. - required: - - from - - to - - share - SignatureShareType: - title: SignatureShareType - type: string - enum: - - user - - backup - - bitgo - SignatureShareWithoutVssProof: - title: SignatureShareWithoutVssProof - type: object - properties: - from: - allOf: - - $ref: '#/components/schemas/SignatureShareType' - description: The source of the signature share. - to: + 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 + type: allOf: - - $ref: '#/components/schemas/SignatureShareType' - description: The recipient of the signature share. - share: + - $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: The signature share - required: - - from - - to - - share - UnsignedTransaction: - title: UnsignedTransaction - type: object - properties: - parsedTx: - $ref: '#/components/schemas/ParsedTx' - serializedTxHex: + 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 - description: The unsigned transaction as a hex string. - signableHex: + 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 - 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: + 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 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: 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 - ParsedTx: - title: ParsedTx - type: object - properties: - inputs: + 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: - valueString: - type: string - _id: - type: string - address: + needsRecovery: + type: boolean + permissions: + type: array + items: + type: string + enum: + - admin + - spend + - view + - freeze + - trade + recoverable: + type: boolean + user: type: string - chain: - type: number - derivationIndex: - type: number - index: - type: number - value: - oneOf: - - type: number - - type: number required: - - valueString - minerFee: - oneOf: - - type: string - - type: number - outputs: + - permissions + walletFlags: type: array items: type: object properties: - valueString: - type: string - address: - type: string - change: - type: boolean - coinName: - type: string - data: - type: string - isPayGo: - type: boolean + name: + $ref: '#/components/schemas/WalletFlag' value: - oneOf: - - type: number - - type: number - wallet: - type: string - walletV1: - type: string - baseAddress: - type: string - enterprise: type: string required: - - valueString - spendAmount: - oneOf: - - type: string - - type: number - gasPrice: - type: number - hasUnvalidatedData: - type: boolean - payGoFee: - oneOf: - - type: string - - type: number - spendAmounts: - type: array - items: - type: object - additionalProperties: {} - type: - type: string - required: - - inputs - - minerFee - - outputs - - spendAmount - TransactionIntent: - 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' - BaseIntent: - title: Intent - type: object - properties: - intentType: - $ref: '#/components/schemas/IntentType' - sequenceId: - $ref: '#/components/schemas/optionalString' - comment: - $ref: '#/components/schemas/optionalString' - nonce: - oneOf: - - type: string - - type: number + - name + - value + receiveAddress: + $ref: '#/components/schemas/WalletAddress' required: - - intentType - BeraDelegateIntent: - title: Bera Delegate Intent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - delegate - recipients: - type: array - items: - type: object - properties: - address: - $ref: '#/components/schemas/Address' - amount: - $ref: '#/components/schemas/Amount' - data: - $ref: '#/components/schemas/optionalString' - required: - - address - - amount - required: - - intentType - - $ref: '#/components/schemas/BaseStakeIntent' - BaseStakeIntent: - title: BaseStakeIntent + - allowBackupKeySigning + - approvalsRequired + - coin + - coinSpecific + - deleted + - disableTransactionNotifications + - hasLargeNumberOfAddresses + - id + - isCold + - label + - startDate + WalletAddress: + title: WalletAddress allOf: - type: object properties: - stakingRequestId: + coin: + $ref: '#/components/schemas/CoinString' + wallet: type: string + chain: + $ref: '#/components/schemas/AddressChain' + index: + type: number required: - - stakingRequestId - - $ref: '#/components/schemas/BaseIntent' - Amount: - title: Amount + - coin + - wallet + - chain + - index + - $ref: '#/components/schemas/BaseWalletAddress' + BaseWalletAddress: + title: BaseWalletAddress type: object properties: - value: + id: type: string - symbol: + 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 + proof: + type: string + signature: + type: string + lastConsolidatedTime: type: string + format: date + title: Date String + needsConsolidation: + type: boolean + tokenConsolidationState: {} + AddressLabelString: + title: AddressLabelString + type: string + 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 + properties: + addresses: + type: array + items: + type: string required: - - value - - symbol - Address: - title: Address + - addresses + XRPAddress: + title: XRP Address type: object properties: - address: - $ref: '#/components/schemas/optionalString' - option: - $ref: '#/components/schemas/optionalUnknownObject' - EthLikeStakeIntent: - title: EthLike Stake Intent - allOf: - - type: object + nonceTracker: + type: object properties: - intentType: - $ref: '#/components/schemas/IntentType' - recipients: + detectedMissingNonces: type: array items: type: object properties: - address: - $ref: '#/components/schemas/Address' - amount: - $ref: '#/components/schemas/Amount' - data: - $ref: '#/components/schemas/optionalString' + nonce: + type: number + isNonceLocked: + type: boolean + nonceLockExpireTime: + type: string + format: date + title: Date String required: - - address - - amount - required: - - intentType - - $ref: '#/components/schemas/BaseStakeIntent' - CoreDaoClaimIntent: - title: CoreDAO Claim Rewards Intent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - stakeClaimRewards - required: - - intentType - - $ref: '#/components/schemas/BaseStakeIntentWithCalldata' - BaseStakeIntentWithCalldata: - title: Base Stake Intent with Calldata - allOf: - - type: object - properties: - calldata: - type: string - required: - - calldata - - $ref: '#/components/schemas/BaseStakeIntent' - CoreDaoUndelegateIntent: - title: CoreDAO Undelegate Intent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - undelegate - validatorAddress: - type: string - amount: - $ref: '#/components/schemas/Amount' + - 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: - - intentType - - validatorAddress - - amount - - $ref: '#/components/schemas/BaseStakeIntentWithCalldata' - CoreDaoDelegateIntent: - title: CoreDAO Delegate Intent - allOf: - - type: object + - detectedMissingNonces + - detectedMissingNoncesData + required: + - nonceTracker + TronAddress: + title: Tron Address + type: object + properties: + rootPub: + type: string + required: + - rootPub + TezosAddress: + title: Tezos Address + type: object + properties: + 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 + delegate: + type: string + previousLowBalanceEmailSentAt: + type: string + format: date + title: Date String + required: + - counter + - updateTime + - txCount + - pendingChainInitialization + - pendingPublicKeyRevelation + - creationFailure + TestcoinAddress: + title: Testcoin Address + type: object + additionalProperties: {} + StellarAddress: + title: Stellar Address + type: object + properties: + memoId: + type: string + rootAddress: + type: string + required: + - memoId + - rootAddress + StacksAddress: + title: Stacks Address + type: object + properties: + baseAddress: + type: string + memoId: + type: string + required: + - baseAddress + - memoId + SolAddress: + title: Sol Address + type: object + properties: + rootAddress: + type: string + minimumFunding: + type: number + pendingChainInitialization: + type: boolean + trustedTokens: + type: array + items: + allOf: + - type: object + properties: + state: + $ref: '#/components/schemas/TrustedTokenState' + - $ref: '#/components/schemas/Token' + nonceExpiresAt: + type: string + format: date + title: Date String + nonceTxRequestid: + type: string + type: + type: string + required: + - rootAddress + - minimumFunding + - pendingChainInitialization + - trustedTokens + Token: + title: Token + type: object + properties: + limit: + type: string + token: + type: string + TrustedTokenState: + title: TrustedTokenState + type: string + enum: + - pending + - active + SilvergateUSDAddress: + title: Silvergate USD Address + type: object + properties: + bankAccountId: + type: string + bankAccount: + $ref: '#/components/schemas/BankAccountJson' + required: + - bankAccountId + BankAccountJson: + title: BankAccountJson + type: object + properties: + accountNumber: + type: string + address1: + type: string + name: + type: string + owner: + type: object properties: - intentType: + name: type: string - enum: - - delegate - validatorAddress: + address1: type: string - amount: - $ref: '#/components/schemas/Amount' - required: - - intentType - - validatorAddress - - amount - - $ref: '#/components/schemas/BaseStakeIntentWithCalldata' - TonUndelegateIntent: - title: TON Undelegate Intent - allOf: - - type: object - properties: - intentType: + address2: type: string - enum: - - undelegate - validatorAddress: + address3: type: string - useSingleNominator: - type: boolean - singleNominatorAmount: - $ref: '#/components/schemas/Amount' required: - - intentType - - validatorAddress - - useSingleNominator - - singleNominatorAmount - - $ref: '#/components/schemas/BaseIntent' - TonPaymentIntent: - title: TON Payment Intent - allOf: - - type: object - properties: - memo: - $ref: '#/components/schemas/optionalString' - - $ref: '#/components/schemas/PaymentIntent' - PaymentIntent: - title: PaymentIntent - allOf: - - type: object + - name + - address1 + idHash: + type: string + verificationState: + type: string + address2: + type: string + address3: + type: string + enterpriseId: + type: string + id: + type: string + routingNumber: + type: string + shortCountryCode: + type: string + swiftCode: + type: string + type: + type: string + required: + - accountNumber + - address1 + - name + - owner + - idHash + - verificationState + OffchainAddressSubdocument: + title: Offchain Address + type: object + additionalProperties: {} + HederaAddress: + title: Hedera Address + type: object + properties: + baseAddress: + type: string + memoId: + type: string + required: + - baseAddress + - memoId + FiatAddress: + title: Fiat Address + type: object + properties: + bankAccountId: + type: string + faBankAccountId: + type: string + bankAccount: + $ref: '#/components/schemas/BankAccountJson' + Ethereum2Address: + title: Ethereum2 Address + type: object + properties: + feeAddress: + type: string + EthereumAddress: + title: Ethereum Address + type: object + properties: + creationFailure: + type: array + items: + type: string + forwarderVersion: + type: number + nonce: + type: number + feeAddress: + type: string + pendingChainInitialization: + type: boolean + pendingDeployment: + type: boolean + txCount: + type: number + updateTime: + type: string + format: date + title: Date String + hopTxid: + type: 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: + - creationFailure + - forwarderVersion + - nonce + - feeAddress + - pendingChainInitialization + - pendingDeployment + - txCount + - updateTime + EosAddress: + title: Eos Address + type: object + properties: + rootAddress: + type: string + memoId: + type: string + required: + - rootAddress + - memoId + DotAddress: + title: Dot Address + type: object + properties: + rootAddress: + type: string + nonceTracker: + type: object properties: - intentType: - type: string - enum: - - payment - recipients: + lastReservedNonce: + type: number + lastExecutedNonce: + type: number + detectedMissingNonces: type: array items: type: object properties: - address: - $ref: '#/components/schemas/Address' - amount: - $ref: '#/components/schemas/Amount' - data: - $ref: '#/components/schemas/optionalString' + nonce: + type: number + isNonceLocked: + type: boolean + nonceLockExpireTime: + type: string + format: date + title: Date String required: - - address - - amount - required: - - intentType - - recipients - - $ref: '#/components/schemas/BaseIntent' - TonDelegateIntent: - title: TON Delegate Intent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - delegate - validatorAddress: - type: string - amount: - $ref: '#/components/schemas/Amount' - useSingleNominator: - type: boolean - ownerAddress: - $ref: '#/components/schemas/optionalString' - required: - - intentType - - validatorAddress - - amount - - useSingleNominator - - $ref: '#/components/schemas/BaseIntent' - TonConsolidateIntent: - title: TON Consolidate Intent - allOf: - - $ref: '#/components/schemas/AccountBaseConsolidateIntent' - AccountBaseConsolidateIntent: - title: AccountBaseConsolidateIntent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - consolidate - receiveAddress: - type: string - senderAddressIndex: - $ref: '#/components/schemas/optionalNumber' - consolidateId: - $ref: '#/components/schemas/optionalString' - recipients: + - nonce + - isNonceLocked + detecMissingNoncesData: type: array items: type: object properties: - address: - $ref: '#/components/schemas/Address' - amount: - $ref: '#/components/schemas/Amount' - data: - $ref: '#/components/schemas/optionalString' + nonce: + type: number + isNonceLocked: + type: boolean + nonceLockExpireTime: + type: string + format: date + title: Date String required: - - address - - amount - keepAlive: - $ref: '#/components/schemas/optionalBoolean' + - nonce + - isNonceLocked required: - - intentType - - receiveAddress - - $ref: '#/components/schemas/AccountBaseBuildOptions' - AccountBaseBuildOptions: - title: AccountBaseBuildOptions + - lastReservedNonce + - lastExecutedNonce + - detectedMissingNonces + - detecMissingNoncesData + required: + - rootAddress + - nonceTracker + CasperAddress: + title: Casper Address type: object properties: - nonce: - oneOf: - - type: string - - type: number - SuiUnstakingIntent: - title: SUI Unstaking Intent + accountHash: + type: string + rootAddress: + type: string + transferId: + type: string + required: + - accountHash + - rootAddress + - transferId + BitcoinCashAddress: + title: Bitcoin Cash Address allOf: - type: object properties: - stakedSuiObjectId: - type: string - amount: - type: object - properties: - symbol: - type: string - value: - type: string - required: - - symbol - - value - required: - - stakedSuiObjectId - - $ref: '#/components/schemas/WithdrawIntent' - WithdrawIntent: - title: WithdrawIntent - allOf: + format: + $ref: '#/components/schemas/SupportedAddressFormat' + - $ref: '#/components/schemas/UtxoAddress' + UtxoAddress: + title: Utxo Address + type: object + properties: + redeemScript: + type: string + witnessScript: + type: string + SupportedAddressFormat: + title: SupportedAddressFormat + type: string + enum: + - cashaddr + - base58 + AvaxPAddress: + title: AvaxP Address + type: object + properties: + threshold: + type: number + addresses: + type: array + items: + type: string + required: + - threshold + - addresses + AtomAddress: + title: Atom Address + type: object + properties: + rootAddress: + type: string + memoId: + type: string + required: + - rootAddress + - memoId + AlgorandAddress: + title: Algorand Address + type: object + properties: + rootAddress: + 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: + type: string + required: + - rootAddress + TrimmedBalance: + title: TrimmedBalance + type: object + properties: + balanceString: + type: string + description: String representation of the balance. Guaranteed to not lose precision. + example: '500000' + confirmedBalanceString: + 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: + 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: + type: string + reservedBalanceString: + 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 + AddressChain: + title: AddressChain + type: number + enum: + - 0 + - 1 + - 10 + - 11 + - 20 + - 21 + - 30 + - 31 + - 40 + - 41 + WalletFlag: + title: WalletFlag + type: string + enum: + - isStaking + - lightning + - musigKp + - trackingInscriptions + - lockedAmount + - rbf + - coldWalletStaking + - tokenizationToken + - oneClickStaking + - solOfcStaking + - suiOfcStaking + WalletSubType: + title: WalletSubType + type: string + enum: + - distributedCustody + - pairedCustodial + - custodialHot + - custodialCold + WalletType: + title: WalletType + type: string + enum: + - backing + - cold + - custodial + - custodialPaired + - hot + - trading + MultisigTypeVersion: + title: MultisigTypeVersion + type: string + enum: + - MPCv2 + MultiSigType: + title: MultiSigType + type: string + enum: + - onchain + - tss + - blsdkg + Policy: + title: Policy + type: object + properties: + date: + oneOf: + - type: string + format: date-time + title: ISO Date String + - type: string + format: date + title: Date String + format: date-time + id: + type: string + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + latest: + type: boolean + version: + type: number + enterpriseId: + type: string + label: + type: string + rules: + type: array + items: + type: object + properties: + id: + type: string + 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 + format: date-time + title: ISO Date String + mutabilityConstraint: + allOf: + - $ref: '#/components/schemas/MutabilityConstraint' + 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 + coin: + $ref: '#/components/schemas/CoinString' + condition: + allOf: + - $ref: '#/components/schemas/Condition' + description: Parameters for the type + required: + - id + - type + - action + walletId: + type: string + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + required: + - date + - id + - latest + - version + 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: + 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 + required: + - entries + AddressListCondition: + title: AddressListCondition + type: object + properties: + addresses: + type: array + items: + type: string + metaData: + type: object + additionalProperties: + type: object + additionalProperties: {} + required: + - addresses + - metaData + MutabilityConstraint: + title: MutabilityConstraint + type: string + enum: + - unlocked + - permanent + - sticky + - managed + 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: + keys: + 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: string + updateSignerMacaroon: + type: boolean + encryptedSignerMacaroon: + type: string + required: + - keys + SolWallet: + title: Sol Wallet + type: object + properties: + pendingChainInitialization: + type: boolean + minimumFunding: + type: number + trustedTokens: + 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 + required: + - pendingChainInitialization + - minimumFunding + - trustedTokens + TezosWallet: + title: Tezos Wallet + type: object + properties: + 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: + - pendingChainInitialization + - creationFailure + XRPWallet: + title: XRP Wallet + type: object + properties: + rootAddress: + type: string + pendingChainInitialization: + type: boolean + creationFailure: + type: array + items: + type: string + trustedTokens: + type: array + items: + allOf: + - type: object + properties: + state: + $ref: '#/components/schemas/TrustedTokenState' + - $ref: '#/components/schemas/Token' + required: + - rootAddress + - pendingChainInitialization + - creationFailure + StellarWallet: + title: Stellar Wallet + type: object + properties: + rootAddress: + type: string + pendingChainInitialization: + type: boolean + creationFailure: + type: array + items: + type: string + lastMemoId: + type: string + stellarUsername: + type: string + homeDomain: + type: string + stellarAddress: + type: string + 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 + rootPub: + type: string + 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 + memoId: + type: string + lastMemoId: + type: string + 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 + feeAddress: + type: string + lastNonce: + type: number + addressCount: + type: number + SilvergateUSDWallet: + title: Silvergate USD Wallet + type: object + properties: + backingBankAccountId: {} + backingSENBankAccountId: {} + lastUsedNonce: + type: number + required: + - backingBankAccountId + - backingSENBankAccountId + - lastUsedNonce + 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 + NearWallet: + title: Near Wallet + type: object + properties: + nonceAddress: + type: string + lastNonce: + type: number + addressCount: + type: number + pendingChainInitialization: + type: boolean + rootAddrss: + type: string + lastChainIndex: + type: object + additionalProperties: + type: number + required: + - nonceAddress + - lastNonce + - addressCount + - pendingChainInitialization + HederaWallet: + title: Hedera Wallet + type: object + properties: + addressCount: + type: number + pendingChainInitialization: + type: boolean + 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 + baseAddress: + type: string + confirmedTransactionId: + type: string + 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 + feeAddress: + type: string + required: + - pendingChainInitialization + EthereumWallet: + title: Ethereum Wallet + 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: + type: boolean + flushForwardersManually: + type: boolean + enableMMI: + type: boolean + enableNFT: + type: boolean + deployedInBlock: + oneOf: + - type: number + - type: boolean + deployTxHash: + type: string + lastChainIndex: {} + baseAddress: + type: string + feeAddress: + type: string + nonce: + type: string + token: + type: string + pendingEcdsaTssInitialization: + type: boolean + safeModeActivated: + type: string + lowPriorityFeeAddress: + type: string + salt: + type: string + required: + - pendingChainInitialization + - creationFailure + - gasPriceTier + - tokenFlushThresholds + - walletVersion + - pendingDeployment + - deployForwardersManually + - flushForwardersManually + - enableMMI + - enableNFT + EosWallet: + title: Eos Wallet + type: object + properties: + rootAddress: + type: string + pendingChainInitialization: + type: boolean + creationFailure: + type: array + items: + type: string + lastMemoId: + type: string + required: + - rootAddress + - pendingChainInitialization + - creationFailure + - lastMemoId + DotWallet: + title: Dot Wallet + type: object + properties: + rootAddress: + type: string + pendingChainInitialization: + type: boolean + nonceAddress: + type: string + required: + - rootAddress + - pendingChainInitialization + CasperWallet: + title: Casper Wallet + type: object + properties: + accountHash: + type: string + creationFailure: + type: array + items: + type: string + lastTransferId: + type: string + pendingChainInitialization: + type: boolean + rootAddress: + type: string + required: + - accountHash + - creationFailure + - lastTransferId + - pendingChainInitialization + - rootAddress + UtxoWallet: + title: Utxo Wallet + type: object + properties: + customChangeWalletId: + type: string + customChangeAddressType: + type: string + sendQueueInferredScriptTypes: + type: array + items: + type: string + AvaxPWallet: + title: AvaxP Wallet + type: object + properties: + unlockAddresses: + type: array + items: + type: string + threshold: + type: number + required: + - unlockAddresses + - threshold + AtomWallet: + title: Atom Wallet + type: object + properties: + rootAddress: + type: string + lastMemoId: + type: string + lastChainIndex: {} + pendingEcdsaTssInitialization: + type: boolean + required: + - rootAddress + - lastMemoId + AlgorandWallet: + title: Algorand Wallet + type: object + properties: + addressVersion: + type: number + rootAddress: + type: string + 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 + addressCount: + type: string + pendingChainInitialization: + type: boolean + rewardAddress: + type: string + lastChainIndex: + type: object + additionalProperties: + type: number + required: + - rootAddress + - addressCount + - pendingChainInitialization + - rewardAddress + CoinNonEmptyString: + title: CoinNonEmptyString + type: string + description: A cryptocurrency symbol or token ticker symbol + example: btc + minLength: 1 + UpdateWalletShareResponse: + title: UpdateWalletShareResponse + type: object + properties: + state: + 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 + 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 + type: object + properties: + 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: + - id + - name + EnterpriseIdString: + title: EnterpriseIdString + type: string + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + 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 + publicLabels: + type: array + items: + type: string + description: Subset of labels that are OK to return back to client in GetEnterpriseResponse + 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: - intentType: - type: string - enum: - - claim - amount: + enterpriseWallets: type: object - properties: - symbol: - type: string - value: - type: string - required: - - symbol - - value + additionalProperties: + type: number required: - - intentType - - $ref: '#/components/schemas/BaseStakeIntent' - SuiStakingIntent: - title: SUI Stake Intent - allOf: - - type: object - properties: - validatorAddress: - $ref: '#/components/schemas/optionalString' - amount: - type: object - properties: - symbol: - type: string - value: - type: string - required: - - symbol - - value - recipients: - type: array - items: + - 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: - address: - $ref: '#/components/schemas/Address' - amount: - $ref: '#/components/schemas/Amount' - data: - $ref: '#/components/schemas/optionalString' - required: - - address - - amount - - $ref: '#/components/schemas/StakeIntent' - StakeIntent: - title: StakeIntent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - stake - required: - - intentType - - $ref: '#/components/schemas/BaseStakeIntent' - SuiPaymentIntent: - title: SUI Payment Intent - allOf: - - type: object - properties: {} - - $ref: '#/components/schemas/PaymentIntent' - - $ref: '#/components/schemas/SuiBuildOptions' - SuiBuildOptions: - title: SuiBuildOptions - allOf: - - type: object - properties: - feeOptions: - $ref: '#/components/schemas/SuiFeeOptions' - lockedAmount: - $ref: '#/components/schemas/optionalString' - required: - - feeOptions - - lockedAmount - - $ref: '#/components/schemas/BaseIntent' - SuiFeeOptions: - title: SuiFeeOptions + 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 + oauthSetting: + allOf: + - $ref: '#/components/schemas/OAuthSetting' + description: oauth setting 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 + OAuthSetting: + title: OAuthSetting type: object properties: - gasLimit: - type: number + clientId: + type: string + clientSecret: + type: string + tenantId: + type: string + oauthProvider: + $ref: '#/components/schemas/OAuthProvider' required: - - gasLimit - SuiCustomTxIntent: - title: SUI Custom Tx Intent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - customTx - rawTx: - type: string - required: - - intentType - - rawTx - - $ref: '#/components/schemas/BaseIntent' - - $ref: '#/components/schemas/SuiBuildOptions' - SuiConsolidateIntent: - title: SUI Consolidate Intent - allOf: - - type: object - properties: {} - - $ref: '#/components/schemas/AccountBaseConsolidateIntent' - - $ref: '#/components/schemas/SuiBuildOptions' - UnstakeIntent: - title: UnstakeIntent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - unstake - required: - - intentType - - $ref: '#/components/schemas/BaseStakeIntent' - SolPaymentIntent: - title: SolPaymentIntent - allOf: - - type: object - properties: {} - - $ref: '#/components/schemas/PaymentIntent' - - $ref: '#/components/schemas/SolBuildOptions' - SolDelegateIntent: - title: SOL Delegate Intent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - delegate - validatorAddress: - type: string - stakingAddresses: - $ref: '#/components/schemas/optionalStringArray' - stakingAddress: - $ref: '#/components/schemas/optionalString' - required: - - intentType - - validatorAddress - - stakingAddresses - - stakingAddress - - $ref: '#/components/schemas/BaseIntent' - - $ref: '#/components/schemas/SolBuildOptions' - optionalStringArray: - title: optionalStringArray - type: array - items: - type: string - SolDeactivateIntent: - title: SOL Deactivate Intent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - deactivate - stakingAddresses: - $ref: '#/components/schemas/optionalStringArray' - stakingAddress: - $ref: '#/components/schemas/optionalString' - required: - - intentType - - stakingAddresses - - stakingAddress - - $ref: '#/components/schemas/BaseIntent' - - $ref: '#/components/schemas/SolBuildOptions' - SolConsolidateIntent: - title: SOL Consolidate Intent - allOf: - - $ref: '#/components/schemas/AccountBaseConsolidateIntent' - SolCloseAssociatedTokenAccountIntent: - title: SOL Close Associated Token Account Intent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - closeAssociatedTokenAccount - accountAddress: - type: string - destinationAddress: - type: string - required: - - intentType - - accountAddress - - destinationAddress - - $ref: '#/components/schemas/BaseIntent' - - $ref: '#/components/schemas/SolBuildOptions' - SolAuthorizeIntent: - title: SOL Authorize Intent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - authorize - transactionMessage: - type: string - stakeAccount: - type: string - oldWithdrawPublicKey: - type: string - newWithdrawPublicKey: - type: string - lockupPublicKey: - type: string - nonceAccount: - type: string - nonceAuthority: - type: string - blockhash: - type: string - required: - - intentType - - transactionMessage - - stakeAccount - - oldWithdrawPublicKey - - newWithdrawPublicKey - - lockupPublicKey - - nonceAccount - - nonceAuthority - - blockhash - - $ref: '#/components/schemas/BaseIntent' - - $ref: '#/components/schemas/SolBuildOptions' - MmiSignTransactionIntent: - title: MMI Sign Transaction Intent - allOf: - - type: object - properties: - custodianTransactionId: - type: string - required: - - custodianTransactionId - - $ref: '#/components/schemas/PaymentIntent' - MmiSignMessageIntent: - title: MMI Sign Message Intent - allOf: - - type: object - properties: - custodianMessageId: - type: string - required: - - custodianMessageId - - $ref: '#/components/schemas/SignMessageIntent' - SignMessageIntent: - title: SignMessageIntent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - signMessage - messageRaw: - type: string - description: A plain text message - example: 'for EVM: test message' - messageEncoded: - allOf: - - $ref: '#/components/schemas/optionalString' - description: An encoded string - example: 'for EVM: \x19Ethereum Signed Message:\n12test message' - required: - - intentType - - messageRaw - - messageEncoded - - $ref: '#/components/schemas/BaseIntent' - LightningPaymentIntent: - title: Lightning Payment Intent + - clientId + - clientSecret + - tenantId + - oauthProvider + OAuthProvider: + title: OAuthProvider + type: string + enum: + - msEntra + ReferralCodeString: + title: ReferralCodeString + type: string + description: An Enterprise Referral Code + 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 + 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 + 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 Custody MENA FZE + - BitGo Sister Trust 1 + - BitGo Inc + 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 + umsMappingComplete: + nullable: true + type: boolean + required: + - migratedToNewPolicyService + - policiesLocked + - umsMappingComplete + FlattenedPricingType: + title: FlattenedPricingType allOf: - type: object properties: - intentType: - type: string - enum: - - payment + name: + $ref: '#/components/schemas/PricingTypeName' required: - - intentType - - $ref: '#/components/schemas/BaseIntent' - - $ref: '#/components/schemas/LightningPaymentRequestWithSig' - LightningPaymentRequestWithSig: - title: LightningPaymentRequestWithSig + - name + - $ref: '#/components/schemas/ActiveDateRange' + ActiveDateRange: + title: ActiveDateRange type: object properties: - request: - $ref: '#/components/schemas/LightningPaymentRequest' - signature: + 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: - - request - - signature - LightningPaymentRequest: - title: LightningPaymentRequest + - startDate + - startReason + PricingTypeName: + title: PricingTypeName + type: string + enum: + - starter + - growth + - employee + - FTX Retail + - FTX Institutional + AvailableUI: + title: AvailableUI + type: string + enum: + - bg23 + - '' + Freeze: + title: Freeze type: object properties: - invoice: + 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 - amountMsat: + description: The reason the entity was frozen + frozenBy: type: string - format: number - feeLimitMsat: + description: The user that froze the entity + unFrozenBy: type: string - format: number - feeLimitRatio: - type: number - required: - - invoice - EthTransferTokenIntent: - title: ETH Transfer Token Intent - allOf: - - type: object - properties: {} - - $ref: '#/components/schemas/TransferTokenIntent' - - $ref: '#/components/schemas/EthBuildOptions' - UnsupportedTokenRecipientEntryItem: - title: UnsupportedTokenRecipientEntryItem + description: The user that unfroze the entity + 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: - tokenContractAddress: - $ref: '#/components/schemas/optionalString' - decimals: - $ref: '#/components/schemas/optionalNumber' - SupportedTokenRecipientEntryItem: - title: SupportedTokenRecipientEntryItem + user: + type: string + date: + type: string + format: date-time + title: ISO Date String + ip: + type: string + required: + - user + - date + LegalIdentifiers: + title: LegalIdentifiers type: object properties: - tokenName: + legalPersonNameIdentifierType: + $ref: '#/components/schemas/LegalPersonNameIdentifierType' + legalPersonName: type: string required: - - tokenName - TokenRecipientEntryItem: - title: TokenRecipientEntryItem + - legalPersonNameIdentifierType + LegalPersonNameIdentifierType: + title: LegalPersonNameIdentifierType + type: string + enum: + - LEGL + KycState: + title: KycState + type: string + enum: + - unverified + - approved + - rejected + - pending + AdditionalEnterpriseInfo: + title: AdditionalEnterpriseInfo type: object properties: - tokenQuantity: + contact: + $ref: '#/components/schemas/GeographicAddress' + GeographicAddress: + title: GeographicAddress + type: object + properties: + addressType: type: string - tokenType: + name: type: string - tokenId: - $ref: '#/components/schemas/optionalString' - required: - - tokenQuantity - - tokenType - EthConsolidateTokenIntent: - title: ETH Consolidate Token Intent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - consolidateToken - recipients: - type: array - items: - allOf: - - type: object - properties: - tokenData: - $ref: '#/components/schemas/TokenData' - required: - - tokenData - - $ref: '#/components/schemas/RecipientEntry' - consolidateId: - $ref: '#/components/schemas/optionalString' - keepAlive: - $ref: '#/components/schemas/optionalBoolean' - required: - - intentType - - recipients - - consolidateId - - keepAlive - - $ref: '#/components/schemas/BaseIntent' - - $ref: '#/components/schemas/EthBuildOptions' - EthConsolidateIntent: - title: ETH Consolidate Intent - allOf: - - type: object - properties: {} - - $ref: '#/components/schemas/AccountBaseConsolidateIntent' - - $ref: '#/components/schemas/EthBuildOptions' - DotWithdrawStakeIntent: - title: DOT Withdraw Stake Intent - allOf: - - type: object - properties: {} - - $ref: '#/components/schemas/WithdrawIntent' - - $ref: '#/components/schemas/DotAccountBaseBuildOptions' - DotCreateAccountIntent: - title: DOT Create Account Intent - allOf: - - type: object - properties: - delayBlocks: - type: string - proxyType: - type: string - index: - $ref: '#/components/schemas/optionalNumber' - recipients: - type: array - items: - type: object - properties: - address: - $ref: '#/components/schemas/Address' - amount: - $ref: '#/components/schemas/Amount' - data: - $ref: '#/components/schemas/optionalString' - required: - - address - - amount - required: - - delayBlocks - - proxyType - - $ref: '#/components/schemas/AccountBaseCreateAccountIntent' - - $ref: '#/components/schemas/DotAccountBaseBuildOptions' - AccountBaseCreateAccountIntent: - title: AccountBaseCreateAccountIntent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - createAccount - name: - $ref: '#/components/schemas/optionalString' - required: - - intentType - - $ref: '#/components/schemas/BaseIntent' - - $ref: '#/components/schemas/AccountBaseBuildOptions' - DotConsolidateIntent: - title: DOT Consolidate Intent - allOf: - - $ref: '#/components/schemas/AccountBaseConsolidateIntent' - CosmosWithdrawIntent: - title: Cosmos Withdraw Intent - allOf: - - type: object - properties: - validatorAddress: - type: string - required: - - validatorAddress - - $ref: '#/components/schemas/WithdrawIntent' - CosmosUnstakeIntent: - title: Cosmos Unstake Intent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - undelegate - validatorAddress: - type: string - amount: - $ref: '#/components/schemas/Amount' - recipients: - type: array - items: - type: object - properties: - address: - $ref: '#/components/schemas/Address' - amount: - $ref: '#/components/schemas/Amount' - data: - $ref: '#/components/schemas/optionalString' - required: - - address - - amount - required: - - intentType - - validatorAddress - - amount - - $ref: '#/components/schemas/BaseStakeIntent' - CosmosSwitchValidatorIntent: - title: Cosmos Switch Validator Intent - allOf: - - $ref: '#/components/schemas/StakeSwitchValidatorIntent' - StakeSwitchValidatorIntent: - title: StakeSwitchValidatorIntent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - switchValidator - amount: - $ref: '#/components/schemas/Amount' - validatorAddress: - type: string - destValidatorAddress: - type: string - required: - - intentType - - amount - - validatorAddress - - destValidatorAddress - - $ref: '#/components/schemas/BaseStakeIntent' - CosmosStakeIntent: - title: Cosmos Stake Intent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - delegate - validatorAddress: - type: string - amount: - $ref: '#/components/schemas/Amount' - recipients: - type: array - items: - type: object - properties: - address: - $ref: '#/components/schemas/Address' - amount: - $ref: '#/components/schemas/Amount' - data: - $ref: '#/components/schemas/optionalString' - required: - - address - - amount - required: - - intentType - - validatorAddress - - amount - - $ref: '#/components/schemas/BaseStakeIntent' - CosmosPaymentIntent: - title: Cosmos Payment Intent - allOf: - - type: object - properties: - memo: - $ref: '#/components/schemas/optionalString' - required: - - memo - - $ref: '#/components/schemas/PaymentIntent' - BscWithdrawUndelegateIntent: - title: BSC Withdraw Intent + 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 + GetEnterpriseResponse: + title: GetEnterpriseResponse allOf: - type: object properties: - validatorAddress: - type: string - requestNumber: - type: number + 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: - - validatorAddress - - requestNumber - - $ref: '#/components/schemas/WithdrawIntent' - BscUnDelegateIntent: - title: BSC UnDelegate Intent + - wallets + - tags + - $ref: '#/components/schemas/Enterprise' + InvalidEnterpriseId: + title: Invalid Enterprise ID allOf: - type: object properties: - intentType: + name: type: string enum: - - undelegate - validatorAddress: - type: string - amount: - $ref: '#/components/schemas/Amount' - relayerFee: - type: string + - InvalidEnterpriseId required: - - intentType - - validatorAddress - - amount - - $ref: '#/components/schemas/BaseStakeIntent' - BscDelegateIntent: - title: BSC Delegate Intent + - name + - $ref: '#/components/schemas/InvalidId' + InvalidOrganizationId: + title: Invalid Organization ID allOf: - type: object properties: - intentType: + name: type: string enum: - - delegate - validatorAddress: - type: string - amount: - $ref: '#/components/schemas/Amount' - relayerFee: - type: string - delegateVotePower: - type: string - required: - - intentType - - validatorAddress - - amount - - $ref: '#/components/schemas/BaseStakeIntent' - AtomWithdrawIntent: - title: Atom Withdraw Intent - allOf: - - type: object - properties: - validatorAddress: - type: string - amount: - $ref: '#/components/schemas/Amount' - required: - - validatorAddress - - amount - - $ref: '#/components/schemas/WithdrawIntent' - AtomUnstakeIntent: - title: Atom Unstake Intent - allOf: - - type: object - properties: - validatorAddress: - type: string - amount: - $ref: '#/components/schemas/Amount' - recipients: - type: array - items: - type: object - properties: - address: - $ref: '#/components/schemas/Address' - amount: - $ref: '#/components/schemas/Amount' - data: - $ref: '#/components/schemas/optionalString' - required: - - address - - amount + - InvalidOrganizationId required: - - validatorAddress - - amount - - $ref: '#/components/schemas/UnstakeIntent' - AtomStakeIntent: - title: Atom Stake Intent + - name + - $ref: '#/components/schemas/InvalidId' + EnterpriseUserRole: + title: EnterpriseUserRole + type: string + enum: + - admin + - member + GetTransactionRequestsResponse: + title: GetTransactionRequestsResponse + type: object + properties: + 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: + - txRequests + AccessTokenResponse: + title: AccessTokenResponse + type: object + properties: + id: + type: string + example: 59cd72485007a239fb00282ed480da1f + pattern: ^[0-9a-f]{32}$ + isExtensible: + type: boolean + bitgoAdminPermissions: + 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: + type: string + ip: + 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: string + origin: + 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 + Unlock: + title: Unlock + type: object + properties: + expires: + type: string + format: date-time + title: ISO Date String + time: + type: string + format: date-time + title: ISO Date String + txCount: + type: number + txValue: + type: number + txValueLimit: + type: number + AllErc20TokenLimit: + title: AllErc20TokenLimit + 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: + 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: + - enabled + - txCount + - txValue + OAuthAccessToken: + title: OAuthAccessToken + type: object + properties: + bitgoAdminPermissions: + type: array + items: + type: string + description: The BitGo admin permissions associated with the access token + client: + type: string + 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 + 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 + 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 + ip: + 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: + 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: + 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 + - isExtensible + PerCoinLimit: + title: PerCoinLimit + 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 + PlatformInvalidWalletId: + title: Invalid wallet id allOf: - - type: object - properties: - validatorAddress: + - $ref: '#/components/schemas/PlatformInvalidId' + - properties: + name: type: string - amount: - $ref: '#/components/schemas/Amount' - recipients: - type: array - items: - type: object - properties: - address: - $ref: '#/components/schemas/Address' - amount: - $ref: '#/components/schemas/Amount' - data: - $ref: '#/components/schemas/optionalString' - required: - - address - - amount + description: Error code + enum: + - InvalidWalletId required: - - validatorAddress - - amount - - $ref: '#/components/schemas/StakeIntent' - AtomPaymentIntent: - title: Atom Payment Intent + - name + PlatformInvalidId: allOf: - - type: object - properties: - memo: - $ref: '#/components/schemas/optionalString' + - $ref: '#/components/schemas/PlatformPlatformErrorNoName' + - properties: + context: + type: object + properties: + id: + $ref: '#/components/schemas/Id' required: - - memo - - $ref: '#/components/schemas/PaymentIntent' - AdaVoteDelegationIntent: - title: ADA Vote Delegation Intent + - context + Id: + title: ID + type: string + pattern: ^[0-9a-f]{32}$ + example: 59cd72485007a239fb00282ed480da1f + PlatformPlatformErrorNoName: + type: object + properties: + error: + type: string + description: Human-readable error message + requestId: + type: string + description: Client request id + required: + - error + - requestId + PlatformPlatformError: + title: API error allOf: - - type: object - properties: - dRepId: + - $ref: '#/components/schemas/PlatformPlatformErrorNoName' + - properties: + context: + type: object + description: Properties that apply to a specific error name + name: type: string + description: Error code required: - - dRepId - - $ref: '#/components/schemas/VoteDelegationIntent' - VoteDelegationIntent: - title: Vote Delegation Intent - allOf: - - type: object + - name + PlatformWebhook: + 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/PlatformTransactionRequestState' + 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/PlatformTransactionState' + 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/PlatformVerifiedKycState' + 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/PlatformVerifiedKycState' + 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 + PlatformVerifiedKycState: + type: string + enum: + - approved + - pending + - rejected + IdentityStatus: + type: string + enum: + - approved + - declined + - input error + - ssn error + - gov id error + - ssn verified + - gov id verified + - evaluating submission + - awaiting document upload + - records uploaded + - in review + - incomplete verifications + - awaiting signature + - signature submitted + - initiating + - additional information submitted + PlatformTransactionState: + type: string + enum: + - initialized + - pendingSignature + - eddsaPendingCommitment + - eddsaPendingRShare + - eddsaPendingGShare + - readyToCombineShares + - signed + - held + - delivered + - invalidSignature + - rejected + - ecdsaMPCv2Round1 + - ecdsaMPCv2Round2 + - ecdsaMPCv2Round3 + PlatformTransactionRequestState: + type: string + enum: + - initialized + - pendingApproval + - pendingUserCommitment + - pendingUserRShare + - pendingUserGShare + - readyToSend + - pendingUserSignature + - pendingDelivery + - signed + - delivered + - canceled + - rejected + - failed + DateTime: + type: string + format: date-time + example: {} + WebhookTypeWallet: + type: string + enum: + - txRequest + - txRequestTransaction + - transfer + - transaction + - transactionRemoved + - transactionExpire + - pendingapproval + - address_confirmation + - lowFee + - block + - admin + - circuitBreaker + - transaction_finality_on_l1 + example: transfer + description: Event type to listen to. + Coin: + title: Coin + description: A cryptocurrency or token ticker symbol. + type: string + example: btc + PlatformPendingApproval: + title: Pending approval + 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/PendingApprovalTransactionRequestFull' + - $ref: '#/components/schemas/PendingApprovalUserChangeRequest' + - $ref: '#/components/schemas/PendingApprovalPolicyRuleRequest' + - $ref: '#/components/schemas/PendingApprovalUpdateApprovalsRequiredRequest' + - $ref: '#/components/schemas/PendingApprovalEnterpriseModificationResponse' + - $ref: '#/components/schemas/PendingApprovalEnterpriseInviteRequest' + state: + $ref: '#/components/schemas/PlatformPendingApprovalState' + 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 + type: array + items: + $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' + 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 + AddressLabel: + type: string + nullable: true + example: Bob's Hot Wallet Address + maxLength: 250 + description: A human-readable label for the address. + ApprovalsRequired: + type: integer + minimum: 1 + example: 1 + PlatformPendingApprovalState: + anyOf: + - $ref: '#/components/schemas/PlatformPendingApprovalStatePending' + - $ref: '#/components/schemas/PlatformPendingApprovalStateResolved' + PlatformPendingApprovalStateResolved: + title: Resolved + type: string + enum: + - approved + - processing + - rejected + PlatformPendingApprovalStatePending: + title: Pending + type: string + enum: + - pending + - awaitingSignature + - pendingFinalApproval + - pendingCustodianApproval + - pendingVideoApproval + - pendingIdVerification + PendingApprovalEnterpriseInviteRequest: + title: Enterprise Invite Request + type: object + properties: + type: + type: string + enum: + - enterpriseInviteRequest + enterpriseInviteRequest: + type: object properties: - intentType: + action: type: string enum: - - voteDelegation - required: - - intentType - - $ref: '#/components/schemas/BaseStakeIntent' - AdaUnstakeIntent: - title: ADA Unstake Intent - allOf: - - type: object - properties: - poolKeyHash: + - add + email: type: string - amount: + description: The email address of the user being invited + userId: + $ref: '#/components/schemas/Id' + description: The ID of the user being invited + isVideoIdUser: + type: boolean + enterpriseInfo: type: object properties: - symbol: + id: + $ref: '#/components/schemas/Id' + description: The ID of the enterprise the user is being invited to + name: type: string - value: + description: The name of the enterprise the user is being invited to + requiredVerificationStep: type: string - required: - - symbol - - value - required: - - poolKeyHash - - $ref: '#/components/schemas/UnstakeIntent' - AdaStakeClaimRewardsIntent: - title: ADA Stake Claim Rewards Intent - allOf: - - $ref: '#/components/schemas/StakeClaimRewardsIntent' - StakeClaimRewardsIntent: - title: StakeClaimRewardsIntent - allOf: - - type: object + description: The required verification step needed (if any) before the user can join the enterprise + invitedBy: + type: object + properties: + id: + $ref: '#/components/schemas/Id' + description: The ID of the user who invited the user + fullName: + type: string + description: The full name of the user who invited the user + email: + type: string + description: The email address of the user who invited the user + PendingApprovalEnterpriseModificationResponse: + title: Enterprise modification request + type: object + properties: + policyRuleRequest: + type: object properties: - intentType: + action: type: string - enum: - - stakeClaimRewards - amount: - $ref: '#/components/schemas/Amount' - required: - - intentType - - amount - - $ref: '#/components/schemas/BaseStakeIntent' - AdaPaymentIntent: - title: ADA Payment Intent - allOf: - - type: object - properties: - unspents: - $ref: '#/components/schemas/optionalStringArray' - required: - - unspents - - $ref: '#/components/schemas/PaymentIntent' - AdaConsolidateIntent: - title: ADA Consolidate Intent - allOf: - - type: object - properties: - unspents: - $ref: '#/components/schemas/optionalStringArray' - - $ref: '#/components/schemas/AccountBaseConsolidateIntent' - PendingApprovalType: - title: PendingApprovalType + updateEnterpriseRequest: + type: object + properties: + type: + type: string + enum: + - updateEnterpriseRequest + action: + type: string + enum: + - add + - remove + permission: + type: string + enum: + - admin + userId: + type: string + email: + allOf: + - $ref: '#/components/schemas/PlatformEmail' + description: E-Mail address of newly added users + type: + type: string + enum: + - policyRuleRequest + PlatformEmail: type: string - enum: - - userChangeRequest - - transactionRequest - - transactionRequestFull - - policyRuleRequest - - updateApprovalsRequiredRequest - - updateEnterpriseRequest - - updateOrganizationRequest - - genericRequest - - enterpriseInviteRequest - WalletAddress: - title: WalletAddress - allOf: - - type: object + format: email + example: user@example.com + PendingApprovalUpdateApprovalsRequiredRequest: + title: Update approvals required request + type: object + properties: + type: + type: string + enum: + - updateApprovalsRequiredRequest + updateApprovalsRequiredRequest: + type: object properties: - coin: - $ref: '#/components/schemas/CoinString' - wallet: - type: string - chain: - $ref: '#/components/schemas/AddressChain' - index: + requestedApprovalsRequired: type: number - required: - - coin - - wallet - - chain - - index - - $ref: '#/components/schemas/BaseWalletAddress' - BaseWalletAddress: - title: BaseWalletAddress + PendingApprovalPolicyRuleRequest: + title: Policy rule request type: object properties: - id: - 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/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 - proof: - type: string - signature: - type: string - lastConsolidatedTime: + policyRuleRequest: + type: object + properties: + action: + type: string + update: + type: object + properties: + action: + $ref: '#/components/schemas/PolicyRuleActions' + coin: + $ref: '#/components/schemas/Coin' + condition: + type: object + properties: + excludeTags: + $ref: '#/components/schemas/IdArray' + groupTags: + $ref: '#/components/schemas/IdArray' + additionalProperties: true + id: + type: string + description: the id of the rule that is being updated + type: + $ref: '#/components/schemas/PolicyRuleTriggers' + type: type: string - format: date - title: Date String - needsConsolidation: - type: boolean - tokenConsolidationState: {} - AddressLabelString: - title: AddressLabelString + enum: + - policyRuleRequest + PolicyRuleTriggers: type: string - 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 + enum: + - advancedWhitelist + - allTx + - bitcoinAddressWhitelist + - coinAddressWhitelist + - coinAddressBlacklist + - transactionLimit + - velocityLimit + - webhook + description: What causes this rule to trigger + IdArray: + type: array + items: + $ref: '#/components/schemas/Id' + example: + - 585951a5df8380e0e3063e9f + - 585951a5df8380e0e304a553 + PolicyRuleActions: + description: What happens when this rule is triggered type: object properties: - addresses: + type: + type: string + enum: + - deny + - getApproval + - getGroupApproval + - getFinalApproval + - getCustodianApproval + - getIdVerification + - noop + approvalsRequired: + $ref: '#/components/schemas/ApprovalsRequired' + userIds: + description: For a final approver action, who can approve type: array items: - type: string + $ref: '#/components/schemas/Id' required: - - addresses - XRPAddress: - title: XRP Address + - type + PendingApprovalUserChangeRequest: + title: User change request type: object properties: - nonceTracker: + type: + type: string + enum: + - userChangeRequest + userChangeRequest: type: object properties: - detectedMissingNonces: + action: + type: string + permissions: + type: string + userChanged: + $ref: '#/components/schemas/Id' + PendingApprovalTransactionRequestFull: + title: Transaction request (full) + type: object + properties: + transactionRequestFull: + type: object + properties: + txRequestId: + type: string + policyUniqueId: + $ref: '#/components/schemas/Id' + verificationItems: 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: string + verificationRuleId: + type: string + videoApprovers: + $ref: '#/components/schemas/IdArray' + walletRebalanceEventId: + $ref: '#/components/schemas/Id' + txRequest: + $ref: '#/components/schemas/PlatformTransactionRequest' + required: + - txRequestId + type: + type: string + enum: + - transactionRequestFull + PlatformTransactionRequest: + anyOf: + - $ref: '#/components/schemas/PlatformTransactionRequestLite' + - $ref: '#/components/schemas/PlatformTransactionRequestFull' + required: + - txRequestId + - version + - latest + - walletId + - state + - date + - userId + - intent + PlatformTransactionRequestFull: + title: Full + allOf: + - $ref: '#/components/schemas/PlatformTransactionRequestBase' + - type: object + properties: + transactions: + description: Transaction information. 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 + $ref: '#/components/schemas/Transaction' + messages: + description: Messages for the transaction request. + type: array + items: + $ref: '#/components/schemas/Message' required: - - nonceTracker - TronAddress: - title: Tron Address + - txRequestId + - version + - latest + - walletId + - state + - date + - userId + - intent + - transactions + Message: type: object properties: - rootPub: + coin: type: string - required: - - rootPub - TezosAddress: - title: Tezos Address - type: object - properties: - counter: - type: number - updateTime: + description: The coin associated with the wallet. + combineSigShare: type: string - format: date - title: Date String - txCount: - type: number - pendingChainInitialization: - type: boolean - pendingPublicKeyRevelation: - type: boolean - creationFailure: - type: array - items: - type: string - delegate: + createdDate: + description: The date the message was created. type: string - previousLowBalanceEmailSentAt: + format: date-time + messageEncoded: + description: The message encoded as a hex string. type: string - format: date - title: Date String - required: - - counter - - updateTime - - txCount - - pendingChainInitialization - - pendingPublicKeyRevelation - - creationFailure - TestcoinAddress: - title: Testcoin Address - type: object - additionalProperties: {} - StellarAddress: - title: Stellar Address - type: object - properties: - memoId: + messageRaw: + description: The message as human readable text. type: string - rootAddress: + signatureShares: + type: array + items: + $ref: '#/components/schemas/PlatformSignatureShare' + state: + $ref: '#/components/schemas/PlatformTransactionRequestState' + txHash: + type: string + description: The signed hex of the message. + updatedDate: + description: The date when the message state was updated. type: string + format: date-time required: - - memoId - - rootAddress - StacksAddress: - title: Stacks Address + - messageRaw + - state + PlatformSignatureShare: type: object properties: - baseAddress: - type: string - memoId: + from: + allOf: + - $ref: '#/components/schemas/KeyShareSource' + description: The source of the signature share. + to: + allOf: + - $ref: '#/components/schemas/KeyShareSource' + description: The recipient of the signature share. + share: type: string + description: The signature share. required: - - baseAddress - - memoId - SolAddress: - title: Sol Address + - from + - to + - share + KeyShareSource: + type: string + enum: + - user + - backup + - bitgo + example: user + Transaction: type: object properties: - rootAddress: - type: string - minimumFunding: - type: number - pendingChainInitialization: - type: boolean - trustedTokens: + state: + $ref: '#/components/schemas/PlatformTransactionState' + 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: - allOf: - - type: object - properties: - state: - $ref: '#/components/schemas/TrustedTokenState' - - $ref: '#/components/schemas/Token' - nonceExpiresAt: - type: string - format: date - title: Date String - nonceTxRequestid: - type: string - type: + $ref: '#/components/schemas/PlatformSignatureShare' + 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/PlatformCommitmentShare' + 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: - - rootAddress - - minimumFunding - - pendingChainInitialization - - trustedTokens - Token: - title: Token + - state + - unsignedTx + PlatformCommitmentShare: type: object properties: - limit: - type: string - token: + from: + allOf: + - $ref: '#/components/schemas/KeyShareSource' + description: The source of the commitment share. + to: + allOf: + - $ref: '#/components/schemas/KeyShareSource' + description: The recipient of the commitment share. + share: type: string - TrustedTokenState: - title: TrustedTokenState + description: The commitment share. + type: + allOf: + - $ref: '#/components/schemas/CommitmentType' + - default: commitment + description: The type of the commitment share. + required: + - from + - to + - share + - type + CommitmentType: type: string enum: - - pending - - active - SilvergateUSDAddress: - title: Silvergate USD Address - type: object - properties: - bankAccountId: - type: string - bankAccount: - $ref: '#/components/schemas/BankAccountJson' - required: - - bankAccountId - BankAccountJson: - title: BankAccountJson + - commitment + example: commitment + TransactionRequestUnsignedTransaction: type: object properties: - accountNumber: + serializedTxHex: type: string - address1: + description: The unsigned transaction as a hex string. + signableHex: type: string - name: + 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 - owner: + description: A bip32 path. + feeInfo: type: object properties: - name: + feeString: type: string - address1: + fee: + type: number + required: + - fee + - feeString + coinSpecific: + description: Coin specific information. + type: object + parsedTx: + description: The parsed transaction information. + type: object + properties: + minerFee: type: string - address2: + spendAmount: type: string - address3: + spendAmounts: + type: array + items: + type: object + properties: + coinName: + type: string + amountString: + type: string + payGoFee: + type: string + outputs: + type: array + items: + type: object + properties: + address: + type: string + isPayGo: + type: boolean + value: + type: number + wallet: + type: string + walletV1: + type: string + baseAddress: + type: string + enterprise: + type: string + valueString: + type: string + data: + type: string + change: + type: boolean + coinName: + type: string + required: + - address + - valueString + inputs: + type: array + items: + type: object + properties: + derivationIndex: + type: number + value: + type: number + address: + type: string + valueString: + type: string + chain: + type: number + index: + type: number + required: + - valueString + - value + type: + type: string + memo: type: string required: - - name - - address1 - idHash: - type: string - verificationState: - type: string - address2: + - minerFee + - outputs + - inputs + required: + - serializedTxHex + - signableHex + PlatformTransactionRequestBase: + type: object + properties: + txRequestId: type: string - address3: + 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 - id: - type: string - routingNumber: + 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/PlatformTransactionRequestState' + 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 - shortCountryCode: + 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 - swiftCode: + description: The Id of the User that originally created the TxRequest document (initiated the TxRequest). + updatedBy: type: string - type: + description: The Id of the User that last updated the TxRequest document. This is an alias for the userId field. + intent: + $ref: '#/components/schemas/TransactionRequestIntent' + intents: + type: array + items: + $ref: '#/components/schemas/TransactionRequestIntent' + 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: - - accountNumber - - address1 - - name - - owner - - idHash - - verificationState - OffchainAddressSubdocument: - title: Offchain Address - type: object - additionalProperties: {} - HederaAddress: - title: Hedera Address + - txRequestId + - version + - latest + - walletId + - state + - date + - createdDate + - userId + - initiatedBy + - updatedBy + - intents + TransactionRequestIntent: + 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' + WithdrawIntent2: + title: Generic claim unstake + allOf: + - $ref: '#/components/schemas/BaseStakeIntent2' + - type: object + properties: + intentType: + type: string + enum: + - claim + required: + - intentType + BaseStakeIntent2: + allOf: + - $ref: '#/components/schemas/BaseIntent2' + - type: object + properties: + stakingRequestId: + type: string + required: + - stakingRequestId + BaseIntent2: type: object properties: - baseAddress: + intentType: type: string - memoId: + 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. + nonce: + type: string + description: The 'nonce' of a transaction (optional) + memo: type: string + description: | + A 'memo' is an additional address feature necessary for identifying a transaction recipient beyond wallet address. required: - - baseAddress - - memoId - FiatAddress: - title: Fiat Address + - intentType + UnstakeIntent2: + title: Generic Unstake + allOf: + - $ref: '#/components/schemas/BaseStakeIntent2' + - type: object + properties: + intentType: + type: string + enum: + - unstake + required: + - intentType + Amount2: type: object properties: - bankAccountId: + value: type: string - faBankAccountId: + description: The value should be a valid number. + example: '100' + symbol: type: string - bankAccount: - $ref: '#/components/schemas/BankAccountJson' - Ethereum2Address: - title: Ethereum2 Address + description: The coin or token the value is referring to. + example: usdc + required: + - value + - symbol + TxAddress: type: object properties: - feeAddress: + address: type: string - EthereumAddress: - title: Ethereum Address + options: + type: object + required: + - address + BaseIntent1: + title: Intent type: object properties: - creationFailure: - type: array - items: - type: string - forwarderVersion: - type: number + intentType: + $ref: '#/components/schemas/IntentType1' + sequenceId: + $ref: '#/components/schemas/optionalString' + comment: + $ref: '#/components/schemas/optionalString' nonce: - type: number - feeAddress: - type: string - pendingChainInitialization: - type: boolean - pendingDeployment: - type: boolean - txCount: - type: number - updateTime: - type: string - format: date - title: Date String - hopTxid: - type: 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 + oneOf: + - type: string + - type: number required: - - creationFailure - - forwarderVersion - - nonce - - feeAddress - - pendingChainInitialization - - pendingDeployment - - txCount - - updateTime - EosAddress: - title: Eos Address + - intentType + Amount1: + title: Amount type: object properties: - rootAddress: + value: type: string - memoId: + symbol: type: string required: - - rootAddress - - memoId - DotAddress: - title: Dot Address - type: object - properties: - rootAddress: - type: string - nonceTracker: - type: object + - value + - symbol + StakeIntent2: + allOf: + - $ref: '#/components/schemas/BaseStakeIntent2' + - 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: + intentType: + type: string + enum: + - stake + required: + - intentType + ETHSignMessageIntent: + title: Eth sign message + allOf: + - $ref: '#/components/schemas/BaseIntent2' + - type: object + properties: + intentType: + type: string + enum: + - signMessage + required: + - intentType + PaymentIntent1: + title: PaymentIntent + allOf: + - type: object + properties: + intent: + type: string + enum: + - payment + recipients: type: array items: type: object properties: - nonce: - type: number - isNonceLocked: - type: boolean - nonceLockExpireTime: - type: string - format: date - title: Date String + address: + $ref: '#/components/schemas/Address1' + amount: + $ref: '#/components/schemas/Amount1' + data: + $ref: '#/components/schemas/optionalString' required: - - nonce - - isNonceLocked + - address + - amount required: - - lastReservedNonce - - lastExecutedNonce - - detectedMissingNonces - - detecMissingNoncesData - required: - - rootAddress - - nonceTracker - CasperAddress: - title: Casper Address + - intent + - recipients + - $ref: '#/components/schemas/BaseIntent1' + Address1: + title: Address type: object properties: - accountHash: - type: string - rootAddress: - type: string - transferId: - type: string - required: - - accountHash - - rootAddress - - transferId - BitcoinCashAddress: - title: Bitcoin Cash Address + address: + $ref: '#/components/schemas/optionalString' + option: + $ref: '#/components/schemas/optionalUnknownObject' + DOTClaimIntent: + title: Dot Claim Unstake + allOf: + - $ref: '#/components/schemas/DOTBuildOptions' + - $ref: '#/components/schemas/WithdrawIntent2' + DOTBuildOptions: allOf: + - $ref: '#/components/schemas/AccountBaseBuildOptions2' - type: object properties: - format: - $ref: '#/components/schemas/SupportedAddressFormat' - - $ref: '#/components/schemas/UtxoAddress' - UtxoAddress: - title: Utxo Address - type: object - properties: - redeemScript: - type: string - witnessScript: - type: string - SupportedAddressFormat: - title: SupportedAddressFormat - type: string - enum: - - cashaddr - - base58 - AvaxPAddress: - title: AvaxP Address - type: object - properties: - threshold: - type: number - addresses: - type: array - items: - type: string - required: - - threshold - - addresses - AtomAddress: - title: Atom Address + fee: + $ref: '#/components/schemas/DOTFeeOptions' + DOTFeeOptions: type: object properties: - rootAddress: + amount: type: string - memoId: + unit: type: string - required: - - rootAddress - - memoId - AlgorandAddress: - title: Algorand Address - type: object - properties: - rootAddress: + enum: + - baseUnit + - cpu + - ram + formula: 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: + enum: + - fixed + - feeRate + - perKB + - custom + type: type: string + enum: + - base + - max + - tip required: - - rootAddress - TrimmedBalance: - title: TrimmedBalance + - amount + AccountBaseBuildOptions2: type: object properties: - balanceString: - type: string - description: String representation of the balance. Guaranteed to not lose precision. - example: '500000' - confirmedBalanceString: - 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: - 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: - type: string - reservedBalanceString: + nonce: 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 - AddressChain: - title: AddressChain - type: number - enum: - - 0 - - 1 - - 10 - - 11 - - 20 - - 21 - - 30 - - 31 - - 40 - - 41 - WalletFlag: - title: WalletFlag - type: string - enum: - - isStaking - - lightning - - musigKp - - trackingInscriptions - - lockedAmount - - rbf - - coldWalletStaking - - tokenizationToken - - oneClickStaking - - solOfcStaking - - suiOfcStaking - WalletSubType: - title: WalletSubType - type: string - enum: - - distributedCustody - - pairedCustodial - - custodialHot - - custodialCold - WalletType: - title: WalletType + CosmosContractCallIntent: + title: Cosmos Contract Call + allOf: + - $ref: '#/components/schemas/BaseIntent2' + - type: object + properties: + intentType: + type: string + enum: + - contractCall + contract: + type: string + description: The address of the contract to call. + msgHex: + type: string + description: The binary message data to send to the contract in hex format. + required: + - intentType + - contract + - msgHex + WalletTypePublic: type: string + 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 enum: - - backing - cold - custodial - custodialPaired - hot - trading - MultiSigType: - title: MultiSigType - type: string - enum: - - onchain - - tss - - blsdkg - Condition: - title: Condition - oneOf: + - distributedCustody + PlatformTransactionRequestLite: + title: Lite + allOf: + - $ref: '#/components/schemas/PlatformTransactionRequestBase' - 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: - 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 + 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/PlatformSignatureShare' + 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/PlatformCommitmentShare' + txHashes: + type: array + items: + type: string + description: The hashes of all transactions from the TxRequest that have been signed and are pending broadcast. required: - - entries - AddressListCondition: - title: AddressListCondition + - txRequestId + - version + - latest + - walletId + - state + - date + - userId + - intent + PendingApprovalTransactionRequest: + title: Transaction request (lite) type: object properties: - addresses: - type: array - items: - type: string - metaData: + transactionRequest: type: object - additionalProperties: - type: object - additionalProperties: {} - required: - - addresses - - metaData - WalletSubdocument: - title: WalletSubdocument + properties: + buildParams: + type: object + coinSpecific: + type: object + comment: + type: string + fee: + $ref: '#/components/schemas/IntegerOrString' + isUnsigned: + type: boolean + recipients: + type: array + items: + type: object + properties: + address: + $ref: '#/components/schemas/AddressString3' + amount: + $ref: '#/components/schemas/IntegerOrIntegerString' + data: + type: string + requestedAmount: + $ref: '#/components/schemas/IntegerOrIntegerString' + sourceWallet: + $ref: '#/components/schemas/Id' + triggeredPolicy: + $ref: '#/components/schemas/Id' + validTransaction: + type: string + validTransactionHash: + type: string + type: + type: string + enum: + - transactionRequest + IntegerOrIntegerString: 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: string + pattern: ^-?\d+$ + example: '2000000' + - type: integer + IntegerOrString: + oneOf: + - type: string + example: '2000000' + - type: integer + ExpressResolvePendingApprovalRequest: type: object properties: - keys: - type: array - items: - type: string - uri: + state: type: string - apiEndpoint: + description: New state for the pending approval + enum: + - approved + - rejected + walletPassphrase: type: string - nodeId: + description: Passphrase to decrypt the user key on the wallet + xprv: type: string - updateSignerIP: + description: Private key in string form, if walletPassphrase is not available + otp: + $ref: '#/components/schemas/Otp' + Otp: + type: string + example: '123456' + description: Second factor authentication token + PlatformWallet: + type: object + properties: + admin: + type: object + properties: + policy: + $ref: '#/components/schemas/PlatformPolicy' + allowBackupKeySigning: type: boolean - signerIP: - type: string - updateSignerTlsCert: + 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 - signerTlsCert: - type: string - updateSignerMacaroon: + disableTransactionNotifications: type: boolean - encryptedSignerMacaroon: - type: string - required: - - keys - SolWallet: - title: Sol Wallet - type: object - properties: - pendingChainInitialization: + 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 - minimumFunding: + 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: + 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 - trustedTokens: + 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: - 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 + $ref: '#/components/schemas/WalletUser' + customChangeKeySignatures: + $ref: '#/components/schemas/CustomChangeKeySignatures' + multisigType: + $ref: '#/components/schemas/WalletMultisigType' + multisigTypeVersion: + $ref: '#/components/schemas/PlatformMultisigTypeVersion' required: - - pendingChainInitialization - - minimumFunding - - trustedTokens - TezosWallet: - title: Tezos Wallet + - approvalsRequired + - coin + - deleted + - disableTransactionNotifications + - id + - label + PlatformMultisigTypeVersion: + type: string + enum: + - MPCv2 + WalletMultisigType: + type: string + enum: + - onchain + - tss + - blsdkg + CustomChangeKeySignatures: type: object properties: - 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: + user: type: string - lowPriorityFeeAddress: + backup: type: string - delegate: + bitgo: type: string - required: - - pendingChainInitialization - - creationFailure - XRPWallet: - title: XRP Wallet + 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: - rootAddress: - type: string - pendingChainInitialization: - type: boolean - creationFailure: - type: array - items: - type: string - trustedTokens: + user: + $ref: '#/components/schemas/Id' + permissions: type: array items: - allOf: - - type: object - properties: - state: - $ref: '#/components/schemas/TrustedTokenState' - - $ref: '#/components/schemas/Token' - required: - - rootAddress - - pendingChainInitialization - - creationFailure - StellarWallet: - title: Stellar Wallet + $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' + Address2: type: object properties: - rootAddress: + 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: type: string - pendingChainInitialization: - type: boolean - creationFailure: - type: array - items: - type: string - lastMemoId: + 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' + AddressType: + type: string + example: p2sh + enum: + - p2sh + - p2shP2wsh + - p2wsh + - p2tr + - p2trMusig2 + AddressBalance: + type: object + properties: + updated: type: string - stellarUsername: + 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: type: string - homeDomain: + 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 - stellarAddress: + 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 - 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 + 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: + 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 - rootPub: + description: Root address of the wallet + example: GCTTCPH4IIDK7P72FFAEJ3ZFN6WDHJH6GGMRPHPM56ZWGIQ7B3XTIJAM + stellarUsername: type: string - pendingChainInitialization: - type: boolean - creationFailure: - type: array - items: - type: string - minimumFunding: - type: number - required: - - rootAddress - - rootPub - - pendingChainInitialization - - creationFailure - - minimumFunding - TonWallet: - title: Ton Wallet + 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 - memoId: - type: string - lastMemoId: - type: string - seqno: - type: number + description: Wallet address to send or receive assets. + example: cosmos1uvrgkp82dmeks368d7g2ejzm3axhapzveh5uek lastChainIndex: - type: object - additionalProperties: - type: number - walletVersion: 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 + description: If true, this wallet cannot sign transactions or messages as the enterprise has not finished MPC setup. + example: false required: - rootAddress - - memoId - lastMemoId - - seqno - TestcoinWallet: - title: Testcoin Wallet + TxId: + type: string + description: The on-chain transaction id + example: b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26 + WalletBuildDefaults: type: object properties: - lastChainIndex: + 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 - StacksWallet: - title: Stacks Wallet - type: object - properties: - baseAddress: - type: string - feeAddress: + 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 - lastNonce: - type: number - addressCount: - type: number - SilvergateUSDWallet: - title: Silvergate USD Wallet - type: object - properties: - backingBankAccountId: {} - backingSENBankAccountId: {} - lastUsedNonce: - type: number - required: - - backingBankAccountId - - backingSENBankAccountId - - lastUsedNonce - 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 - NearWallet: - title: Near Wallet + 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: + - 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'. + PlatformPolicy: type: object properties: - nonceAddress: + id: + $ref: '#/components/schemas/Id' + date: type: string - lastNonce: - type: number - addressCount: - type: number - pendingChainInitialization: - type: boolean - rootAddrss: + format: date-time + label: type: string - lastChainIndex: - type: object - additionalProperties: - type: number - required: - - nonceAddress - - lastNonce - - addressCount - - pendingChainInitialization - HederaWallet: - title: Hedera Wallet - type: object - properties: - addressCount: - type: number - pendingChainInitialization: + latest: type: boolean - creationFailure: - type: array - items: - type: string - trustedTokens: + rules: 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 - FiatWallet: - title: Fiat Wallet - type: object - properties: - backingBankAccountId: {} - backingSENBankAccountId: {} - lastUsedNonce: - type: number + $ref: '#/components/schemas/PlatformPolicyRule' + version: + type: integer required: - - backingBankAccountId - - backingSENBankAccountId - - lastUsedNonce - Ethereum2Wallet: - title: Ethereum2 Wallet + - id + - latest + - rules + - version + PlatformPolicyRule: type: object properties: - pendingChainInitialization: - type: boolean - baseAddress: + id: type: string - feeAddress: + lockDate: type: string + description: The time at which this rule becomes immutable + format: date-time + mutabilityConstraint: + $ref: '#/components/schemas/PlatformMutabilityConstraint' + coin: + $ref: '#/components/schemas/Coin' + type: + $ref: '#/components/schemas/PolicyRuleTriggers' + condition: + $ref: '#/components/schemas/PolicyRuleConditions' + action: + $ref: '#/components/schemas/PolicyRuleActions' required: - - pendingChainInitialization - EthereumWallet: - title: Ethereum Wallet + - id + - lockDate + - type + - action + PolicyRuleConditions: + 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 + ListRuleEntryType: + type: string + enum: + - address + - walletId + - enterpriseId + description: the kind of resource a list rule entry refers to + PlatformMutabilityConstraint: + 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 + UpdateWallet: 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: - type: boolean - flushForwardersManually: - type: boolean - enableMMI: - type: boolean - enableNFT: - type: boolean - deployedInBlock: - oneOf: - - type: number - - type: boolean - deployTxHash: - type: string - lastChainIndex: {} - baseAddress: - type: string - feeAddress: - type: string - nonce: - type: string - token: - type: string - pendingEcdsaTssInitialization: + approvalsRequired: + $ref: '#/components/schemas/ApprovalsRequired' + buildDefaults: + $ref: '#/components/schemas/WalletBuildDefaults' + disableTransactionNotifications: type: boolean - safeModeActivated: - type: string - lowPriorityFeeAddress: - type: string - salt: - type: string - required: - - pendingChainInitialization - - creationFailure - - gasPriceTier - - tokenFlushThresholds - - walletVersion - - pendingDeployment - - deployForwardersManually - - flushForwardersManually - - enableMMI - - enableNFT - EosWallet: - title: Eos Wallet + label: + $ref: '#/components/schemas/WalletLabel' + customChangeKeySignatures: + $ref: '#/components/schemas/CustomChangeKeySignatures' + coinSpecific: + $ref: '#/components/schemas/WalletUpdateCoinSpecific' + WalletUpdateCoinSpecific: type: object properties: - rootAddress: - type: string - pendingChainInitialization: - type: boolean - creationFailure: - type: array - items: - type: string - lastMemoId: - type: string - required: - - rootAddress - - pendingChainInitialization - - creationFailure - - lastMemoId - DotWallet: - title: Dot Wallet + eth: + $ref: '#/components/schemas/WalletUpdateCoinSpecificEth' + teth: + $ref: '#/components/schemas/WalletUpdateCoinSpecificEth' + WalletUpdateCoinSpecificEth: type: object properties: - rootAddress: - type: string - pendingChainInitialization: + deployForwardersManually: type: boolean - nonceAddress: - type: string - required: - - rootAddress - - pendingChainInitialization - CasperWallet: - title: Casper Wallet + flushForwardersManually: + type: boolean + PlatformUpdateWalletShareResponse: type: object properties: - accountHash: - type: string - creationFailure: - type: array - items: - type: string - lastTransferId: - type: string - pendingChainInitialization: + state: + allOf: + - $ref: '#/components/schemas/PlatformWalletShareState' + description: New state of the wallet share after update + changed: type: boolean - rootAddress: - type: string - required: - - accountHash - - creationFailure - - lastTransferId - - pendingChainInitialization - - rootAddress - UtxoWallet: - title: Utxo Wallet + PlatformWalletShareState: + type: string + example: active + enum: + - pendingapproval + - active + - accepted + - canceled + - rejected + WalletShare: type: object properties: - customChangeWalletId: + 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 - customChangeAddressType: + 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 - sendQueueInferredScriptTypes: - type: array - items: - type: string - AvaxPWallet: - title: AvaxP Wallet + description: User readable message to display to the share recipient + state: + $ref: '#/components/schemas/PlatformWalletShareState' + 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 + PlatformEnterprise: type: object properties: - unlockAddresses: + accountType: + $ref: '#/components/schemas/EnterpriseAccountType' + additionalEnterpriseInfo: + $ref: '#/components/schemas/PlatformAdditionalEnterpriseInfo' + admin: + type: object + properties: + policy: + $ref: '#/components/schemas/PlatformPolicy' + approvedVideoIdUsers: type: array items: - type: string - threshold: - type: number - required: - - unlockAddresses - - threshold - AtomWallet: - title: Atom Wallet - type: object - properties: - rootAddress: - type: string - lastMemoId: + $ref: '#/components/schemas/Id' + description: IDs of users on the enterprise that are approved for custodial video ID + approvalsRequired: + type: integer + description: How many Enterprise Admins are required for action to fire + example: 1 + bitgoEthKey: type: string - lastChainIndex: {} - pendingEcdsaTssInitialization: + description: The public portion of the ethererum key generated for the enterprise fee address + bitgoOrg: + $ref: '#/components/schemas/PlatformBitgoOrg' + 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 + canCreateCustodialWallets: + type: boolean + description: whether the enterprise has the license to create custodial wallets + canCreateHotWallet: + type: boolean + description: whether the enterprise has the license to create hot wallets + contract: + $ref: '#/components/schemas/PlatformEnterpriseContract' + emergencyPhone: + $ref: '#/components/schemas/EmergencyPhone' + ethFeeAddress: + type: string + description: The eth fee address used to pay for network transaction fees of this enterprise + freeze: + $ref: '#/components/schemas/PlatformFreeze' + id: + $ref: '#/components/schemas/Id' + mutablePolicyWindow: + type: integer + description: Time in seconds after which policies on this Enterprise cannot be updated + example: 172800 + name: + type: string + example: Small Company + pricingTypes: + $ref: '#/components/schemas/EnterprisePricingTypes' + activePricingType: + $ref: '#/components/schemas/EnterpriseActivePricingType' + kits: + $ref: '#/components/schemas/EnterpriseKits' + activeKits: + $ref: '#/components/schemas/EnterpriseActiveKits' + primaryContact: + allOf: + - $ref: '#/components/schemas/Id' + description: The Id of the User who is the primary contact + preferredUi: + allOf: + - $ref: '#/components/schemas/EnterpriseAvailableUI' + description: The UI that this enterprise prefers to use + totalWalletsCount: + type: integer + description: The total number of wallets in the enterprise + example: 1 + usersViewAllWallets: + $ref: '#/components/schemas/ViewAllWallets' + videoIdWaived: + $ref: '#/components/schemas/VideoIdWaived' required: - - rootAddress - - lastMemoId - AlgorandWallet: - title: Algorand Wallet + - id + VideoIdWaived: + example: true + description: Whether the customer has waived the need for Video ID on low risk withdrawals. + type: boolean + ViewAllWallets: + example: true + description: All users on the enterprise can view all enterprise wallets, even if they are not viewers on the wallet itself + type: boolean + EnterpriseAvailableUI: + type: string + enum: + - bg23 + EnterpriseActiveKits: + type: array + items: + allOf: + - $ref: '#/components/schemas/AuditableItem' + - $ref: '#/components/schemas/EnterpriseKitName' + EnterpriseKitName: type: object properties: - addressVersion: - type: number - rootAddress: + name: type: string - trustedTokens: - type: array - items: - allOf: - - type: object - properties: - state: - $ref: '#/components/schemas/TrustedTokenState' - - $ref: '#/components/schemas/Token' - required: - - addressVersion - - rootAddress - AdaWallet: - title: Ada Wallet + enum: + - default + - wallet + - custody + - liquidity + - cryptoCompare + AuditableItem: type: object properties: - rootAddress: + id: type: string - addressCount: + description: Unique identifier for the date range. + startDate: type: string - pendingChainInitialization: - type: boolean - rewardAddress: + 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 - lastChainIndex: - type: object - additionalProperties: - type: number - required: - - 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: - enterprises: - type: array - items: - oneOf: - - $ref: '#/components/schemas/Enterprise' - - $ref: '#/components/schemas/EnterpriseStub' - required: - - enterprises - EnterpriseStub: - title: Enterprise Stub + description: An optional note describing the reason the auditable item was added/created. + endDate: + type: 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. + EnterpriseKits: + type: array + items: + type: object + properties: + name: + $ref: '#/components/schemas/EnterpriseKitName' + datesActive: + type: array + items: + $ref: '#/components/schemas/AuditableItem' + EnterpriseActivePricingType: + allOf: + - $ref: '#/components/schemas/AuditableItem' + - $ref: '#/components/schemas/EnterprisePricingType' + EnterprisePricingType: type: object properties: - id: - $ref: '#/components/schemas/EnterpriseIdString' name: type: string - example: Small Company - minLength: 1 - pricingPlan: + enum: + - starter + - growth + EnterprisePricingTypes: + type: array + items: + type: object + properties: + name: + $ref: '#/components/schemas/EnterprisePricingType' + datesActive: + type: array + items: + $ref: '#/components/schemas/AuditableItem' + PlatformFreeze: + type: object + properties: + time: type: string - ethFeeAddress: + format: date-time + description: When the freeze started + expires: type: string - description: The eth fee address used to pay for network transaction fees of this enterprise - required: - - id - - name - EnterpriseIdString: - title: EnterpriseIdString + format: date-time + description: When the freeze will end + EmergencyPhone: type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - OAuthSetting: - title: OAuthSetting + description: Phone number for emergencies + example: '+11234567890' + PlatformEnterpriseContract: type: object properties: - clientId: - type: string - clientSecret: + startDate: type: string - tenantId: + description: The contract start date for an enterprise + endDate: type: string - oauthProvider: - $ref: '#/components/schemas/OAuthProvider' - required: - - clientId - - clientSecret - - tenantId - - oauthProvider - 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 + description: The contract end date for an enterprise + PlatformBitgoOrg: type: string + description: BitGo Organization related to this entity 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 + - 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 + - BitGo Custody MENA FZE + PlatformAdditionalEnterpriseInfo: type: object properties: - migratedToNewPolicyService: - nullable: true - type: boolean - description: Whether the enterprise has been migrated to the new policy service - policiesLocked: - type: boolean - umsMappingComplete: - nullable: true - type: boolean - required: - - migratedToNewPolicyService - - policiesLocked - - umsMappingComplete - FlattenedPricingType: - title: FlattenedPricingType - allOf: - - type: object - properties: - name: - $ref: '#/components/schemas/PricingTypeName' - required: - - name - - $ref: '#/components/schemas/ActiveDateRange' - ActiveDateRange: - title: ActiveDateRange + contact: + $ref: '#/components/schemas/PlatformGeographicAddress' + PlatformGeographicAddress: 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: + name: type: string - description: An optional note describing the reason the auditable item was added/created. - id: + description: Legal name of the enterprise, not neccessarily the enterprise name + street: + type: string + description: Address line + street2: 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: + description: Optional 2nd address line + suite: type: string - description: An optional note describing the reason the auditable item was ended. - 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 + description: Optional suite number + city: + type: string + description: City name + state: + type: string + description: State or region + postalCode: + type: string + description: Postcal code + country: + type: string + description: ISO 3166-1 Alpha-3 country code + example: + name: Jane Doe + street: '1' + street2: Wall Street + suite: '3' + city: New York + state: NY + postalCode: '10005' + country: USA + EnterpriseAccountType: type: string + description: Indicates which type of KYC process the enterprise has to complete enum: - individual - entity - OnboardingAgreement: - title: OnboardingAgreement + V1PendingApproval: 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: + id: + $ref: '#/components/schemas/Id' + enterprise: + allOf: + - $ref: '#/components/schemas/Id' + description: The Id of the associated enterprise + walletId: type: string - date: + 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 - title: ISO Date String - ip: - 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 - 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 + info: + type: object properties: - name: + type: type: string enum: - - InvalidOrganizationId - required: - - name - - $ref: '#/components/schemas/InvalidId' - EnterpriseUserRole: - title: EnterpriseUserRole + - 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: + type: array + items: + $ref: '#/components/schemas/Id' + description: an array of all the Users on the Wallet who need to see this Pending Approval + approvalsRequired: + type: number + minimum: 1 + resolvers: + type: array + items: + type: object + properties: + user: + type: string + date: + type: string + resolutionType: + type: string + enum: + - pending + - approved + - rejected + signatures: + type: array + items: + type: string + videoApprover: + type: string + videoLink: + type: string + videoException: + type: string + EnterprisePermission: type: string enum: - admin - - member - GetTransactionRequestsResponse: - title: GetTransactionRequestsResponse + UpdateEnterprise: type: object properties: - 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: - - txRequests - AccessTokenResponse: - title: AccessTokenResponse + legalIdentifiers: + $ref: '#/components/schemas/PlatformLegalIdentifiers' + approvalsRequired: + type: integer + minimum: 1 + description: How many Enterprise Admins are required for action to fire + distributedCustody: + $ref: '#/components/schemas/DistributedCustodyUpdateEnterprise' + usersViewAllWallets: + type: boolean + description: Allow users to view all wallets + DistributedCustodyUpdateEnterprise: type: object + description: Parameters associated with distributed custody enterprises. If you want to remove 'signingBitgoOrg', set it to null. properties: - id: - type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ - isExtensible: - type: boolean - bitgoAdminPermissions: - 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: - type: string - ip: - 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: string - origin: + signingBitgoOrg: type: string - description: BitGo environment that issued this token - example: test.bitgo.com - token: + description: BitGo Organization related to this entity. Allowed values are BitGo Inc, BitGo Trust, BitGo New York, BitGo Germany, BitGo Switzerland, Frankfurt DE Trust, BitGo Sister Trust 1, BitGo Korea, BitGo Singapore, null + nullable: true + PlatformLegalIdentifiers: + type: object + properties: + legalPersonName: 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: + description: Legal name of the Enterprise + required: + - legalPersonName + example: + legalPersonName: Pineapple Capital Inc + PlatformInvalidEnterpriseId: + title: Invalid enterprise ID + allOf: + - $ref: '#/components/schemas/PlatformInvalidId' + - properties: + name: + type: string + description: Error code + enum: + - InvalidEnterpriseId + required: + - name + DeleteEnterpriseUser: + type: object + properties: + username: type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ + format: email required: - - id - - isExtensible - AllErc20TokenLimit: - title: AllErc20TokenLimit + - username + CreateTransactionRequest: 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: + idempotencyKey: type: string - description: The transaction value limit for all ERC20 tokens - txValueLimitInSmallUnits: + description: The combination of the idempotencyKey, version and walletId has to be unique. If no idempotencyKey is specified then it remains undefined for the txRequest. Note, version is an internal field that is auto incremented on every update to a txRequest. + intent: + $ref: '#/components/schemas/TransactionRequestIntent' + videoApprovers: + allOf: + - $ref: '#/components/schemas/IdArray' + description: (Custodial) Specify who should perform the Video ID with Trust if one should be required. + apiVersion: type: string - description: The transaction value limit in small units for all ERC20 tokens - maxLimit: + description: Full or Light to differentiate between the different transaction request flows. + enum: + - lite + - full + default: full + preview: type: boolean - description: Indicates if the maximum limit is enabled + description: | + When set to true, the transaction request is returned without being stored in the DB. + default: false required: - - enabled - - txCount - - txValue - OAuthAccessToken: - title: OAuthAccessToken + - intent + WalletId: + type: string + example: 59cd72485007a239fb00282ed480da1f + Session: type: object properties: - bitgoAdminPermissions: - type: array - items: - type: string - description: The BitGo admin permissions associated with the access token - client: - type: string - 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 - 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 - 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 + $ref: '#/components/schemas/Id' ip: - type: string + allOf: + - $ref: '#/components/schemas/Ip' 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 - description: The label associated with the access token - organizations: - type: array - items: - type: string - description: The organizations associated with the access token + format: ipv4 + description: IP addresses of clients that are allowed to use this token origin: type: string - description: BitGo environment that issued this token example: test.bitgo.com - token: - type: string - description: The token value + description: BitGo environment that issued this token 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 + allOf: + - $ref: '#/components/schemas/Scope' + 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 + - $ref: '#/components/schemas/PlatformUnlock' + description: The Unlock object, returned if this session is currently unlocked. user: - type: string - example: 59cd72485007a239fb00282ed480da1f - pattern: ^[0-9a-f]{32}$ + $ref: '#/components/schemas/Id' required: + - created + - expires - id - - isExtensible - PerCoinLimit: - title: PerCoinLimit + - origin + - scope + - user + PlatformUnlock: type: object properties: + time: + type: string + format: date-time + expires: + type: string + format: date-time txCount: - type: number - description: The transaction count limit for the coin + type: integer txValue: - type: number - description: The transaction value limit for the coin + type: integer txValueLimit: type: number - description: The maximum transaction value limit for the coin + spendingLimits: + $ref: '#/components/schemas/SpendingLimits' + SpendingLimits: + type: object + additionalProperties: + type: object + properties: + txCount: + type: integer + txValue: + type: integer + txValueLimit: + type: number + example: + btc: + txCount: 1 + txValue: 0 + txValueLimit: 100000000 + eth: + txCount: 1 + txValue: 0 + txValueLimit: 50000000000 + Scope: + type: array + items: + type: string + example: + - crypto_compare + - user_manage + - openid + - profile + - wallet_create + - wallet_manage_all + - wallet_approve_all + - wallet_spend_all + - wallet_edit_all + - wallet_view_all + Ip: + type: string + format: ipv4 + example: 127.0.0.1 V1ErrorResponse: title: V1ErrorResponse type: object @@ -37244,45 +38094,6 @@ components: 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 - coin: - 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' AddressString3: title: Address type: string @@ -37996,6 +38807,30 @@ components: 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'. + CommitmentShare: + type: object + properties: + from: + allOf: + - $ref: '#/components/schemas/KeyShareSource' + description: The source of the commitment share. + to: + allOf: + - $ref: '#/components/schemas/KeyShareSource' + description: The recipient of the commitment share. + share: + type: string + description: The commitment share. + type: + allOf: + - $ref: '#/components/schemas/CommitmentType' + - default: commitment + description: The type of the commitment share. + required: + - from + - to + - share + - type ConsolidateAccountBuildRequest: type: object properties: @@ -38420,6 +39255,10 @@ components: - owner - $ref: '#/components/schemas/PaymentIntent1' - $ref: '#/components/schemas/DotAccountBaseBuildOptions' + Email: + type: string + format: email + example: user@example.com EnterpriseUser: type: object properties: @@ -39505,7 +40344,7 @@ components: items: $ref: '#/components/schemas/Id' receiveAddress: - $ref: '#/components/schemas/Address21' + $ref: '#/components/schemas/Address2' balance: type: integer description: Wallet balance as number @@ -39981,7 +40820,7 @@ components: - InvalidUserId required: - name - InvalidWalletId1: + InvalidWalletId: title: Invalid wallet id allOf: - $ref: '#/components/schemas/InvalidId1' @@ -40362,7 +41201,7 @@ components: - $ref: '#/components/schemas/PendingApprovalUserChangeRequest' - $ref: '#/components/schemas/PendingApprovalPolicyRuleRequest' - $ref: '#/components/schemas/PendingApprovalUpdateApprovalsRequiredRequest' - - $ref: '#/components/schemas/PendingApprovalEnterpriseModificationResponse' + - $ref: '#/components/schemas/PendingApprovalEnterpriseModificationResponse1' - $ref: '#/components/schemas/PendingApprovalEnterpriseInviteRequest' state: $ref: '#/components/schemas/PendingApprovalState1' @@ -40423,6 +41262,41 @@ components: type: array items: $ref: '#/components/schemas/PendingApprovalAddressLabel' + PendingApprovalEnterpriseModificationResponse1: + title: Enterprise modification request + type: object + properties: + policyRuleRequest: + type: object + properties: + action: + type: string + updateEnterpriseRequest: + type: object + properties: + type: + type: string + enum: + - updateEnterpriseRequest + action: + type: string + enum: + - add + - remove + permission: + type: string + enum: + - admin + userId: + type: string + email: + allOf: + - $ref: '#/components/schemas/Email' + description: E-Mail address of newly added users + type: + type: string + enum: + - policyRuleRequest PendingApprovalState1: anyOf: - $ref: '#/components/schemas/PendingApprovalStatePending1' @@ -40466,7 +41340,7 @@ components: walletRebalanceEventId: $ref: '#/components/schemas/Id' txRequest: - $ref: '#/components/schemas/TransactionRequest1' + $ref: '#/components/schemas/TransactionRequest' required: - txRequestId type: @@ -40496,7 +41370,7 @@ components: rules: type: array items: - $ref: '#/components/schemas/PolicyRule1' + $ref: '#/components/schemas/PolicyRule' version: type: integer required: @@ -40504,7 +41378,7 @@ components: - latest - rules - version - PolicyRule1: + PolicyRule: type: object properties: id: @@ -40520,7 +41394,7 @@ components: type: $ref: '#/components/schemas/PolicyRuleTriggers' condition: - $ref: '#/components/schemas/PolicyRuleConditions1' + $ref: '#/components/schemas/PolicyRuleConditions' action: $ref: '#/components/schemas/PolicyRuleActions' required: @@ -40528,54 +41402,6 @@ components: - 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 @@ -41228,6 +42054,24 @@ components: - ZA - ZM - ZW + SignatureShare: + type: object + properties: + from: + allOf: + - $ref: '#/components/schemas/KeyShareSource' + description: The source of the signature share. + to: + allOf: + - $ref: '#/components/schemas/KeyShareSource' + description: The recipient of the signature share. + share: + type: string + description: The signature share. + required: + - from + - to + - share SimulateWalletWebhookRequestBody: oneOf: - title: Transfer @@ -41388,7 +42232,7 @@ components: - $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: + TransactionRequest: anyOf: - $ref: '#/components/schemas/TransactionRequestLite1' - $ref: '#/components/schemas/TransactionRequestFull1' @@ -41443,11 +42287,11 @@ components: 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' + $ref: '#/components/schemas/TransactionRequestIntent' intents: type: array items: - $ref: '#/components/schemas/TransactionRequestIntent1' + $ref: '#/components/schemas/TransactionRequestIntent' pendingApprovalId: type: string description: The id of the Pending Approval that was created for the TxRequest if one was required. @@ -41492,31 +42336,6 @@ components: - 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: @@ -42154,7 +42973,13 @@ components: items: $ref: '#/components/schemas/Unspent' walletAddressDetails: - $ref: '#/components/schemas/Address21' + $ref: '#/components/schemas/Address2' + VerifiedKycState: + type: string + enum: + - approved + - pending + - rejected VideoApprovers: type: array items: @@ -42219,7 +43044,7 @@ components: nodeId: $ref: '#/components/schemas/Id' receiveAddress: - $ref: '#/components/schemas/Address21' + $ref: '#/components/schemas/Address2' recoverable: type: boolean tags: @@ -44016,7 +44841,7 @@ components: 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' + $ref: '#/components/schemas/PolicyRule1' CreatePolicyRuleRequest: type: object description: Create or Update policy rule Request. @@ -44710,7 +45535,7 @@ components: nextBatchPrevId: type: string description: The value to pass as the prevId to the API for getting the next page. - PolicyRule2: + PolicyRule1: type: object description: | A Policy Rule, the combination of a Scope, a Touchpoint, Conditions, and Actions. It allows you to define what @@ -44878,7 +45703,7 @@ components: description: | A list of Policy Rules matching the search criteria. items: - $ref: '#/components/schemas/PolicyRule2' + $ref: '#/components/schemas/PolicyRule1' TransferAmountConditionParameters: type: object description: Data required to evaluate the condition. @@ -47534,7 +48359,7 @@ components: - h2 - 'n' - p - TransactionRequest2: + TransactionRequest1: title: TransactionRequest oneOf: - $ref: '#/components/schemas/TransactionRequestLite2' @@ -48253,7 +49078,7 @@ components: description: Total number of addresses returned in this response required: - coin - InvalidWalletId2: + InvalidWalletId1: title: Invalid Wallet ID allOf: - type: object @@ -51208,7 +52033,120 @@ components: - freezePendingApproval - unfreezePendingApproval - trustToSingaporeUpgrade + responses: + BadRequest: + description: Bad Request + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/GeneralError' + - $ref: '#/components/schemas/ValidationError' + example: + code: BadRequest + message: Bad Request + status: 400 + Forbidden: + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/GeneralError' + example: + code: AccessDenied + message: License not added for enterprise + status: 403 + NotFound: + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/GeneralError' + example: + code: NotFound + message: Touchpoint not found + status: 404 + ServerError: + description: Server Error - Transient error please try again + content: + application/json: + schema: + $ref: '#/components/schemas/GeneralError' + example: + code: Internal_Server_Error + message: Database is down + status: 500 + Unauthorized: + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/GeneralError' + example: + code: Unauthorized + message: Unauthorized + status: 401 + Forbidden1: + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/GeneralError' + example: + code: AccessDenied + message: Access is denied + status: 403 + NotFound1: + description: Not Found + content: + application/json: + schema: + $ref: '#/components/schemas/GeneralError' + example: + code: NotFound + message: The specified resource was not found + status: 404 + ServerError1: + description: Internal Server Error + content: + application/json: + schema: + $ref: '#/components/schemas/GeneralError' + example: + code: InternalServerError + message: An unexpected error occurred + status: 500 parameters: + pathWalletId: + name: walletId + in: path + required: true + schema: + $ref: '#/components/schemas/Id' + pathCoin: + name: coin + in: path + required: true + schema: + $ref: '#/components/schemas/Coin' + pathApprovalId: + name: approvalId + in: path + required: true + schema: + $ref: '#/components/schemas/Id' + pathShareId: + name: shareId + in: path + required: true + schema: + $ref: '#/components/schemas/Id' + pathEnterpriseId: + name: enterpriseId + in: path + required: true + schema: + $ref: '#/components/schemas/Id' Base: name: base in: query @@ -51295,30 +52233,6 @@ components: required: true schema: $ref: '#/components/schemas/BankAccountId' - pathApprovalId: - name: approvalId - in: path - required: true - schema: - $ref: '#/components/schemas/Id' - pathShareId: - name: shareId - in: path - required: true - schema: - $ref: '#/components/schemas/Id' - pathWalletId: - name: walletId - in: path - required: true - schema: - $ref: '#/components/schemas/Id' - pathEnterpriseId: - name: enterpriseId - in: path - required: true - schema: - $ref: '#/components/schemas/Id' queryIdArray: name: id in: query @@ -51359,12 +52273,6 @@ components: 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. - pathCoin: - name: coin - in: path - required: true - schema: - $ref: '#/components/schemas/Coin' pathBitcoin: name: coin in: path @@ -54557,89 +55465,10 @@ components: - coin: sol fee: '5' defaultFee: '10' - responses: - BadRequest: - description: Bad Request - content: - application/json: - schema: - oneOf: - - $ref: '#/components/schemas/GeneralError' - - $ref: '#/components/schemas/ValidationError' - example: - code: BadRequest - message: Bad Request - status: 400 - Forbidden: - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/GeneralError' - example: - code: AccessDenied - message: License not added for enterprise - status: 403 - NotFound: - description: The specified resource was not found - content: - application/json: - schema: - $ref: '#/components/schemas/GeneralError' - example: - code: NotFound - message: Touchpoint not found - status: 404 - ServerError: - description: Server Error - Transient error please try again - content: - application/json: - schema: - $ref: '#/components/schemas/GeneralError' - example: - code: Internal_Server_Error - message: Database is down - status: 500 - Unauthorized: - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/GeneralError' - example: - code: Unauthorized - message: Unauthorized - status: 401 - Forbidden1: - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/GeneralError' - example: - code: AccessDenied - message: Access is denied - status: 403 - NotFound1: - description: Not Found - content: - application/json: - schema: - $ref: '#/components/schemas/GeneralError' - example: - code: NotFound - message: The specified resource was not found - status: 404 - ServerError1: - description: Internal Server Error - content: - application/json: - schema: - $ref: '#/components/schemas/GeneralError' - example: - code: InternalServerError - message: An unexpected error occurred - status: 500 + requestBodies: {} + headers: {} + links: {} + callbacks: {} x-tagGroups: - name: API reference tags: