From 3c92ed97a4f70ee870e40f13fa68a06634502610 Mon Sep 17 00:00:00 2001 From: "dev-portal-updater-protected[bot]" <242026823+dev-portal-updater-protected[bot]@users.noreply.github.com> Date: Wed, 4 Nov 2026 16:34:16 +0000 Subject: [PATCH 1/3] feat: update `bitgo-api-docs` This commit updates the BitGo API. Source-Commit: BitGo/dev-portal@dbf5dcfe34f423fdbc54de7975d51448a7113275 --- api.yaml | 1897 +++++++++++++++++++++++++++++++++++++++++++--- express-api.yaml | 24 + 2 files changed, 1818 insertions(+), 103 deletions(-) diff --git a/api.yaml b/api.yaml index 4c6d9ec..71e61f4 100644 --- a/api.yaml +++ b/api.yaml @@ -720,7 +720,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/V1PendingApproval' + $ref: '#/components/schemas/V1EnterpriseUpdateAccepted' '400': description: Bad Request content: @@ -54909,6 +54909,7 @@ paths: - enterpriseInviteRequest - updateWalletSettingRequest - updateWalletTagsRequest + - updateEnterpriseSettingRequest - name: requestResourceType description: Filter by generic request resource type in: query @@ -67228,6 +67229,21 @@ components: description: |- Base codec for acceleration intents. Replaces a stuck pending EVM transaction with a higher-fee version to accelerate confirmation (replace-by-fee). + AccelerationIntent1: + title: AccelerationIntent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - acceleration + txid: + type: string + required: + - intentType + - txid + - $ref: '#/components/schemas/BaseIntent1' AcceptMintAgreementResponse: title: AcceptMintAgreementResponse type: object @@ -67515,6 +67531,19 @@ components: - type: string - type: number description: Override the on-chain nonce for this transaction. + AccountBaseBuildOptions1: + title: AccountBaseBuildOptions + type: object + properties: + nonce: + oneOf: + - type: string + - type: number + AccountBaseBuildOptions2: + type: object + properties: + nonce: + type: string AccountBaseConsolidateIntent: title: AccountBaseConsolidateIntent allOf: @@ -67959,6 +67988,18 @@ components: - poolKeyHash - dRepId - $ref: '#/components/schemas/StakeIntent' + AdaStakeIntent1: + title: Ada Stake + allOf: + - $ref: '#/components/schemas/StakeIntent2' + - type: object + properties: + poolKeyHash: + type: string + description: | + The pool key hash to which the coins will be delegated to. + required: + - poolKeyHash AdaStakingDelegation: title: ADA Staking Delegation allOf: @@ -68177,6 +68218,14 @@ components: $ref: '#/components/schemas/optionalString' option: $ref: '#/components/schemas/optionalUnknownObject' + Address1: + title: Address + type: object + properties: + address: + $ref: '#/components/schemas/optionalString' + option: + $ref: '#/components/schemas/optionalUnknownObject' Address2: type: object properties: @@ -69077,6 +69126,31 @@ components: required: - value - symbol + Amount1: + title: Amount + type: object + properties: + value: + type: string + symbol: + type: string + required: + - value + - symbol + 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 + required: + - value + - symbol Amount3: type: object required: @@ -72869,6 +72943,44 @@ components: description: Override the on-chain nonce for this transaction. required: - intentType + BaseIntent1: + title: Intent + type: object + properties: + intentType: + $ref: '#/components/schemas/IntentType1' + sequenceId: + $ref: '#/components/schemas/optionalString' + comment: + $ref: '#/components/schemas/optionalString' + nonce: + oneOf: + - type: string + - type: number + required: + - intentType + BaseIntent2: + type: object + properties: + intentType: + type: string + sequenceId: + type: string + description: | + A `sequenceId` is a unique and arbitrary wallet identifier applied to transfers and transactions at creation. It is optional but highly recommended. With a `sequenceId` you can easily reference transfers and transactions—for example, to safely retry sending. Because BitGo only confirms one send request per `sequenceId` (and fails all subsequent attempts), you can retry sending without the risk of double spending. The `sequenceId` is only visible to users on the wallet and is not shared publicly. It is the responsibility of the caller to keep track of this ID. + example: abc123 + comment: + type: string + description: The `comment` is only visible to users on the wallet and is not shared publicly. + 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: + - intentType BaseIntentWithAmount: title: BaseIntentWithAmount type: object @@ -72994,6 +73106,18 @@ components: description: Human-readable memo attached to the transaction. required: - intentType + BaseIntentWithoutNonce1: + title: BaseIntentWithoutNonce + type: object + properties: + intentType: + $ref: '#/components/schemas/IntentType1' + sequenceId: + $ref: '#/components/schemas/optionalString' + comment: + $ref: '#/components/schemas/optionalString' + required: + - intentType BaseOAuthSetting: title: BaseOAuthSetting type: object @@ -73069,6 +73193,25 @@ components: required: - stakingRequestId - $ref: '#/components/schemas/BaseIntent' + BaseStakeIntent1: + title: BaseStakeIntent + allOf: + - type: object + properties: + stakingRequestId: + type: string + required: + - stakingRequestId + - $ref: '#/components/schemas/BaseIntent1' + BaseStakeIntent2: + allOf: + - $ref: '#/components/schemas/BaseIntent2' + - type: object + properties: + stakingRequestId: + type: string + required: + - stakingRequestId BaseStakeIntentWithCalldata: title: Base Stake Intent with Calldata allOf: @@ -76472,6 +76615,11 @@ components: required: - type - $ref: '#/components/schemas/BaseShare' + CommitmentType: + type: string + enum: + - commitment + example: commitment ComplianceModel: title: ComplianceModel type: string @@ -76848,6 +76996,30 @@ components: properties: keyDerivationPath: type: string + ConsolidateTokenIntent1: + title: Consolidate Token + allOf: + - $ref: '#/components/schemas/BaseIntent2' + - $ref: '#/components/schemas/EthBuildOptions1' + - type: object + properties: + intentType: + type: string + enum: + - consolidateToken + recipients: + type: array + items: + $ref: '#/components/schemas/RecipientEntry1' + consolidateId: + type: string + description: Consolidation ID of this consolidation transaction + keepAlive: + type: string + description: True, if excluding the minimum-funding amounts in an address during consolidation. + required: + - intentType + - recipients ConsolidateUnspentsRequest: type: object properties: @@ -77166,6 +77338,26 @@ components: Execute a Wasm smart contract on a Cosmos-family chain. Supported on all Cosmos-family chains. The hash chain additionally supports fee-grant via the optional feeGranter field. + CosmosContractCallIntent1: + 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 CosmosLikeClaimRewardsRequestEntityProperties: title: Cosmos-like claim rewards request entity properties allOf: @@ -78431,6 +78623,44 @@ components: 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. + DOTBuildOptions: + allOf: + - $ref: '#/components/schemas/AccountBaseBuildOptions2' + - type: object + properties: + fee: + $ref: '#/components/schemas/DOTFeeOptions' + DOTClaimIntent: + title: Dot Claim Unstake + allOf: + - $ref: '#/components/schemas/DOTBuildOptions' + - $ref: '#/components/schemas/WithdrawIntent2' + 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 DateTime: type: string format: date-time @@ -79896,6 +80126,40 @@ components: required: - amount - $ref: '#/components/schemas/AccountBaseBuildOptions' + DotAccountBaseBuildOptions1: + 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/AccountBaseBuildOptions1' DotAddress: title: Dot Address type: object @@ -80007,6 +80271,20 @@ components: - owner - $ref: '#/components/schemas/PaymentIntent' - $ref: '#/components/schemas/DotAccountBaseBuildOptions' + DotPaymentIntent1: + title: DOT Payment Intent + allOf: + - type: object + properties: + proxy: + $ref: '#/components/schemas/DotProxy' + owner: + $ref: '#/components/schemas/optionalString' + required: + - proxy + - owner + - $ref: '#/components/schemas/PaymentIntent1' + - $ref: '#/components/schemas/DotAccountBaseBuildOptions1' DotProxy: title: DotProxy type: object @@ -80040,6 +80318,24 @@ components: - $ref: '#/components/schemas/StakeIntent' - $ref: '#/components/schemas/DotAccountBaseBuildOptions' - $ref: '#/components/schemas/BaseIntentWithAmount' + DotStakingIntent1: + title: DOT Staking Intent + allOf: + - type: object + properties: + amount: + $ref: '#/components/schemas/Amount1' + stakingProxy: + type: string + addToStake: + $ref: '#/components/schemas/optionalBoolean' + addProxy: + $ref: '#/components/schemas/optionalBoolean' + required: + - amount + - stakingProxy + - $ref: '#/components/schemas/StakeIntent1' + - $ref: '#/components/schemas/DotAccountBaseBuildOptions1' DotStakingRequest: title: DOT allOf: @@ -80107,6 +80403,22 @@ components: - $ref: '#/components/schemas/UnstakeIntent' - $ref: '#/components/schemas/DotAccountBaseBuildOptions' - $ref: '#/components/schemas/BaseIntentWithAmount' + DotUnstakingIntent1: + title: DOT Unstaking Intent + allOf: + - type: object + properties: + amount: + $ref: '#/components/schemas/Amount1' + stakingProxy: + type: string + stopStaking: + $ref: '#/components/schemas/optionalBoolean' + required: + - amount + - stakingProxy + - $ref: '#/components/schemas/UnstakeIntent1' + - $ref: '#/components/schemas/DotAccountBaseBuildOptions1' DotUnstakingTransactionProperties: title: DOT Unstaking Transaction Properties allOf: @@ -80216,6 +80528,18 @@ components: - contractType - contractVersion - userAgreesToTerms + ETHSignMessageIntent: + title: Eth sign message + allOf: + - $ref: '#/components/schemas/BaseIntent2' + - type: object + properties: + intentType: + type: string + enum: + - signMessage + required: + - intentType EcdsaConfig: title: EcdsaConfig type: object @@ -80448,6 +80772,30 @@ components: - intentType - enableTokens - $ref: '#/components/schemas/BaseIntent' + EnableTokenIntent1: + title: EnableTokenIntent + allOf: + - type: object + properties: + intentType: + type: string + 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/BaseIntent1' EncryptedShare: title: EncryptedShare allOf: @@ -81547,6 +81895,19 @@ components: Replace a stuck pending EVM transaction with a higher-fee version to accelerate confirmation. Supply the original transaction's txid and new feeOptions that exceed the original. + EthAccelerationIntent1: + title: ETH Acceleration Intent + allOf: + - type: object + properties: + feeOptions: + oneOf: + - $ref: '#/components/schemas/FeeOption' + - $ref: '#/components/schemas/EIP1559FeeOptions' + required: + - feeOptions + - $ref: '#/components/schemas/AccelerationIntent1' + - $ref: '#/components/schemas/EthBuildOptionsWithoutFeeOptions1' EthBuildOptions: title: EthBuildOptions allOf: @@ -81580,6 +81941,33 @@ components: - $ref: '#/components/schemas/optionalNumber' description: Index of the wallet address to use as the sender. - $ref: '#/components/schemas/AccountBaseBuildOptions' + EthBuildOptions1: + title: EthBuildOptions + allOf: + - type: object + properties: + 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/AccountBaseBuildOptions1' EthBuildOptionsWithoutFeeOptions: title: EthBuildOptionsWithoutFeeOptions allOf: @@ -81608,6 +81996,29 @@ components: - $ref: '#/components/schemas/optionalNumber' description: Index of the wallet address to use as the sender. - $ref: '#/components/schemas/AccountBaseBuildOptions' + EthBuildOptionsWithoutFeeOptions1: + 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/AccountBaseBuildOptions1' EthCommonStakingRequestEntityProperties: title: Common Ethereum staking request entity properties allOf: @@ -81684,6 +82095,18 @@ components: allOf: - $ref: '#/components/schemas/optionalNumber' description: Index of the wallet address to use as the sender. + EthFillNonceBuildOptions1: + 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' EthFillNonceIntent: title: ETH Fill Nonce Intent allOf: @@ -81693,6 +82116,13 @@ components: Submit a zero-value self-send to consume a specific nonce on EVM-compatible chains. Used to unblock transaction queues when a nonce gap has formed. + EthFillNonceIntent1: + title: ETH Fill Nonce Intent + allOf: + - type: object + properties: {} + - $ref: '#/components/schemas/FillNonceIntent1' + - $ref: '#/components/schemas/EthFillNonceBuildOptions1' EthLikeStakeIntent: title: EthLike Stake Intent allOf: @@ -81748,6 +82178,17 @@ components: Transfer ETH or ERC-20 tokens to one or more recipients on EVM-compatible chains. Specify recipients with their address and amount. Optionally override fee settings via feeOptions. + EthPaymentIntent1: + title: ETH Payment Intent + allOf: + - type: object + properties: + selfSend: + $ref: '#/components/schemas/optionalBoolean' + required: + - selfSend + - $ref: '#/components/schemas/PaymentIntent1' + - $ref: '#/components/schemas/EthBuildOptions1' EthStakingDelegation: title: ETH Staking Delegation allOf: @@ -81796,6 +82237,26 @@ components: pre-created staking request from the BitGo staking service. All validator fields (pubkey, withdrawalCredentials, signature, depositDataRoot) are provided by the staking service. + EthStakingIntent1: + 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/StakeIntent1' + - $ref: '#/components/schemas/EthBuildOptions1' EthStakingRequest: title: ETH allOf: @@ -82898,6 +83359,23 @@ components: Base codec for fill-nonce intents. Submits a zero-value self-send to consume a specific nonce on EVM-compatible chains. Used to unblock transaction queues when a nonce gap has formed. + FillNonceIntent1: + title: FillNonceIntent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - fillNonce + nonce: + oneOf: + - type: string + - type: number + required: + - intentType + - nonce + - $ref: '#/components/schemas/BaseIntentWithoutNonce1' FilteringConditions: type: object description: | @@ -86671,6 +87149,13 @@ components: type: string pattern: ^[0-9a-f]{32}$ example: 59cd72485007a239fb00282ed480da1f + IdArray: + type: array + items: + $ref: '#/components/schemas/Id' + example: + - 585951a5df8380e0e3063e9f + - 585951a5df8380e0e304a553 IdVerificationActionRequest: title: BitGo ID Verification type: object @@ -88121,6 +88606,41 @@ components: - export - import - importtoc + IntentType1: + title: IntentType + type: string + enum: + - payment + - transferToken + - consolidate + - consolidateToken + - fanout + - stake + - unstake + - delegate + - undelegate + - switchValidator + - claim + - stakeClaimRewards + - pledge + - vote + - createAccount + - updateAccount + - addTrustLine + - removeTrustLine + - signMessage + - signTypedStructuredData + - enableToken + - authorize + - acceleration + - fillNonce + - walletRecovery + - contractCall + - deactivate + - customTx + - closeAssociatedTokenAccount + - delegateResource + - undelegateResource IntentType11: title: IntentType1 type: string @@ -91487,6 +92007,40 @@ components: type: string maxLength: 100 description: A memo for this specific transaction. This format is only available for Stacks. + Message: + type: object + properties: + coin: + type: string + description: The coin associated with the wallet. + combineSigShare: + type: string + createdDate: + description: The date the message was created. + type: string + format: date-time + messageEncoded: + description: The message encoded as a hex string. + type: string + messageRaw: + description: The message as human readable text. + type: string + 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: + - messageRaw + - state MessageIntent: title: MessageIntent type: object @@ -91805,6 +92359,18 @@ components: required: - recipients - $ref: '#/components/schemas/StakeIntent' + NearStakeIntent1: + title: Near Stake + allOf: + - $ref: '#/components/schemas/StakeIntent2' + - type: object + properties: + recipients: + type: array + items: + $ref: '#/components/schemas/RecipientEntry1' + required: + - recipients NearStakingDelegation: title: NEAR Staking Delegation allOf: @@ -91872,6 +92438,18 @@ components: required: - recipients - $ref: '#/components/schemas/UnstakeIntent' + NearUnstakeIntent1: + title: Near Unstake + allOf: + - $ref: '#/components/schemas/UnstakeIntent2' + - type: object + properties: + recipients: + type: array + items: + $ref: '#/components/schemas/RecipientEntry1' + required: + - recipients NearWallet: title: Near Wallet type: object @@ -91917,6 +92495,18 @@ components: required: - recipients - $ref: '#/components/schemas/WithdrawIntent' + NearWithdrawIntent1: + title: Near Claim Unstake + allOf: + - $ref: '#/components/schemas/WithdrawIntent2' + - type: object + properties: + recipients: + type: array + items: + $ref: '#/components/schemas/RecipientEntry1' + required: + - recipients NetWorth: type: string enum: @@ -93969,6 +94559,7 @@ components: - disableBridging - enableSignTypedStructuredData - xlmTrustlineSkipCosign + - disableMessageSignPolicy distributedCustody: nullable: true allOf: @@ -94586,6 +95177,33 @@ components: required: - intentType - isTestTransaction + PaymentIntent1: + title: PaymentIntent + allOf: + - type: object + properties: + intent: + type: string + enum: + - payment + recipients: + type: array + items: + type: object + properties: + address: + $ref: '#/components/schemas/Address1' + amount: + $ref: '#/components/schemas/Amount1' + data: + $ref: '#/components/schemas/optionalString' + required: + - address + - amount + required: + - intent + - recipients + - $ref: '#/components/schemas/BaseIntent1' PaymentStatus: title: PaymentStatus type: string @@ -95070,6 +95688,101 @@ components: - info - state - scope + PendingApprovalAddressLabel: + description: Address labels of recipients in this Pending Approval + type: object + properties: + address: + $ref: '#/components/schemas/AddressString3' + label: + $ref: '#/components/schemas/AddressLabel' + walletLabel: + $ref: '#/components/schemas/WalletLabel' + required: + - address + - label + PendingApprovalEnterpriseInviteRequest: + title: Enterprise Invite Request + type: object + properties: + type: + type: string + enum: + - enterpriseInviteRequest + enterpriseInviteRequest: + type: object + properties: + action: + type: string + enum: + - add + email: + 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: + 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: + 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/PlatformEmail' + description: E-Mail address of newly added users + type: + type: string + enum: + - policyRuleRequest PendingApprovalInfo: title: PendingApprovalInfo type: object @@ -95484,8 +96197,56 @@ components: required: - action - customTags + updateEnterpriseSettingRequest: + type: object + description: Enterprise setting changes awaiting approval, keyed by setting name. + properties: + withdrawalAttestationRequired: + type: object + description: Require withdrawals to be confirmed with the initiator's passkey + properties: + newValue: + type: boolean + oldValue: + type: boolean + required: + - newValue + - oldValue required: - type + PendingApprovalPolicyRuleRequest: + title: Policy rule request + type: object + properties: + 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 + enum: + - policyRuleRequest PendingApprovalState: title: PendingApprovalState oneOf: @@ -95525,6 +96286,7 @@ components: - approved - processing - rejected + - cancelled PendingApprovalStateTrust: title: Pending Trust type: string @@ -95535,6 +96297,77 @@ components: - pendingCustodianApproval - pendingManualTrustReview - pendingFraudRiskEvaluation + PendingApprovalTransactionRequest: + title: Transaction request (lite) + type: object + properties: + transactionRequest: + 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/PlatformAddressString' + amount: + $ref: '#/components/schemas/PlatformIntegerOrIntegerString' + data: + type: string + requestedAmount: + $ref: '#/components/schemas/PlatformIntegerOrIntegerString' + sourceWallet: + $ref: '#/components/schemas/Id' + triggeredPolicy: + $ref: '#/components/schemas/Id' + validTransaction: + type: string + validTransactionHash: + type: string + type: + type: string + enum: + - transactionRequest + 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: 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 PendingApprovalType: title: PendingApprovalType type: string @@ -95550,6 +96383,7 @@ components: - enterpriseInviteRequest - updateWalletSettingRequest - updateWalletTagsRequest + - updateEnterpriseSettingRequest PendingApprovalUpdateAction: title: PendingApprovalUpdateAction type: string @@ -95558,6 +96392,59 @@ components: - rejected - skipped - failed + - cancelled + PendingApprovalUpdateApprovalsRequiredRequest: + title: Update approvals required request + type: object + properties: + type: + type: string + enum: + - updateApprovalsRequiredRequest + updateApprovalsRequiredRequest: + type: object + properties: + requestedApprovalsRequired: + type: number + PendingApprovalUpdateEnterpriseSettingRequest: + title: Update enterprise setting request + type: object + properties: + type: + type: string + enum: + - updateEnterpriseSettingRequest + updateEnterpriseSettingRequest: + type: object + description: Requested enterprise setting changes, keyed by setting name. + properties: + withdrawalAttestationRequired: + type: object + properties: + oldValue: + type: boolean + newValue: + type: boolean + required: + - oldValue + - newValue + PendingApprovalUserChangeRequest: + title: User change request + type: object + properties: + type: + type: string + enum: + - userChangeRequest + userChangeRequest: + type: object + properties: + action: + type: string + permissions: + type: string + userChanged: + $ref: '#/components/schemas/Id' PendingApprovalsCountSchema: title: PendingApprovalsCountSchema type: object @@ -95713,6 +96600,34 @@ components: - BitGo Mena Fze - BitGo Custody MENA FZE - BitGo India + PlatformCommitmentShare: + 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 + PlatformEmail: + type: string + format: email + example: user@example.com PlatformEnterprise: type: object properties: @@ -95892,6 +96807,12 @@ components: - signature submitted - initiating - additional information submitted + PlatformIntegerOrIntegerString: + oneOf: + - type: string + pattern: ^-?\d+$ + example: '2000000' + - type: integer PlatformIntegerString: type: string pattern: ^-?\d+$ @@ -95942,6 +96863,116 @@ components: enum: - managed - permanent + 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' + - $ref: '#/components/schemas/PendingApprovalUpdateEnterpriseSettingRequest' + 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' + PlatformPendingApprovalState: + anyOf: + - $ref: '#/components/schemas/PlatformPendingApprovalStatePending' + - $ref: '#/components/schemas/PlatformPendingApprovalStateResolved' + PlatformPendingApprovalStatePending: + title: Pending + type: string + enum: + - pending + - awaitingSignature + - pendingFinalApproval + - pendingCustodianApproval + - pendingVideoApproval + - pendingIdVerification + PlatformPendingApprovalStateResolved: + title: Resolved + type: string + enum: + - approved + - processing + - rejected + - cancelled PlatformPolicy: type: object properties: @@ -95989,6 +97020,196 @@ components: - lockDate - type - action + PlatformSignatureShare: + 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 + PlatformTransaction: + type: object + properties: + 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: + $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: + - state + - unsignedTx + PlatformTransactionRequest: + anyOf: + - $ref: '#/components/schemas/PlatformTransactionRequestLite' + - $ref: '#/components/schemas/PlatformTransactionRequestFull' + required: + - txRequestId + - version + - latest + - walletId + - state + - date + - userId + - intent + PlatformTransactionRequestBase: + type: object + properties: + txRequestId: + type: string + description: A unique ID for the TxRequest document across all wallets. The combination of the txRequestId and version will always be unique. + version: + type: number + description: The version of the document. Data changes are done only with inserts and incrementing the version. + latest: + type: boolean + description: A boolean flag that indicates whether the document is the latest version of the TxRequest. + walletId: + type: string + description: The id of the Wallet the TxRequest is for. + walletType: + allOf: + - $ref: '#/components/schemas/WalletTypePublic' + description: The type describes who owns the keys to the wallet associated to the TxRequest. + enterpriseId: + type: string + description: If the wallet that owns the TxRequest is owned by an enterprise then this is the Id of said enterprise. + state: + $ref: '#/components/schemas/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 + description: The Id of the User that produced this version of the TxRequest document. Could have created a new document or updated an existing document. + initiatedBy: + type: string + description: The Id of the User that originally created the TxRequest document (initiated the TxRequest). + updatedBy: + type: string + description: The Id of the User that last updated the TxRequest document. This is an alias for the userId field. + intent: + $ref: '#/components/schemas/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: + - txRequestId + - version + - latest + - walletId + - state + - date + - createdDate + - userId + - initiatedBy + - updatedBy + - intents + PlatformTransactionRequestFull: + title: Full + allOf: + - $ref: '#/components/schemas/PlatformTransactionRequestBase' + - type: object + properties: + transactions: + description: Transaction information. + type: array + items: + $ref: '#/components/schemas/PlatformTransaction' + messages: + description: Messages for the transaction request. + type: array + items: + $ref: '#/components/schemas/Message' + required: + - txRequestId + - version + - latest + - walletId + - state + - date + - userId + - intent + - transactions + PlatformTransactionRequestLite: + title: Lite + allOf: + - $ref: '#/components/schemas/PlatformTransactionRequestBase' + - type: object + properties: + unsignedTxs: + type: array + description: Holds all unsigned transactions that will be used to fulfill the TxRequest for MPC wallets. + items: + $ref: '#/components/schemas/TransactionRequestUnsignedTransaction' + signatureShares: + type: array + description: Only used for MPC coins. This is used to collect signature shares from and exchange them with the user. + items: + $ref: '#/components/schemas/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: + - txRequestId + - version + - latest + - walletId + - state + - date + - userId + - intent PlatformTransactionRequestState: type: string enum: @@ -97914,6 +99135,20 @@ components: required: - address - amount + RecipientEntry1: + type: object + properties: + address: + $ref: '#/components/schemas/TxAddress' + amount: + $ref: '#/components/schemas/Amount2' + data: + type: string + tokenData: + $ref: '#/components/schemas/TokenData1' + required: + - address + - amount RecommendationActionEntry: type: object description: An action entry in the recommendation template. @@ -101336,6 +102571,16 @@ components: `closeAssociatedTokenAccount` intents) may normalize a missing `memo` to `""` before validation so stored objects match this shape. Other Sol flows should send `memo` or apply the same normalization if they share this path. + SolBuildOptions1: + title: SolBuildOptions + allOf: + - type: object + properties: + memo: + $ref: '#/components/schemas/optionalString' + required: + - memo + - $ref: '#/components/schemas/AccountBaseBuildOptions1' SolClaimIntent: title: SOL Claim Intent allOf: @@ -101350,6 +102595,20 @@ components: - $ref: '#/components/schemas/SolBuildOptions' - $ref: '#/components/schemas/BaseIntentWithAmount' description: Withdraw the balance from a deactivated SOL stake account back to the wallet on Solana. The stake account must have been deactivated (unstaked) before claiming. Spending policy is not evaluated for this intent. + SolClaimIntent1: + title: SOL Claim Intent + allOf: + - type: object + properties: + stakingAddress: + type: string + amount: + $ref: '#/components/schemas/Amount1' + required: + - stakingAddress + - amount + - $ref: '#/components/schemas/WithdrawIntent1' + - $ref: '#/components/schemas/SolBuildOptions1' SolClaimRewardsRequestPOSTBody: title: Solana (SOL) Claim Rewards Request type: object @@ -101376,6 +102635,25 @@ components: - $ref: '#/components/schemas/BaseIntent' - $ref: '#/components/schemas/SolBuildOptions' description: Close one or more zero-balance SPL Associated Token Accounts (ATAs) on Solana and recover their rent lamports to the wallet root address. All ATAs must have a zero token balance (consolidate tokens first), share the same on-chain owner, and be owned by this wallet. Maximum 27 distinct ATAs per transaction. Spending policy is not evaluated for this intent. + SolCloseAssociatedTokenAccountIntent1: + title: SOL Close Associated Token Account Intent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - closeAssociatedTokenAccount + recipients: + type: array + minItems: 1 + items: + $ref: '#/components/schemas/RecipientEntry1' + required: + - intentType + - recipients + - $ref: '#/components/schemas/BaseIntent1' + - $ref: '#/components/schemas/SolBuildOptions1' SolConsolidateIntent: title: SOL Consolidate Intent allOf: @@ -101387,6 +102665,13 @@ components: - $ref: '#/components/schemas/EnableTokenIntent' - $ref: '#/components/schemas/SolBuildOptions' description: Initialize one or more Associated Token Accounts (ATAs) on Solana so the wallet can receive SPL tokens. All entries in enableTokens must target the same wallet address, unless they are confidential-transfer tokens whose mints carry the ConfidentialTransferMint extension. Those are enabled per address — one ConfigureAccount transaction per address — so entries may target different addresses. Spending policy is not evaluated for this intent. + SolCreateAssociatedTokenAccountIntent1: + title: SOL Create Associated Token Account Intent + allOf: + - type: object + properties: {} + - $ref: '#/components/schemas/EnableTokenIntent1' + - $ref: '#/components/schemas/SolBuildOptions1' SolCustomTxIntent: title: SOL Custom Transaction Intent allOf: @@ -101577,6 +102862,20 @@ components: - $ref: '#/components/schemas/SolBuildOptions' - $ref: '#/components/schemas/BaseIntentWithAmount' description: Stake SOL to a validator on Solana by creating a new stake account. The platform generates an ephemeral keypair for the stake account and whitelists it on the wallet. Requires the enterprise to have staking permissions. Supports native, Marinade liquid, and Jito staking via the stakingType field. + SolStakeIntent1: + title: SOL Stake Intent + allOf: + - type: object + properties: + validatorAddress: + type: string + amount: + $ref: '#/components/schemas/Amount1' + required: + - validatorAddress + - amount + - $ref: '#/components/schemas/StakeIntent1' + - $ref: '#/components/schemas/SolBuildOptions1' SolStakingDelegation: title: SOL Staking Delegation allOf: @@ -101746,6 +103045,37 @@ components: - $ref: '#/components/schemas/UnstakeIntent' - $ref: '#/components/schemas/SolBuildOptions' description: Begin deactivating a SOL stake account on Solana. For native staking, the stake account enters a cooldown period before funds can be claimed. For partial unstakes, provide both amount and remainingStakingAmount to split the stake account. Supports native, Marinade liquid, and Jito staking via the stakingType field. Requires the enterprise to have staking permissions. + SolUnstakeIntent1: + 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/UnstakeIntent1' + - $ref: '#/components/schemas/SolBuildOptions1' SolVersionMarker: title: SolVersionMarker type: object @@ -102211,6 +103541,29 @@ components: required: - intentType - $ref: '#/components/schemas/BaseStakeIntent' + StakeIntent1: + title: StakeIntent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - stake + required: + - intentType + - $ref: '#/components/schemas/BaseStakeIntent1' + StakeIntent2: + allOf: + - $ref: '#/components/schemas/BaseStakeIntent2' + - type: object + properties: + intentType: + type: string + enum: + - stake + required: + - intentType StakePoolEpochData: type: object properties: @@ -105665,6 +107018,33 @@ components: - $ref: '#/components/schemas/TokenRecipientEntryItem' - $ref: '#/components/schemas/SupportedTokenRecipientEntryItem' - $ref: '#/components/schemas/UnsupportedTokenRecipientEntryItem' + TokenData1: + type: object + properties: + tokenType: + type: string + description: The type of standard of the token. + example: ERC721 + tokenQuantity: + type: string + description: The quantity of token to transfer (should be 1 for ERC721). + example: '101' + tokenContractAddress: + type: string + description: Address of the token contract which is necessary if the token is not supported on WP. + example: '0x3d8e90d5F403a0A18dfeeAd36E30EF95D5E1ad3a' + tokenName: + type: string + description: Name of the token as it is supported on WP. + example: tpolygon:name + tokenId: + type: string + description: Id of the token to be transferred which is required for NFTs. + example: '123' + decimalPlaces: + type: number + description: Number of decimal places the token uses (for fungible tokens unsupported in WP). + example: 18 TokenLimits: title: TokenLimits type: object @@ -107040,6 +108420,34 @@ components: example: 123e4567-e89b-12d3-a456-426614174000 minLength: 1 format: uuid + TransactionRequestIntent: + anyOf: + - $ref: '#/components/schemas/AdaStakeIntent1' + - $ref: '#/components/schemas/ConsolidateTokenIntent1' + - $ref: '#/components/schemas/CosmosContractCallIntent1' + - $ref: '#/components/schemas/DOTClaimIntent' + - $ref: '#/components/schemas/DotPaymentIntent1' + - $ref: '#/components/schemas/DotStakingIntent1' + - $ref: '#/components/schemas/DotUnstakingIntent1' + - $ref: '#/components/schemas/EthAccelerationIntent1' + - $ref: '#/components/schemas/EthFillNonceIntent1' + - $ref: '#/components/schemas/EthPaymentIntent1' + - $ref: '#/components/schemas/ETHSignMessageIntent' + - $ref: '#/components/schemas/EthStakingIntent1' + - $ref: '#/components/schemas/NearStakeIntent1' + - $ref: '#/components/schemas/NearUnstakeIntent1' + - $ref: '#/components/schemas/NearWithdrawIntent1' + - $ref: '#/components/schemas/SolClaimIntent1' + - $ref: '#/components/schemas/SolCloseAssociatedTokenAccountIntent1' + - $ref: '#/components/schemas/SolCreateAssociatedTokenAccountIntent1' + - $ref: '#/components/schemas/SolStakeIntent1' + - $ref: '#/components/schemas/SolUnstakeIntent1' + - $ref: '#/components/schemas/TransferTokenIntent1' + - $ref: '#/components/schemas/TrxDelegateResourceIntent1' + - $ref: '#/components/schemas/TrxUndelegateResourceIntent1' + - $ref: '#/components/schemas/UnstakeIntent2' + - $ref: '#/components/schemas/WalletRecoveryIntent1' + - $ref: '#/components/schemas/WithdrawIntent2' TransactionRequestLite: title: TransactionRequestLite allOf: @@ -107173,6 +108581,111 @@ components: - canceled - rejected - failed + 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 TransactionResponse1: title: TransactionResponse type: object @@ -109497,6 +111010,20 @@ components: - intentType - $ref: '#/components/schemas/BaseIntent' - $ref: '#/components/schemas/BaseIntentWithTokenRecipients' + TransferTokenIntent1: + title: Transfer Token + allOf: + - $ref: '#/components/schemas/BaseIntent2' + - type: object + properties: + intentType: + type: string + enum: + - transferToken + recipients: + type: array + items: + $ref: '#/components/schemas/RecipientEntry1' TransferType2: title: TransferType type: string @@ -110087,6 +111614,42 @@ components: (DelegateResourceContract). The owner must have sufficient staked resources; the receiver address must be an active Tron account; and the amount must be at least 1 TRX (1,000,000 sun). Valid on TRX and TTRX. + TrxDelegateResourceIntent1: + title: TRX Delegate Resource Intent + description: | + Delegates TRON ENERGY or BANDWIDTH from the wallet root address to a receiver address. + For TRX (`trx`, `ttrx`) MPC (TSS) wallets only — use with [Create transaction request](/reference/v2wallettxrequestcreate). + Minimum delegation amount is 1 TRX (1,000,000 sun). + allOf: + - type: object + properties: + intentType: + type: string + enum: + - delegateResource + stakingRequestId: + type: string + ownerAddress: + type: string + description: TRON address delegating resources (typically the wallet root address) + receiverAddress: + type: string + description: TRON address receiving the delegated ENERGY or BANDWIDTH + amount: + $ref: '#/components/schemas/Amount1' + resource: + type: string + enum: + - ENERGY + - BANDWIDTH + required: + - intentType + - stakingRequestId + - ownerAddress + - receiverAddress + - amount + - resource + - $ref: '#/components/schemas/BaseIntent1' TrxDelegationProperties: title: TRX Delegation Properties allOf: @@ -110261,6 +111824,41 @@ components: receiver address (UnDelegateResourceContract). The undelegatable balance must be sufficient to cover the requested amount. Valid on TRX and TTRX. + TrxUndelegateResourceIntent1: + title: TRX Undelegate Resource Intent + description: | + Undelegates previously delegated TRON ENERGY or BANDWIDTH from the wallet root address. + For TRX (`trx`, `ttrx`) MPC (TSS) wallets only — use with [Create transaction request](/reference/v2wallettxrequestcreate). + allOf: + - type: object + properties: + intentType: + type: string + enum: + - undelegateResource + stakingRequestId: + type: string + ownerAddress: + type: string + description: TRON address that delegated the resources (typically the wallet root address) + receiverAddress: + type: string + description: TRON address from which resources are being undelegated + amount: + $ref: '#/components/schemas/Amount1' + resource: + type: string + enum: + - ENERGY + - BANDWIDTH + required: + - intentType + - stakingRequestId + - ownerAddress + - receiverAddress + - amount + - resource + - $ref: '#/components/schemas/BaseIntent1' TrxUnfreezeIntent: title: TRX Unfreeze Intent allOf: @@ -110413,6 +112011,15 @@ components: $ref: '#/components/schemas/MultisigTypeVersion' defaultWalletVersion: type: number + TxAddress: + type: object + properties: + address: + type: string + options: + type: object + required: + - address TxChannel: title: TxChannel type: object @@ -112307,6 +113914,30 @@ components: required: - intentType - $ref: '#/components/schemas/BaseStakeIntent' + UnstakeIntent1: + title: UnstakeIntent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - unstake + required: + - intentType + - $ref: '#/components/schemas/BaseStakeIntent1' + UnstakeIntent2: + title: Generic Unstake + allOf: + - $ref: '#/components/schemas/BaseStakeIntent2' + - type: object + properties: + intentType: + type: string + enum: + - unstake + required: + - intentType UnstakingDisclaimer: type: object properties: @@ -112558,8 +114189,11 @@ components: withdrawalAttestationRequired: type: boolean description: | - Require withdrawals to be confirmed with the initiator's passkey. Only an enterprise admin of an - enterprise with a single admin can change it; multi-admin enterprises are not supported yet. + Require withdrawals to be confirmed with the initiator's passkey. Only an enterprise admin can + change it. On an enterprise with more than one admin the change needs approval from other admins: + the response is 202 with the pending approval, and the setting changes once it is approved. + In that case it must be the only change in the request: combining it with any other field + returns 400 and nothing is changed. UpdateEnterpriseChallenge: title: UpdateEnterpriseChallenge type: object @@ -115182,6 +116816,113 @@ components: required: - supportedCurrencies - domain + V1EnterpriseUpdateAccepted: + description: | + Legacy enterprise pending approval fields, or `pendingApproval` when a settings change needs approval + from other enterprise admins. + type: object + properties: + id: + $ref: '#/components/schemas/Id' + enterprise: + allOf: + - $ref: '#/components/schemas/Id' + description: The Id of the associated enterprise + walletId: + type: string + example: 1G47mSr3oANXMafVrR8UC4pzV7FEAzo3r9 + description: The base address of the associated wallet + creator: + allOf: + - $ref: '#/components/schemas/Id' + description: The Id of the User that created the Pending Approval + createDate: + type: string + format: date-time + info: + type: object + properties: + type: + type: string + enum: + - bitcoinAddressWhitelistRequest + - userChangeRequest + - policyRuleRequest + - dailyLimitPolicyRequest + - transactionRequest + - tagUpdateRequest + - updateEnterpriseRequest + - updateApprovalsRequiredRequest + updateEnterpriseRequest: + type: object + properties: + action: + type: string + enum: + - add + - remove + permissions: + type: array + items: + $ref: '#/components/schemas/EnterprisePermission' + userId: + allOf: + - $ref: '#/components/schemas/Id' + description: The Id of the User to be added to or removed from the Enterprise + email: + allOf: + - $ref: '#/components/schemas/PlatformEmail' + 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 + pendingApproval: + allOf: + - $ref: '#/components/schemas/PlatformPendingApproval' + description: Set when a settings change needs approval from other enterprise admins V1ErrorPayload: title: V1ErrorPayload type: object @@ -117727,106 +119468,6 @@ components: allOf: - title: V1PatchAccountResponse - $ref: '#/components/schemas/V1AccountResponse' - V1PendingApproval: - type: object - properties: - id: - $ref: '#/components/schemas/Id' - enterprise: - allOf: - - $ref: '#/components/schemas/Id' - description: The Id of the associated enterprise - walletId: - type: string - example: 1G47mSr3oANXMafVrR8UC4pzV7FEAzo3r9 - description: The base address of the associated wallet - creator: - allOf: - - $ref: '#/components/schemas/Id' - description: The Id of the User that created the Pending Approval - createDate: - type: string - format: date-time - info: - type: object - properties: - type: - type: string - enum: - - bitcoinAddressWhitelistRequest - - userChangeRequest - - policyRuleRequest - - dailyLimitPolicyRequest - - transactionRequest - - tagUpdateRequest - - updateEnterpriseRequest - - updateApprovalsRequiredRequest - updateEnterpriseRequest: - type: object - properties: - action: - type: string - enum: - - add - - remove - permissions: - type: array - items: - $ref: '#/components/schemas/EnterprisePermission' - userId: - allOf: - - $ref: '#/components/schemas/Id' - description: The Id of the User to be added to or removed from the Enterprise - email: - allOf: - - $ref: '#/components/schemas/Email' - description: E-Mail address of newly added users - updateApprovalsRequiredRequest: - type: object - properties: - requestedApprovalsRequired: - type: number - minimum: 1 - description: the number of approvalsRequired that should be changed to - state: - type: string - enum: - - pending - - approved - - rejected - walletUserIds: - 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 V1PendingSettlementOutput: title: V1PendingSettlementOutput type: object @@ -121530,6 +123171,22 @@ components: required: - intentType - $ref: '#/components/schemas/BaseIntent' + WalletRecoveryIntent1: + title: Wallet Recovery + type: object + properties: + intentType: + type: string + sequenceId: + type: string + description: | + A `sequenceId` is a unique and arbitrary wallet identifier applied to transfers and transactions at creation. It is optional but highly recommended. With a `sequenceId` you can easily reference transfers and transactions—for example, to safely retry sending. Because BitGo only confirms one send request per `sequenceId` (and fails all subsequent attempts), you can retry sending without the risk of double spending. The `sequenceId` is only visible to users on the wallet and is not shared publicly. It is the responsibility of the caller to keep track of this ID. + example: abc123 + comment: + type: string + description: The `comment` is only visible to users on the wallet and is not shared publicly. + required: + - intentType WalletShare: type: object properties: @@ -123436,6 +125093,40 @@ components: required: - intentType - $ref: '#/components/schemas/BaseStakeIntent' + WithdrawIntent1: + title: WithdrawIntent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - claim + amount: + type: object + properties: + symbol: + type: string + value: + type: string + required: + - symbol + - value + required: + - intentType + - $ref: '#/components/schemas/BaseStakeIntent1' + WithdrawIntent2: + title: Generic claim unstake + allOf: + - $ref: '#/components/schemas/BaseStakeIntent2' + - type: object + properties: + intentType: + type: string + enum: + - claim + required: + - intentType Withdrawal: type: object properties: diff --git a/express-api.yaml b/express-api.yaml index 93be12f..32dfa02 100644 --- a/express-api.yaml +++ b/express-api.yaml @@ -5412,6 +5412,7 @@ components: - $ref: '#/components/schemas/PendingApprovalUpdateApprovalsRequiredRequest' - $ref: '#/components/schemas/PendingApprovalEnterpriseModificationResponse1' - $ref: '#/components/schemas/PendingApprovalEnterpriseInviteRequest' + - $ref: '#/components/schemas/PendingApprovalUpdateEnterpriseSettingRequest' state: $ref: '#/components/schemas/PendingApprovalState1' scope: @@ -5620,6 +5621,7 @@ components: - approved - processing - rejected + - cancelled PendingApprovalTransactionRequest1: title: Transaction request (lite) type: object @@ -5704,6 +5706,28 @@ components: properties: requestedApprovalsRequired: type: number + PendingApprovalUpdateEnterpriseSettingRequest: + title: Update enterprise setting request + type: object + properties: + type: + type: string + enum: + - updateEnterpriseSettingRequest + updateEnterpriseSettingRequest: + type: object + description: Requested enterprise setting changes, keyed by setting name. + properties: + withdrawalAttestationRequired: + type: object + properties: + oldValue: + type: boolean + newValue: + type: boolean + required: + - oldValue + - newValue PendingApprovalUserChangeRequest: title: User change request type: object From 695f7ed71544c1414ce6f6ce7ded26200e71563e Mon Sep 17 00:00:00 2001 From: "dev-portal-updater-protected[bot]" <242026823+dev-portal-updater-protected[bot]@users.noreply.github.com> Date: Wed, 4 Nov 2026 16:34:46 +0000 Subject: [PATCH 2/3] feat: update `bitgo-api-docs` This commit updates the BitGo API. Source-Commit: BitGo/dev-portal@6c155d1d19328ebd732d7bdc350ebd995cf05f53 --- api.yaml | 1877 +++------------------------------------------- express-api.yaml | 28 +- 2 files changed, 105 insertions(+), 1800 deletions(-) diff --git a/api.yaml b/api.yaml index 71e61f4..7350b08 100644 --- a/api.yaml +++ b/api.yaml @@ -720,7 +720,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/V1EnterpriseUpdateAccepted' + $ref: '#/components/schemas/V1PendingApproval' '400': description: Bad Request content: @@ -67229,21 +67229,6 @@ components: description: |- Base codec for acceleration intents. Replaces a stuck pending EVM transaction with a higher-fee version to accelerate confirmation (replace-by-fee). - AccelerationIntent1: - title: AccelerationIntent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - acceleration - txid: - type: string - required: - - intentType - - txid - - $ref: '#/components/schemas/BaseIntent1' AcceptMintAgreementResponse: title: AcceptMintAgreementResponse type: object @@ -67531,19 +67516,6 @@ components: - type: string - type: number description: Override the on-chain nonce for this transaction. - AccountBaseBuildOptions1: - title: AccountBaseBuildOptions - type: object - properties: - nonce: - oneOf: - - type: string - - type: number - AccountBaseBuildOptions2: - type: object - properties: - nonce: - type: string AccountBaseConsolidateIntent: title: AccountBaseConsolidateIntent allOf: @@ -67988,18 +67960,6 @@ components: - poolKeyHash - dRepId - $ref: '#/components/schemas/StakeIntent' - AdaStakeIntent1: - title: Ada Stake - allOf: - - $ref: '#/components/schemas/StakeIntent2' - - type: object - properties: - poolKeyHash: - type: string - description: | - The pool key hash to which the coins will be delegated to. - required: - - poolKeyHash AdaStakingDelegation: title: ADA Staking Delegation allOf: @@ -68218,14 +68178,6 @@ components: $ref: '#/components/schemas/optionalString' option: $ref: '#/components/schemas/optionalUnknownObject' - Address1: - title: Address - type: object - properties: - address: - $ref: '#/components/schemas/optionalString' - option: - $ref: '#/components/schemas/optionalUnknownObject' Address2: type: object properties: @@ -69126,31 +69078,6 @@ components: required: - value - symbol - Amount1: - title: Amount - type: object - properties: - value: - type: string - symbol: - type: string - required: - - value - - symbol - 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 - required: - - value - - symbol Amount3: type: object required: @@ -72943,44 +72870,6 @@ components: description: Override the on-chain nonce for this transaction. required: - intentType - BaseIntent1: - title: Intent - type: object - properties: - intentType: - $ref: '#/components/schemas/IntentType1' - sequenceId: - $ref: '#/components/schemas/optionalString' - comment: - $ref: '#/components/schemas/optionalString' - nonce: - oneOf: - - type: string - - type: number - required: - - intentType - BaseIntent2: - type: object - properties: - intentType: - type: string - sequenceId: - type: string - description: | - A `sequenceId` is a unique and arbitrary wallet identifier applied to transfers and transactions at creation. It is optional but highly recommended. With a `sequenceId` you can easily reference transfers and transactions—for example, to safely retry sending. Because BitGo only confirms one send request per `sequenceId` (and fails all subsequent attempts), you can retry sending without the risk of double spending. The `sequenceId` is only visible to users on the wallet and is not shared publicly. It is the responsibility of the caller to keep track of this ID. - example: abc123 - comment: - type: string - description: The `comment` is only visible to users on the wallet and is not shared publicly. - 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: - - intentType BaseIntentWithAmount: title: BaseIntentWithAmount type: object @@ -73106,18 +72995,6 @@ components: description: Human-readable memo attached to the transaction. required: - intentType - BaseIntentWithoutNonce1: - title: BaseIntentWithoutNonce - type: object - properties: - intentType: - $ref: '#/components/schemas/IntentType1' - sequenceId: - $ref: '#/components/schemas/optionalString' - comment: - $ref: '#/components/schemas/optionalString' - required: - - intentType BaseOAuthSetting: title: BaseOAuthSetting type: object @@ -73193,25 +73070,6 @@ components: required: - stakingRequestId - $ref: '#/components/schemas/BaseIntent' - BaseStakeIntent1: - title: BaseStakeIntent - allOf: - - type: object - properties: - stakingRequestId: - type: string - required: - - stakingRequestId - - $ref: '#/components/schemas/BaseIntent1' - BaseStakeIntent2: - allOf: - - $ref: '#/components/schemas/BaseIntent2' - - type: object - properties: - stakingRequestId: - type: string - required: - - stakingRequestId BaseStakeIntentWithCalldata: title: Base Stake Intent with Calldata allOf: @@ -76615,11 +76473,6 @@ components: required: - type - $ref: '#/components/schemas/BaseShare' - CommitmentType: - type: string - enum: - - commitment - example: commitment ComplianceModel: title: ComplianceModel type: string @@ -76996,30 +76849,6 @@ components: properties: keyDerivationPath: type: string - ConsolidateTokenIntent1: - title: Consolidate Token - allOf: - - $ref: '#/components/schemas/BaseIntent2' - - $ref: '#/components/schemas/EthBuildOptions1' - - type: object - properties: - intentType: - type: string - enum: - - consolidateToken - recipients: - type: array - items: - $ref: '#/components/schemas/RecipientEntry1' - consolidateId: - type: string - description: Consolidation ID of this consolidation transaction - keepAlive: - type: string - description: True, if excluding the minimum-funding amounts in an address during consolidation. - required: - - intentType - - recipients ConsolidateUnspentsRequest: type: object properties: @@ -77338,26 +77167,6 @@ components: Execute a Wasm smart contract on a Cosmos-family chain. Supported on all Cosmos-family chains. The hash chain additionally supports fee-grant via the optional feeGranter field. - CosmosContractCallIntent1: - 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 CosmosLikeClaimRewardsRequestEntityProperties: title: Cosmos-like claim rewards request entity properties allOf: @@ -78623,44 +78432,6 @@ components: 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. - DOTBuildOptions: - allOf: - - $ref: '#/components/schemas/AccountBaseBuildOptions2' - - type: object - properties: - fee: - $ref: '#/components/schemas/DOTFeeOptions' - DOTClaimIntent: - title: Dot Claim Unstake - allOf: - - $ref: '#/components/schemas/DOTBuildOptions' - - $ref: '#/components/schemas/WithdrawIntent2' - 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 DateTime: type: string format: date-time @@ -80126,40 +79897,6 @@ components: required: - amount - $ref: '#/components/schemas/AccountBaseBuildOptions' - DotAccountBaseBuildOptions1: - 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/AccountBaseBuildOptions1' DotAddress: title: Dot Address type: object @@ -80271,20 +80008,6 @@ components: - owner - $ref: '#/components/schemas/PaymentIntent' - $ref: '#/components/schemas/DotAccountBaseBuildOptions' - DotPaymentIntent1: - title: DOT Payment Intent - allOf: - - type: object - properties: - proxy: - $ref: '#/components/schemas/DotProxy' - owner: - $ref: '#/components/schemas/optionalString' - required: - - proxy - - owner - - $ref: '#/components/schemas/PaymentIntent1' - - $ref: '#/components/schemas/DotAccountBaseBuildOptions1' DotProxy: title: DotProxy type: object @@ -80318,24 +80041,6 @@ components: - $ref: '#/components/schemas/StakeIntent' - $ref: '#/components/schemas/DotAccountBaseBuildOptions' - $ref: '#/components/schemas/BaseIntentWithAmount' - DotStakingIntent1: - title: DOT Staking Intent - allOf: - - type: object - properties: - amount: - $ref: '#/components/schemas/Amount1' - stakingProxy: - type: string - addToStake: - $ref: '#/components/schemas/optionalBoolean' - addProxy: - $ref: '#/components/schemas/optionalBoolean' - required: - - amount - - stakingProxy - - $ref: '#/components/schemas/StakeIntent1' - - $ref: '#/components/schemas/DotAccountBaseBuildOptions1' DotStakingRequest: title: DOT allOf: @@ -80403,22 +80108,6 @@ components: - $ref: '#/components/schemas/UnstakeIntent' - $ref: '#/components/schemas/DotAccountBaseBuildOptions' - $ref: '#/components/schemas/BaseIntentWithAmount' - DotUnstakingIntent1: - title: DOT Unstaking Intent - allOf: - - type: object - properties: - amount: - $ref: '#/components/schemas/Amount1' - stakingProxy: - type: string - stopStaking: - $ref: '#/components/schemas/optionalBoolean' - required: - - amount - - stakingProxy - - $ref: '#/components/schemas/UnstakeIntent1' - - $ref: '#/components/schemas/DotAccountBaseBuildOptions1' DotUnstakingTransactionProperties: title: DOT Unstaking Transaction Properties allOf: @@ -80528,18 +80217,6 @@ components: - contractType - contractVersion - userAgreesToTerms - ETHSignMessageIntent: - title: Eth sign message - allOf: - - $ref: '#/components/schemas/BaseIntent2' - - type: object - properties: - intentType: - type: string - enum: - - signMessage - required: - - intentType EcdsaConfig: title: EcdsaConfig type: object @@ -80772,30 +80449,6 @@ components: - intentType - enableTokens - $ref: '#/components/schemas/BaseIntent' - EnableTokenIntent1: - title: EnableTokenIntent - allOf: - - type: object - properties: - intentType: - type: string - 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/BaseIntent1' EncryptedShare: title: EncryptedShare allOf: @@ -81895,19 +81548,6 @@ components: Replace a stuck pending EVM transaction with a higher-fee version to accelerate confirmation. Supply the original transaction's txid and new feeOptions that exceed the original. - EthAccelerationIntent1: - title: ETH Acceleration Intent - allOf: - - type: object - properties: - feeOptions: - oneOf: - - $ref: '#/components/schemas/FeeOption' - - $ref: '#/components/schemas/EIP1559FeeOptions' - required: - - feeOptions - - $ref: '#/components/schemas/AccelerationIntent1' - - $ref: '#/components/schemas/EthBuildOptionsWithoutFeeOptions1' EthBuildOptions: title: EthBuildOptions allOf: @@ -81941,33 +81581,6 @@ components: - $ref: '#/components/schemas/optionalNumber' description: Index of the wallet address to use as the sender. - $ref: '#/components/schemas/AccountBaseBuildOptions' - EthBuildOptions1: - title: EthBuildOptions - allOf: - - type: object - properties: - 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/AccountBaseBuildOptions1' EthBuildOptionsWithoutFeeOptions: title: EthBuildOptionsWithoutFeeOptions allOf: @@ -81996,29 +81609,6 @@ components: - $ref: '#/components/schemas/optionalNumber' description: Index of the wallet address to use as the sender. - $ref: '#/components/schemas/AccountBaseBuildOptions' - EthBuildOptionsWithoutFeeOptions1: - 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/AccountBaseBuildOptions1' EthCommonStakingRequestEntityProperties: title: Common Ethereum staking request entity properties allOf: @@ -82095,18 +81685,6 @@ components: allOf: - $ref: '#/components/schemas/optionalNumber' description: Index of the wallet address to use as the sender. - EthFillNonceBuildOptions1: - 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' EthFillNonceIntent: title: ETH Fill Nonce Intent allOf: @@ -82116,13 +81694,6 @@ components: Submit a zero-value self-send to consume a specific nonce on EVM-compatible chains. Used to unblock transaction queues when a nonce gap has formed. - EthFillNonceIntent1: - title: ETH Fill Nonce Intent - allOf: - - type: object - properties: {} - - $ref: '#/components/schemas/FillNonceIntent1' - - $ref: '#/components/schemas/EthFillNonceBuildOptions1' EthLikeStakeIntent: title: EthLike Stake Intent allOf: @@ -82178,17 +81749,6 @@ components: Transfer ETH or ERC-20 tokens to one or more recipients on EVM-compatible chains. Specify recipients with their address and amount. Optionally override fee settings via feeOptions. - EthPaymentIntent1: - title: ETH Payment Intent - allOf: - - type: object - properties: - selfSend: - $ref: '#/components/schemas/optionalBoolean' - required: - - selfSend - - $ref: '#/components/schemas/PaymentIntent1' - - $ref: '#/components/schemas/EthBuildOptions1' EthStakingDelegation: title: ETH Staking Delegation allOf: @@ -82237,26 +81797,6 @@ components: pre-created staking request from the BitGo staking service. All validator fields (pubkey, withdrawalCredentials, signature, depositDataRoot) are provided by the staking service. - EthStakingIntent1: - 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/StakeIntent1' - - $ref: '#/components/schemas/EthBuildOptions1' EthStakingRequest: title: ETH allOf: @@ -83359,23 +82899,6 @@ components: Base codec for fill-nonce intents. Submits a zero-value self-send to consume a specific nonce on EVM-compatible chains. Used to unblock transaction queues when a nonce gap has formed. - FillNonceIntent1: - title: FillNonceIntent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - fillNonce - nonce: - oneOf: - - type: string - - type: number - required: - - intentType - - nonce - - $ref: '#/components/schemas/BaseIntentWithoutNonce1' FilteringConditions: type: object description: | @@ -87149,13 +86672,6 @@ components: type: string pattern: ^[0-9a-f]{32}$ example: 59cd72485007a239fb00282ed480da1f - IdArray: - type: array - items: - $ref: '#/components/schemas/Id' - example: - - 585951a5df8380e0e3063e9f - - 585951a5df8380e0e304a553 IdVerificationActionRequest: title: BitGo ID Verification type: object @@ -88606,41 +88122,6 @@ components: - export - import - importtoc - IntentType1: - title: IntentType - type: string - enum: - - payment - - transferToken - - consolidate - - consolidateToken - - fanout - - stake - - unstake - - delegate - - undelegate - - switchValidator - - claim - - stakeClaimRewards - - pledge - - vote - - createAccount - - updateAccount - - addTrustLine - - removeTrustLine - - signMessage - - signTypedStructuredData - - enableToken - - authorize - - acceleration - - fillNonce - - walletRecovery - - contractCall - - deactivate - - customTx - - closeAssociatedTokenAccount - - delegateResource - - undelegateResource IntentType11: title: IntentType1 type: string @@ -92007,40 +91488,6 @@ components: type: string maxLength: 100 description: A memo for this specific transaction. This format is only available for Stacks. - Message: - type: object - properties: - coin: - type: string - description: The coin associated with the wallet. - combineSigShare: - type: string - createdDate: - description: The date the message was created. - type: string - format: date-time - messageEncoded: - description: The message encoded as a hex string. - type: string - messageRaw: - description: The message as human readable text. - type: string - 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: - - messageRaw - - state MessageIntent: title: MessageIntent type: object @@ -92359,18 +91806,6 @@ components: required: - recipients - $ref: '#/components/schemas/StakeIntent' - NearStakeIntent1: - title: Near Stake - allOf: - - $ref: '#/components/schemas/StakeIntent2' - - type: object - properties: - recipients: - type: array - items: - $ref: '#/components/schemas/RecipientEntry1' - required: - - recipients NearStakingDelegation: title: NEAR Staking Delegation allOf: @@ -92438,18 +91873,6 @@ components: required: - recipients - $ref: '#/components/schemas/UnstakeIntent' - NearUnstakeIntent1: - title: Near Unstake - allOf: - - $ref: '#/components/schemas/UnstakeIntent2' - - type: object - properties: - recipients: - type: array - items: - $ref: '#/components/schemas/RecipientEntry1' - required: - - recipients NearWallet: title: Near Wallet type: object @@ -92495,18 +91918,6 @@ components: required: - recipients - $ref: '#/components/schemas/WithdrawIntent' - NearWithdrawIntent1: - title: Near Claim Unstake - allOf: - - $ref: '#/components/schemas/WithdrawIntent2' - - type: object - properties: - recipients: - type: array - items: - $ref: '#/components/schemas/RecipientEntry1' - required: - - recipients NetWorth: type: string enum: @@ -95177,33 +94588,6 @@ components: required: - intentType - isTestTransaction - PaymentIntent1: - title: PaymentIntent - allOf: - - type: object - properties: - intent: - type: string - enum: - - payment - recipients: - type: array - items: - type: object - properties: - address: - $ref: '#/components/schemas/Address1' - amount: - $ref: '#/components/schemas/Amount1' - data: - $ref: '#/components/schemas/optionalString' - required: - - address - - amount - required: - - intent - - recipients - - $ref: '#/components/schemas/BaseIntent1' PaymentStatus: title: PaymentStatus type: string @@ -95688,101 +95072,6 @@ components: - info - state - scope - PendingApprovalAddressLabel: - description: Address labels of recipients in this Pending Approval - type: object - properties: - address: - $ref: '#/components/schemas/AddressString3' - label: - $ref: '#/components/schemas/AddressLabel' - walletLabel: - $ref: '#/components/schemas/WalletLabel' - required: - - address - - label - PendingApprovalEnterpriseInviteRequest: - title: Enterprise Invite Request - type: object - properties: - type: - type: string - enum: - - enterpriseInviteRequest - enterpriseInviteRequest: - type: object - properties: - action: - type: string - enum: - - add - email: - 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: - 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: - 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/PlatformEmail' - description: E-Mail address of newly added users - type: - type: string - enum: - - policyRuleRequest PendingApprovalInfo: title: PendingApprovalInfo type: object @@ -96214,39 +95503,6 @@ components: - oldValue required: - type - PendingApprovalPolicyRuleRequest: - title: Policy rule request - type: object - properties: - 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 - enum: - - policyRuleRequest PendingApprovalState: title: PendingApprovalState oneOf: @@ -96297,77 +95553,6 @@ components: - pendingCustodianApproval - pendingManualTrustReview - pendingFraudRiskEvaluation - PendingApprovalTransactionRequest: - title: Transaction request (lite) - type: object - properties: - transactionRequest: - 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/PlatformAddressString' - amount: - $ref: '#/components/schemas/PlatformIntegerOrIntegerString' - data: - type: string - requestedAmount: - $ref: '#/components/schemas/PlatformIntegerOrIntegerString' - sourceWallet: - $ref: '#/components/schemas/Id' - triggeredPolicy: - $ref: '#/components/schemas/Id' - validTransaction: - type: string - validTransactionHash: - type: string - type: - type: string - enum: - - transactionRequest - 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: 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 PendingApprovalType: title: PendingApprovalType type: string @@ -96393,58 +95578,6 @@ components: - skipped - failed - cancelled - PendingApprovalUpdateApprovalsRequiredRequest: - title: Update approvals required request - type: object - properties: - type: - type: string - enum: - - updateApprovalsRequiredRequest - updateApprovalsRequiredRequest: - type: object - properties: - requestedApprovalsRequired: - type: number - PendingApprovalUpdateEnterpriseSettingRequest: - title: Update enterprise setting request - type: object - properties: - type: - type: string - enum: - - updateEnterpriseSettingRequest - updateEnterpriseSettingRequest: - type: object - description: Requested enterprise setting changes, keyed by setting name. - properties: - withdrawalAttestationRequired: - type: object - properties: - oldValue: - type: boolean - newValue: - type: boolean - required: - - oldValue - - newValue - PendingApprovalUserChangeRequest: - title: User change request - type: object - properties: - type: - type: string - enum: - - userChangeRequest - userChangeRequest: - type: object - properties: - action: - type: string - permissions: - type: string - userChanged: - $ref: '#/components/schemas/Id' PendingApprovalsCountSchema: title: PendingApprovalsCountSchema type: object @@ -96600,34 +95733,6 @@ components: - BitGo Mena Fze - BitGo Custody MENA FZE - BitGo India - PlatformCommitmentShare: - 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 - PlatformEmail: - type: string - format: email - example: user@example.com PlatformEnterprise: type: object properties: @@ -96807,12 +95912,6 @@ components: - signature submitted - initiating - additional information submitted - PlatformIntegerOrIntegerString: - oneOf: - - type: string - pattern: ^-?\d+$ - example: '2000000' - - type: integer PlatformIntegerString: type: string pattern: ^-?\d+$ @@ -96863,116 +95962,6 @@ components: enum: - managed - permanent - 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' - - $ref: '#/components/schemas/PendingApprovalUpdateEnterpriseSettingRequest' - 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' - PlatformPendingApprovalState: - anyOf: - - $ref: '#/components/schemas/PlatformPendingApprovalStatePending' - - $ref: '#/components/schemas/PlatformPendingApprovalStateResolved' - PlatformPendingApprovalStatePending: - title: Pending - type: string - enum: - - pending - - awaitingSignature - - pendingFinalApproval - - pendingCustodianApproval - - pendingVideoApproval - - pendingIdVerification - PlatformPendingApprovalStateResolved: - title: Resolved - type: string - enum: - - approved - - processing - - rejected - - cancelled PlatformPolicy: type: object properties: @@ -97020,196 +96009,6 @@ components: - lockDate - type - action - PlatformSignatureShare: - 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 - PlatformTransaction: - type: object - properties: - 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: - $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: - - state - - unsignedTx - PlatformTransactionRequest: - anyOf: - - $ref: '#/components/schemas/PlatformTransactionRequestLite' - - $ref: '#/components/schemas/PlatformTransactionRequestFull' - required: - - txRequestId - - version - - latest - - walletId - - state - - date - - userId - - intent - PlatformTransactionRequestBase: - type: object - properties: - txRequestId: - type: string - description: A unique ID for the TxRequest document across all wallets. The combination of the txRequestId and version will always be unique. - version: - type: number - description: The version of the document. Data changes are done only with inserts and incrementing the version. - latest: - type: boolean - description: A boolean flag that indicates whether the document is the latest version of the TxRequest. - walletId: - type: string - description: The id of the Wallet the TxRequest is for. - walletType: - allOf: - - $ref: '#/components/schemas/WalletTypePublic' - description: The type describes who owns the keys to the wallet associated to the TxRequest. - enterpriseId: - type: string - description: If the wallet that owns the TxRequest is owned by an enterprise then this is the Id of said enterprise. - state: - $ref: '#/components/schemas/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 - description: The Id of the User that produced this version of the TxRequest document. Could have created a new document or updated an existing document. - initiatedBy: - type: string - description: The Id of the User that originally created the TxRequest document (initiated the TxRequest). - updatedBy: - type: string - description: The Id of the User that last updated the TxRequest document. This is an alias for the userId field. - intent: - $ref: '#/components/schemas/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: - - txRequestId - - version - - latest - - walletId - - state - - date - - createdDate - - userId - - initiatedBy - - updatedBy - - intents - PlatformTransactionRequestFull: - title: Full - allOf: - - $ref: '#/components/schemas/PlatformTransactionRequestBase' - - type: object - properties: - transactions: - description: Transaction information. - type: array - items: - $ref: '#/components/schemas/PlatformTransaction' - messages: - description: Messages for the transaction request. - type: array - items: - $ref: '#/components/schemas/Message' - required: - - txRequestId - - version - - latest - - walletId - - state - - date - - userId - - intent - - transactions - PlatformTransactionRequestLite: - title: Lite - allOf: - - $ref: '#/components/schemas/PlatformTransactionRequestBase' - - type: object - properties: - unsignedTxs: - type: array - description: Holds all unsigned transactions that will be used to fulfill the TxRequest for MPC wallets. - items: - $ref: '#/components/schemas/TransactionRequestUnsignedTransaction' - signatureShares: - type: array - description: Only used for MPC coins. This is used to collect signature shares from and exchange them with the user. - items: - $ref: '#/components/schemas/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: - - txRequestId - - version - - latest - - walletId - - state - - date - - userId - - intent PlatformTransactionRequestState: type: string enum: @@ -99135,20 +97934,6 @@ components: required: - address - amount - RecipientEntry1: - type: object - properties: - address: - $ref: '#/components/schemas/TxAddress' - amount: - $ref: '#/components/schemas/Amount2' - data: - type: string - tokenData: - $ref: '#/components/schemas/TokenData1' - required: - - address - - amount RecommendationActionEntry: type: object description: An action entry in the recommendation template. @@ -102571,16 +101356,6 @@ components: `closeAssociatedTokenAccount` intents) may normalize a missing `memo` to `""` before validation so stored objects match this shape. Other Sol flows should send `memo` or apply the same normalization if they share this path. - SolBuildOptions1: - title: SolBuildOptions - allOf: - - type: object - properties: - memo: - $ref: '#/components/schemas/optionalString' - required: - - memo - - $ref: '#/components/schemas/AccountBaseBuildOptions1' SolClaimIntent: title: SOL Claim Intent allOf: @@ -102595,20 +101370,6 @@ components: - $ref: '#/components/schemas/SolBuildOptions' - $ref: '#/components/schemas/BaseIntentWithAmount' description: Withdraw the balance from a deactivated SOL stake account back to the wallet on Solana. The stake account must have been deactivated (unstaked) before claiming. Spending policy is not evaluated for this intent. - SolClaimIntent1: - title: SOL Claim Intent - allOf: - - type: object - properties: - stakingAddress: - type: string - amount: - $ref: '#/components/schemas/Amount1' - required: - - stakingAddress - - amount - - $ref: '#/components/schemas/WithdrawIntent1' - - $ref: '#/components/schemas/SolBuildOptions1' SolClaimRewardsRequestPOSTBody: title: Solana (SOL) Claim Rewards Request type: object @@ -102635,25 +101396,6 @@ components: - $ref: '#/components/schemas/BaseIntent' - $ref: '#/components/schemas/SolBuildOptions' description: Close one or more zero-balance SPL Associated Token Accounts (ATAs) on Solana and recover their rent lamports to the wallet root address. All ATAs must have a zero token balance (consolidate tokens first), share the same on-chain owner, and be owned by this wallet. Maximum 27 distinct ATAs per transaction. Spending policy is not evaluated for this intent. - SolCloseAssociatedTokenAccountIntent1: - title: SOL Close Associated Token Account Intent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - closeAssociatedTokenAccount - recipients: - type: array - minItems: 1 - items: - $ref: '#/components/schemas/RecipientEntry1' - required: - - intentType - - recipients - - $ref: '#/components/schemas/BaseIntent1' - - $ref: '#/components/schemas/SolBuildOptions1' SolConsolidateIntent: title: SOL Consolidate Intent allOf: @@ -102665,13 +101407,6 @@ components: - $ref: '#/components/schemas/EnableTokenIntent' - $ref: '#/components/schemas/SolBuildOptions' description: Initialize one or more Associated Token Accounts (ATAs) on Solana so the wallet can receive SPL tokens. All entries in enableTokens must target the same wallet address, unless they are confidential-transfer tokens whose mints carry the ConfidentialTransferMint extension. Those are enabled per address — one ConfigureAccount transaction per address — so entries may target different addresses. Spending policy is not evaluated for this intent. - SolCreateAssociatedTokenAccountIntent1: - title: SOL Create Associated Token Account Intent - allOf: - - type: object - properties: {} - - $ref: '#/components/schemas/EnableTokenIntent1' - - $ref: '#/components/schemas/SolBuildOptions1' SolCustomTxIntent: title: SOL Custom Transaction Intent allOf: @@ -102862,20 +101597,6 @@ components: - $ref: '#/components/schemas/SolBuildOptions' - $ref: '#/components/schemas/BaseIntentWithAmount' description: Stake SOL to a validator on Solana by creating a new stake account. The platform generates an ephemeral keypair for the stake account and whitelists it on the wallet. Requires the enterprise to have staking permissions. Supports native, Marinade liquid, and Jito staking via the stakingType field. - SolStakeIntent1: - title: SOL Stake Intent - allOf: - - type: object - properties: - validatorAddress: - type: string - amount: - $ref: '#/components/schemas/Amount1' - required: - - validatorAddress - - amount - - $ref: '#/components/schemas/StakeIntent1' - - $ref: '#/components/schemas/SolBuildOptions1' SolStakingDelegation: title: SOL Staking Delegation allOf: @@ -103045,37 +101766,6 @@ components: - $ref: '#/components/schemas/UnstakeIntent' - $ref: '#/components/schemas/SolBuildOptions' description: Begin deactivating a SOL stake account on Solana. For native staking, the stake account enters a cooldown period before funds can be claimed. For partial unstakes, provide both amount and remainingStakingAmount to split the stake account. Supports native, Marinade liquid, and Jito staking via the stakingType field. Requires the enterprise to have staking permissions. - SolUnstakeIntent1: - 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/UnstakeIntent1' - - $ref: '#/components/schemas/SolBuildOptions1' SolVersionMarker: title: SolVersionMarker type: object @@ -103541,29 +102231,6 @@ components: required: - intentType - $ref: '#/components/schemas/BaseStakeIntent' - StakeIntent1: - title: StakeIntent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - stake - required: - - intentType - - $ref: '#/components/schemas/BaseStakeIntent1' - StakeIntent2: - allOf: - - $ref: '#/components/schemas/BaseStakeIntent2' - - type: object - properties: - intentType: - type: string - enum: - - stake - required: - - intentType StakePoolEpochData: type: object properties: @@ -107018,33 +105685,6 @@ components: - $ref: '#/components/schemas/TokenRecipientEntryItem' - $ref: '#/components/schemas/SupportedTokenRecipientEntryItem' - $ref: '#/components/schemas/UnsupportedTokenRecipientEntryItem' - TokenData1: - type: object - properties: - tokenType: - type: string - description: The type of standard of the token. - example: ERC721 - tokenQuantity: - type: string - description: The quantity of token to transfer (should be 1 for ERC721). - example: '101' - tokenContractAddress: - type: string - description: Address of the token contract which is necessary if the token is not supported on WP. - example: '0x3d8e90d5F403a0A18dfeeAd36E30EF95D5E1ad3a' - tokenName: - type: string - description: Name of the token as it is supported on WP. - example: tpolygon:name - tokenId: - type: string - description: Id of the token to be transferred which is required for NFTs. - example: '123' - decimalPlaces: - type: number - description: Number of decimal places the token uses (for fungible tokens unsupported in WP). - example: 18 TokenLimits: title: TokenLimits type: object @@ -108420,34 +107060,6 @@ components: example: 123e4567-e89b-12d3-a456-426614174000 minLength: 1 format: uuid - TransactionRequestIntent: - anyOf: - - $ref: '#/components/schemas/AdaStakeIntent1' - - $ref: '#/components/schemas/ConsolidateTokenIntent1' - - $ref: '#/components/schemas/CosmosContractCallIntent1' - - $ref: '#/components/schemas/DOTClaimIntent' - - $ref: '#/components/schemas/DotPaymentIntent1' - - $ref: '#/components/schemas/DotStakingIntent1' - - $ref: '#/components/schemas/DotUnstakingIntent1' - - $ref: '#/components/schemas/EthAccelerationIntent1' - - $ref: '#/components/schemas/EthFillNonceIntent1' - - $ref: '#/components/schemas/EthPaymentIntent1' - - $ref: '#/components/schemas/ETHSignMessageIntent' - - $ref: '#/components/schemas/EthStakingIntent1' - - $ref: '#/components/schemas/NearStakeIntent1' - - $ref: '#/components/schemas/NearUnstakeIntent1' - - $ref: '#/components/schemas/NearWithdrawIntent1' - - $ref: '#/components/schemas/SolClaimIntent1' - - $ref: '#/components/schemas/SolCloseAssociatedTokenAccountIntent1' - - $ref: '#/components/schemas/SolCreateAssociatedTokenAccountIntent1' - - $ref: '#/components/schemas/SolStakeIntent1' - - $ref: '#/components/schemas/SolUnstakeIntent1' - - $ref: '#/components/schemas/TransferTokenIntent1' - - $ref: '#/components/schemas/TrxDelegateResourceIntent1' - - $ref: '#/components/schemas/TrxUndelegateResourceIntent1' - - $ref: '#/components/schemas/UnstakeIntent2' - - $ref: '#/components/schemas/WalletRecoveryIntent1' - - $ref: '#/components/schemas/WithdrawIntent2' TransactionRequestLite: title: TransactionRequestLite allOf: @@ -108581,111 +107193,6 @@ components: - canceled - rejected - failed - 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 TransactionResponse1: title: TransactionResponse type: object @@ -111010,20 +109517,6 @@ components: - intentType - $ref: '#/components/schemas/BaseIntent' - $ref: '#/components/schemas/BaseIntentWithTokenRecipients' - TransferTokenIntent1: - title: Transfer Token - allOf: - - $ref: '#/components/schemas/BaseIntent2' - - type: object - properties: - intentType: - type: string - enum: - - transferToken - recipients: - type: array - items: - $ref: '#/components/schemas/RecipientEntry1' TransferType2: title: TransferType type: string @@ -111614,42 +110107,6 @@ components: (DelegateResourceContract). The owner must have sufficient staked resources; the receiver address must be an active Tron account; and the amount must be at least 1 TRX (1,000,000 sun). Valid on TRX and TTRX. - TrxDelegateResourceIntent1: - title: TRX Delegate Resource Intent - description: | - Delegates TRON ENERGY or BANDWIDTH from the wallet root address to a receiver address. - For TRX (`trx`, `ttrx`) MPC (TSS) wallets only — use with [Create transaction request](/reference/v2wallettxrequestcreate). - Minimum delegation amount is 1 TRX (1,000,000 sun). - allOf: - - type: object - properties: - intentType: - type: string - enum: - - delegateResource - stakingRequestId: - type: string - ownerAddress: - type: string - description: TRON address delegating resources (typically the wallet root address) - receiverAddress: - type: string - description: TRON address receiving the delegated ENERGY or BANDWIDTH - amount: - $ref: '#/components/schemas/Amount1' - resource: - type: string - enum: - - ENERGY - - BANDWIDTH - required: - - intentType - - stakingRequestId - - ownerAddress - - receiverAddress - - amount - - resource - - $ref: '#/components/schemas/BaseIntent1' TrxDelegationProperties: title: TRX Delegation Properties allOf: @@ -111824,41 +110281,6 @@ components: receiver address (UnDelegateResourceContract). The undelegatable balance must be sufficient to cover the requested amount. Valid on TRX and TTRX. - TrxUndelegateResourceIntent1: - title: TRX Undelegate Resource Intent - description: | - Undelegates previously delegated TRON ENERGY or BANDWIDTH from the wallet root address. - For TRX (`trx`, `ttrx`) MPC (TSS) wallets only — use with [Create transaction request](/reference/v2wallettxrequestcreate). - allOf: - - type: object - properties: - intentType: - type: string - enum: - - undelegateResource - stakingRequestId: - type: string - ownerAddress: - type: string - description: TRON address that delegated the resources (typically the wallet root address) - receiverAddress: - type: string - description: TRON address from which resources are being undelegated - amount: - $ref: '#/components/schemas/Amount1' - resource: - type: string - enum: - - ENERGY - - BANDWIDTH - required: - - intentType - - stakingRequestId - - ownerAddress - - receiverAddress - - amount - - resource - - $ref: '#/components/schemas/BaseIntent1' TrxUnfreezeIntent: title: TRX Unfreeze Intent allOf: @@ -112011,15 +110433,6 @@ components: $ref: '#/components/schemas/MultisigTypeVersion' defaultWalletVersion: type: number - TxAddress: - type: object - properties: - address: - type: string - options: - type: object - required: - - address TxChannel: title: TxChannel type: object @@ -113914,30 +112327,6 @@ components: required: - intentType - $ref: '#/components/schemas/BaseStakeIntent' - UnstakeIntent1: - title: UnstakeIntent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - unstake - required: - - intentType - - $ref: '#/components/schemas/BaseStakeIntent1' - UnstakeIntent2: - title: Generic Unstake - allOf: - - $ref: '#/components/schemas/BaseStakeIntent2' - - type: object - properties: - intentType: - type: string - enum: - - unstake - required: - - intentType UnstakingDisclaimer: type: object properties: @@ -114189,11 +112578,8 @@ components: withdrawalAttestationRequired: type: boolean description: | - Require withdrawals to be confirmed with the initiator's passkey. Only an enterprise admin can - change it. On an enterprise with more than one admin the change needs approval from other admins: - the response is 202 with the pending approval, and the setting changes once it is approved. - In that case it must be the only change in the request: combining it with any other field - returns 400 and nothing is changed. + Require withdrawals to be confirmed with the initiator's passkey. Only an enterprise admin of an + enterprise with a single admin can change it; multi-admin enterprises are not supported yet. UpdateEnterpriseChallenge: title: UpdateEnterpriseChallenge type: object @@ -116816,113 +115202,6 @@ components: required: - supportedCurrencies - domain - V1EnterpriseUpdateAccepted: - description: | - Legacy enterprise pending approval fields, or `pendingApproval` when a settings change needs approval - from other enterprise admins. - type: object - properties: - id: - $ref: '#/components/schemas/Id' - enterprise: - allOf: - - $ref: '#/components/schemas/Id' - description: The Id of the associated enterprise - walletId: - type: string - example: 1G47mSr3oANXMafVrR8UC4pzV7FEAzo3r9 - description: The base address of the associated wallet - creator: - allOf: - - $ref: '#/components/schemas/Id' - description: The Id of the User that created the Pending Approval - createDate: - type: string - format: date-time - info: - type: object - properties: - type: - type: string - enum: - - bitcoinAddressWhitelistRequest - - userChangeRequest - - policyRuleRequest - - dailyLimitPolicyRequest - - transactionRequest - - tagUpdateRequest - - updateEnterpriseRequest - - updateApprovalsRequiredRequest - updateEnterpriseRequest: - type: object - properties: - action: - type: string - enum: - - add - - remove - permissions: - type: array - items: - $ref: '#/components/schemas/EnterprisePermission' - userId: - allOf: - - $ref: '#/components/schemas/Id' - description: The Id of the User to be added to or removed from the Enterprise - email: - allOf: - - $ref: '#/components/schemas/PlatformEmail' - 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 - pendingApproval: - allOf: - - $ref: '#/components/schemas/PlatformPendingApproval' - description: Set when a settings change needs approval from other enterprise admins V1ErrorPayload: title: V1ErrorPayload type: object @@ -119468,6 +117747,106 @@ components: allOf: - title: V1PatchAccountResponse - $ref: '#/components/schemas/V1AccountResponse' + V1PendingApproval: + type: object + properties: + id: + $ref: '#/components/schemas/Id' + enterprise: + allOf: + - $ref: '#/components/schemas/Id' + description: The Id of the associated enterprise + walletId: + type: string + example: 1G47mSr3oANXMafVrR8UC4pzV7FEAzo3r9 + description: The base address of the associated wallet + creator: + allOf: + - $ref: '#/components/schemas/Id' + description: The Id of the User that created the Pending Approval + createDate: + type: string + format: date-time + info: + type: object + properties: + type: + type: string + enum: + - bitcoinAddressWhitelistRequest + - userChangeRequest + - policyRuleRequest + - dailyLimitPolicyRequest + - transactionRequest + - tagUpdateRequest + - updateEnterpriseRequest + - updateApprovalsRequiredRequest + updateEnterpriseRequest: + type: object + properties: + action: + type: string + enum: + - add + - remove + permissions: + type: array + items: + $ref: '#/components/schemas/EnterprisePermission' + userId: + allOf: + - $ref: '#/components/schemas/Id' + description: The Id of the User to be added to or removed from the Enterprise + email: + allOf: + - $ref: '#/components/schemas/Email' + description: E-Mail address of newly added users + updateApprovalsRequiredRequest: + type: object + properties: + requestedApprovalsRequired: + type: number + minimum: 1 + description: the number of approvalsRequired that should be changed to + state: + type: string + enum: + - pending + - approved + - rejected + walletUserIds: + 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 V1PendingSettlementOutput: title: V1PendingSettlementOutput type: object @@ -123171,22 +121550,6 @@ components: required: - intentType - $ref: '#/components/schemas/BaseIntent' - WalletRecoveryIntent1: - title: Wallet Recovery - type: object - properties: - intentType: - type: string - sequenceId: - type: string - description: | - A `sequenceId` is a unique and arbitrary wallet identifier applied to transfers and transactions at creation. It is optional but highly recommended. With a `sequenceId` you can easily reference transfers and transactions—for example, to safely retry sending. Because BitGo only confirms one send request per `sequenceId` (and fails all subsequent attempts), you can retry sending without the risk of double spending. The `sequenceId` is only visible to users on the wallet and is not shared publicly. It is the responsibility of the caller to keep track of this ID. - example: abc123 - comment: - type: string - description: The `comment` is only visible to users on the wallet and is not shared publicly. - required: - - intentType WalletShare: type: object properties: @@ -125093,40 +123456,6 @@ components: required: - intentType - $ref: '#/components/schemas/BaseStakeIntent' - WithdrawIntent1: - title: WithdrawIntent - allOf: - - type: object - properties: - intentType: - type: string - enum: - - claim - amount: - type: object - properties: - symbol: - type: string - value: - type: string - required: - - symbol - - value - required: - - intentType - - $ref: '#/components/schemas/BaseStakeIntent1' - WithdrawIntent2: - title: Generic claim unstake - allOf: - - $ref: '#/components/schemas/BaseStakeIntent2' - - type: object - properties: - intentType: - type: string - enum: - - claim - required: - - intentType Withdrawal: type: object properties: diff --git a/express-api.yaml b/express-api.yaml index 32dfa02..4a35aae 100644 --- a/express-api.yaml +++ b/express-api.yaml @@ -5412,7 +5412,6 @@ components: - $ref: '#/components/schemas/PendingApprovalUpdateApprovalsRequiredRequest' - $ref: '#/components/schemas/PendingApprovalEnterpriseModificationResponse1' - $ref: '#/components/schemas/PendingApprovalEnterpriseInviteRequest' - - $ref: '#/components/schemas/PendingApprovalUpdateEnterpriseSettingRequest' state: $ref: '#/components/schemas/PendingApprovalState1' scope: @@ -5603,7 +5602,7 @@ components: PendingApprovalState1: anyOf: - $ref: '#/components/schemas/PendingApprovalStatePending1' - - $ref: '#/components/schemas/PendingApprovalStateResolved' + - $ref: '#/components/schemas/PendingApprovalStateResolved1' PendingApprovalStatePending1: title: Pending type: string @@ -5614,14 +5613,13 @@ components: - pendingCustodianApproval - pendingVideoApproval - pendingIdVerification - PendingApprovalStateResolved: + PendingApprovalStateResolved1: title: Resolved type: string enum: - approved - processing - rejected - - cancelled PendingApprovalTransactionRequest1: title: Transaction request (lite) type: object @@ -5706,28 +5704,6 @@ components: properties: requestedApprovalsRequired: type: number - PendingApprovalUpdateEnterpriseSettingRequest: - title: Update enterprise setting request - type: object - properties: - type: - type: string - enum: - - updateEnterpriseSettingRequest - updateEnterpriseSettingRequest: - type: object - description: Requested enterprise setting changes, keyed by setting name. - properties: - withdrawalAttestationRequired: - type: object - properties: - oldValue: - type: boolean - newValue: - type: boolean - required: - - oldValue - - newValue PendingApprovalUserChangeRequest: title: User change request type: object From 4347b522384394cb883ae8ff35ae43fb970cb327 Mon Sep 17 00:00:00 2001 From: "dev-portal-updater-protected[bot]" <242026823+dev-portal-updater-protected[bot]@users.noreply.github.com> Date: Wed, 4 Nov 2026 16:35:44 +0000 Subject: [PATCH 3/3] feat: update `bitgo-api-docs` This commit updates the BitGo API. Source-Commit: BitGo/dev-portal@2c7b48e0016effb37166c7e0574ee5d1b423f7fc --- api.yaml | 1910 +++++++++++++++++++++++++++++++++++++++++++--- express-api.yaml | 28 +- 2 files changed, 1833 insertions(+), 105 deletions(-) diff --git a/api.yaml b/api.yaml index 7350b08..732fa7f 100644 --- a/api.yaml +++ b/api.yaml @@ -720,7 +720,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/V1PendingApproval' + $ref: '#/components/schemas/V1EnterpriseUpdateAccepted' '400': description: Bad Request content: @@ -13755,6 +13755,17 @@ paths: type: string required: - error + '401': + description: '401' + content: + application/json: + schema: + type: object + properties: + error: + type: string + required: + - error '404': description: '404' content: @@ -13928,6 +13939,17 @@ paths: type: string required: - error + '401': + description: '401' + content: + application/json: + schema: + type: object + properties: + error: + type: string + required: + - error '404': description: '404' content: @@ -14130,6 +14152,17 @@ paths: type: string required: - error + '401': + description: '401' + content: + application/json: + schema: + type: object + properties: + error: + type: string + required: + - error '404': description: '404' content: @@ -67229,6 +67262,21 @@ components: description: |- Base codec for acceleration intents. Replaces a stuck pending EVM transaction with a higher-fee version to accelerate confirmation (replace-by-fee). + AccelerationIntent1: + title: AccelerationIntent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - acceleration + txid: + type: string + required: + - intentType + - txid + - $ref: '#/components/schemas/BaseIntent1' AcceptMintAgreementResponse: title: AcceptMintAgreementResponse type: object @@ -67516,6 +67564,19 @@ components: - type: string - type: number description: Override the on-chain nonce for this transaction. + AccountBaseBuildOptions1: + title: AccountBaseBuildOptions + type: object + properties: + nonce: + oneOf: + - type: string + - type: number + AccountBaseBuildOptions2: + type: object + properties: + nonce: + type: string AccountBaseConsolidateIntent: title: AccountBaseConsolidateIntent allOf: @@ -67960,6 +68021,18 @@ components: - poolKeyHash - dRepId - $ref: '#/components/schemas/StakeIntent' + AdaStakeIntent1: + title: Ada Stake + allOf: + - $ref: '#/components/schemas/StakeIntent2' + - type: object + properties: + poolKeyHash: + type: string + description: | + The pool key hash to which the coins will be delegated to. + required: + - poolKeyHash AdaStakingDelegation: title: ADA Staking Delegation allOf: @@ -68178,6 +68251,14 @@ components: $ref: '#/components/schemas/optionalString' option: $ref: '#/components/schemas/optionalUnknownObject' + Address1: + title: Address + type: object + properties: + address: + $ref: '#/components/schemas/optionalString' + option: + $ref: '#/components/schemas/optionalUnknownObject' Address2: type: object properties: @@ -69078,6 +69159,31 @@ components: required: - value - symbol + Amount1: + title: Amount + type: object + properties: + value: + type: string + symbol: + type: string + required: + - value + - symbol + 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 + required: + - value + - symbol Amount3: type: object required: @@ -72870,6 +72976,44 @@ components: description: Override the on-chain nonce for this transaction. required: - intentType + BaseIntent1: + title: Intent + type: object + properties: + intentType: + $ref: '#/components/schemas/IntentType1' + sequenceId: + $ref: '#/components/schemas/optionalString' + comment: + $ref: '#/components/schemas/optionalString' + nonce: + oneOf: + - type: string + - type: number + required: + - intentType + BaseIntent2: + type: object + properties: + intentType: + type: string + sequenceId: + type: string + description: | + A `sequenceId` is a unique and arbitrary wallet identifier applied to transfers and transactions at creation. It is optional but highly recommended. With a `sequenceId` you can easily reference transfers and transactions—for example, to safely retry sending. Because BitGo only confirms one send request per `sequenceId` (and fails all subsequent attempts), you can retry sending without the risk of double spending. The `sequenceId` is only visible to users on the wallet and is not shared publicly. It is the responsibility of the caller to keep track of this ID. + example: abc123 + comment: + type: string + description: The `comment` is only visible to users on the wallet and is not shared publicly. + 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: + - intentType BaseIntentWithAmount: title: BaseIntentWithAmount type: object @@ -72995,6 +73139,18 @@ components: description: Human-readable memo attached to the transaction. required: - intentType + BaseIntentWithoutNonce1: + title: BaseIntentWithoutNonce + type: object + properties: + intentType: + $ref: '#/components/schemas/IntentType1' + sequenceId: + $ref: '#/components/schemas/optionalString' + comment: + $ref: '#/components/schemas/optionalString' + required: + - intentType BaseOAuthSetting: title: BaseOAuthSetting type: object @@ -73070,6 +73226,25 @@ components: required: - stakingRequestId - $ref: '#/components/schemas/BaseIntent' + BaseStakeIntent1: + title: BaseStakeIntent + allOf: + - type: object + properties: + stakingRequestId: + type: string + required: + - stakingRequestId + - $ref: '#/components/schemas/BaseIntent1' + BaseStakeIntent2: + allOf: + - $ref: '#/components/schemas/BaseIntent2' + - type: object + properties: + stakingRequestId: + type: string + required: + - stakingRequestId BaseStakeIntentWithCalldata: title: Base Stake Intent with Calldata allOf: @@ -76473,6 +76648,11 @@ components: required: - type - $ref: '#/components/schemas/BaseShare' + CommitmentType: + type: string + enum: + - commitment + example: commitment ComplianceModel: title: ComplianceModel type: string @@ -76849,6 +77029,30 @@ components: properties: keyDerivationPath: type: string + ConsolidateTokenIntent1: + title: Consolidate Token + allOf: + - $ref: '#/components/schemas/BaseIntent2' + - $ref: '#/components/schemas/EthBuildOptions1' + - type: object + properties: + intentType: + type: string + enum: + - consolidateToken + recipients: + type: array + items: + $ref: '#/components/schemas/RecipientEntry1' + consolidateId: + type: string + description: Consolidation ID of this consolidation transaction + keepAlive: + type: string + description: True, if excluding the minimum-funding amounts in an address during consolidation. + required: + - intentType + - recipients ConsolidateUnspentsRequest: type: object properties: @@ -77167,6 +77371,26 @@ components: Execute a Wasm smart contract on a Cosmos-family chain. Supported on all Cosmos-family chains. The hash chain additionally supports fee-grant via the optional feeGranter field. + CosmosContractCallIntent1: + 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 CosmosLikeClaimRewardsRequestEntityProperties: title: Cosmos-like claim rewards request entity properties allOf: @@ -78432,6 +78656,44 @@ components: 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. + DOTBuildOptions: + allOf: + - $ref: '#/components/schemas/AccountBaseBuildOptions2' + - type: object + properties: + fee: + $ref: '#/components/schemas/DOTFeeOptions' + DOTClaimIntent: + title: Dot Claim Unstake + allOf: + - $ref: '#/components/schemas/DOTBuildOptions' + - $ref: '#/components/schemas/WithdrawIntent2' + 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 DateTime: type: string format: date-time @@ -79897,6 +80159,40 @@ components: required: - amount - $ref: '#/components/schemas/AccountBaseBuildOptions' + DotAccountBaseBuildOptions1: + 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/AccountBaseBuildOptions1' DotAddress: title: Dot Address type: object @@ -80008,6 +80304,20 @@ components: - owner - $ref: '#/components/schemas/PaymentIntent' - $ref: '#/components/schemas/DotAccountBaseBuildOptions' + DotPaymentIntent1: + title: DOT Payment Intent + allOf: + - type: object + properties: + proxy: + $ref: '#/components/schemas/DotProxy' + owner: + $ref: '#/components/schemas/optionalString' + required: + - proxy + - owner + - $ref: '#/components/schemas/PaymentIntent1' + - $ref: '#/components/schemas/DotAccountBaseBuildOptions1' DotProxy: title: DotProxy type: object @@ -80041,6 +80351,24 @@ components: - $ref: '#/components/schemas/StakeIntent' - $ref: '#/components/schemas/DotAccountBaseBuildOptions' - $ref: '#/components/schemas/BaseIntentWithAmount' + DotStakingIntent1: + title: DOT Staking Intent + allOf: + - type: object + properties: + amount: + $ref: '#/components/schemas/Amount1' + stakingProxy: + type: string + addToStake: + $ref: '#/components/schemas/optionalBoolean' + addProxy: + $ref: '#/components/schemas/optionalBoolean' + required: + - amount + - stakingProxy + - $ref: '#/components/schemas/StakeIntent1' + - $ref: '#/components/schemas/DotAccountBaseBuildOptions1' DotStakingRequest: title: DOT allOf: @@ -80108,6 +80436,22 @@ components: - $ref: '#/components/schemas/UnstakeIntent' - $ref: '#/components/schemas/DotAccountBaseBuildOptions' - $ref: '#/components/schemas/BaseIntentWithAmount' + DotUnstakingIntent1: + title: DOT Unstaking Intent + allOf: + - type: object + properties: + amount: + $ref: '#/components/schemas/Amount1' + stakingProxy: + type: string + stopStaking: + $ref: '#/components/schemas/optionalBoolean' + required: + - amount + - stakingProxy + - $ref: '#/components/schemas/UnstakeIntent1' + - $ref: '#/components/schemas/DotAccountBaseBuildOptions1' DotUnstakingTransactionProperties: title: DOT Unstaking Transaction Properties allOf: @@ -80217,6 +80561,18 @@ components: - contractType - contractVersion - userAgreesToTerms + ETHSignMessageIntent: + title: Eth sign message + allOf: + - $ref: '#/components/schemas/BaseIntent2' + - type: object + properties: + intentType: + type: string + enum: + - signMessage + required: + - intentType EcdsaConfig: title: EcdsaConfig type: object @@ -80449,6 +80805,30 @@ components: - intentType - enableTokens - $ref: '#/components/schemas/BaseIntent' + EnableTokenIntent1: + title: EnableTokenIntent + allOf: + - type: object + properties: + intentType: + type: string + 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/BaseIntent1' EncryptedShare: title: EncryptedShare allOf: @@ -81548,6 +81928,19 @@ components: Replace a stuck pending EVM transaction with a higher-fee version to accelerate confirmation. Supply the original transaction's txid and new feeOptions that exceed the original. + EthAccelerationIntent1: + title: ETH Acceleration Intent + allOf: + - type: object + properties: + feeOptions: + oneOf: + - $ref: '#/components/schemas/FeeOption' + - $ref: '#/components/schemas/EIP1559FeeOptions' + required: + - feeOptions + - $ref: '#/components/schemas/AccelerationIntent1' + - $ref: '#/components/schemas/EthBuildOptionsWithoutFeeOptions1' EthBuildOptions: title: EthBuildOptions allOf: @@ -81581,6 +81974,33 @@ components: - $ref: '#/components/schemas/optionalNumber' description: Index of the wallet address to use as the sender. - $ref: '#/components/schemas/AccountBaseBuildOptions' + EthBuildOptions1: + title: EthBuildOptions + allOf: + - type: object + properties: + 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/AccountBaseBuildOptions1' EthBuildOptionsWithoutFeeOptions: title: EthBuildOptionsWithoutFeeOptions allOf: @@ -81609,6 +82029,29 @@ components: - $ref: '#/components/schemas/optionalNumber' description: Index of the wallet address to use as the sender. - $ref: '#/components/schemas/AccountBaseBuildOptions' + EthBuildOptionsWithoutFeeOptions1: + 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/AccountBaseBuildOptions1' EthCommonStakingRequestEntityProperties: title: Common Ethereum staking request entity properties allOf: @@ -81685,6 +82128,18 @@ components: allOf: - $ref: '#/components/schemas/optionalNumber' description: Index of the wallet address to use as the sender. + EthFillNonceBuildOptions1: + 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' EthFillNonceIntent: title: ETH Fill Nonce Intent allOf: @@ -81694,6 +82149,13 @@ components: Submit a zero-value self-send to consume a specific nonce on EVM-compatible chains. Used to unblock transaction queues when a nonce gap has formed. + EthFillNonceIntent1: + title: ETH Fill Nonce Intent + allOf: + - type: object + properties: {} + - $ref: '#/components/schemas/FillNonceIntent1' + - $ref: '#/components/schemas/EthFillNonceBuildOptions1' EthLikeStakeIntent: title: EthLike Stake Intent allOf: @@ -81749,6 +82211,17 @@ components: Transfer ETH or ERC-20 tokens to one or more recipients on EVM-compatible chains. Specify recipients with their address and amount. Optionally override fee settings via feeOptions. + EthPaymentIntent1: + title: ETH Payment Intent + allOf: + - type: object + properties: + selfSend: + $ref: '#/components/schemas/optionalBoolean' + required: + - selfSend + - $ref: '#/components/schemas/PaymentIntent1' + - $ref: '#/components/schemas/EthBuildOptions1' EthStakingDelegation: title: ETH Staking Delegation allOf: @@ -81797,6 +82270,26 @@ components: pre-created staking request from the BitGo staking service. All validator fields (pubkey, withdrawalCredentials, signature, depositDataRoot) are provided by the staking service. + EthStakingIntent1: + 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/StakeIntent1' + - $ref: '#/components/schemas/EthBuildOptions1' EthStakingRequest: title: ETH allOf: @@ -82899,6 +83392,23 @@ components: Base codec for fill-nonce intents. Submits a zero-value self-send to consume a specific nonce on EVM-compatible chains. Used to unblock transaction queues when a nonce gap has formed. + FillNonceIntent1: + title: FillNonceIntent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - fillNonce + nonce: + oneOf: + - type: string + - type: number + required: + - intentType + - nonce + - $ref: '#/components/schemas/BaseIntentWithoutNonce1' FilteringConditions: type: object description: | @@ -86672,6 +87182,13 @@ components: type: string pattern: ^[0-9a-f]{32}$ example: 59cd72485007a239fb00282ed480da1f + IdArray: + type: array + items: + $ref: '#/components/schemas/Id' + example: + - 585951a5df8380e0e3063e9f + - 585951a5df8380e0e304a553 IdVerificationActionRequest: title: BitGo ID Verification type: object @@ -88122,6 +88639,41 @@ components: - export - import - importtoc + IntentType1: + title: IntentType + type: string + enum: + - payment + - transferToken + - consolidate + - consolidateToken + - fanout + - stake + - unstake + - delegate + - undelegate + - switchValidator + - claim + - stakeClaimRewards + - pledge + - vote + - createAccount + - updateAccount + - addTrustLine + - removeTrustLine + - signMessage + - signTypedStructuredData + - enableToken + - authorize + - acceleration + - fillNonce + - walletRecovery + - contractCall + - deactivate + - customTx + - closeAssociatedTokenAccount + - delegateResource + - undelegateResource IntentType11: title: IntentType1 type: string @@ -91488,6 +92040,40 @@ components: type: string maxLength: 100 description: A memo for this specific transaction. This format is only available for Stacks. + Message: + type: object + properties: + coin: + type: string + description: The coin associated with the wallet. + combineSigShare: + type: string + createdDate: + description: The date the message was created. + type: string + format: date-time + messageEncoded: + description: The message encoded as a hex string. + type: string + messageRaw: + description: The message as human readable text. + type: string + 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: + - messageRaw + - state MessageIntent: title: MessageIntent type: object @@ -91806,6 +92392,18 @@ components: required: - recipients - $ref: '#/components/schemas/StakeIntent' + NearStakeIntent1: + title: Near Stake + allOf: + - $ref: '#/components/schemas/StakeIntent2' + - type: object + properties: + recipients: + type: array + items: + $ref: '#/components/schemas/RecipientEntry1' + required: + - recipients NearStakingDelegation: title: NEAR Staking Delegation allOf: @@ -91873,6 +92471,18 @@ components: required: - recipients - $ref: '#/components/schemas/UnstakeIntent' + NearUnstakeIntent1: + title: Near Unstake + allOf: + - $ref: '#/components/schemas/UnstakeIntent2' + - type: object + properties: + recipients: + type: array + items: + $ref: '#/components/schemas/RecipientEntry1' + required: + - recipients NearWallet: title: Near Wallet type: object @@ -91918,6 +92528,18 @@ components: required: - recipients - $ref: '#/components/schemas/WithdrawIntent' + NearWithdrawIntent1: + title: Near Claim Unstake + allOf: + - $ref: '#/components/schemas/WithdrawIntent2' + - type: object + properties: + recipients: + type: array + items: + $ref: '#/components/schemas/RecipientEntry1' + required: + - recipients NetWorth: type: string enum: @@ -94588,6 +95210,33 @@ components: required: - intentType - isTestTransaction + PaymentIntent1: + title: PaymentIntent + allOf: + - type: object + properties: + intent: + type: string + enum: + - payment + recipients: + type: array + items: + type: object + properties: + address: + $ref: '#/components/schemas/Address1' + amount: + $ref: '#/components/schemas/Amount1' + data: + $ref: '#/components/schemas/optionalString' + required: + - address + - amount + required: + - intent + - recipients + - $ref: '#/components/schemas/BaseIntent1' PaymentStatus: title: PaymentStatus type: string @@ -95072,6 +95721,101 @@ components: - info - state - scope + PendingApprovalAddressLabel: + description: Address labels of recipients in this Pending Approval + type: object + properties: + address: + $ref: '#/components/schemas/AddressString3' + label: + $ref: '#/components/schemas/AddressLabel' + walletLabel: + $ref: '#/components/schemas/WalletLabel' + required: + - address + - label + PendingApprovalEnterpriseInviteRequest: + title: Enterprise Invite Request + type: object + properties: + type: + type: string + enum: + - enterpriseInviteRequest + enterpriseInviteRequest: + type: object + properties: + action: + type: string + enum: + - add + email: + 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: + 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: + 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/PlatformEmail' + description: E-Mail address of newly added users + type: + type: string + enum: + - policyRuleRequest PendingApprovalInfo: title: PendingApprovalInfo type: object @@ -95503,6 +96247,39 @@ components: - oldValue required: - type + PendingApprovalPolicyRuleRequest: + title: Policy rule request + type: object + properties: + 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 + enum: + - policyRuleRequest PendingApprovalState: title: PendingApprovalState oneOf: @@ -95553,6 +96330,77 @@ components: - pendingCustodianApproval - pendingManualTrustReview - pendingFraudRiskEvaluation + PendingApprovalTransactionRequest: + title: Transaction request (lite) + type: object + properties: + transactionRequest: + 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/PlatformAddressString' + amount: + $ref: '#/components/schemas/PlatformIntegerOrIntegerString' + data: + type: string + requestedAmount: + $ref: '#/components/schemas/PlatformIntegerOrIntegerString' + sourceWallet: + $ref: '#/components/schemas/Id' + triggeredPolicy: + $ref: '#/components/schemas/Id' + validTransaction: + type: string + validTransactionHash: + type: string + type: + type: string + enum: + - transactionRequest + 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: 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 PendingApprovalType: title: PendingApprovalType type: string @@ -95578,6 +96426,58 @@ components: - skipped - failed - cancelled + PendingApprovalUpdateApprovalsRequiredRequest: + title: Update approvals required request + type: object + properties: + type: + type: string + enum: + - updateApprovalsRequiredRequest + updateApprovalsRequiredRequest: + type: object + properties: + requestedApprovalsRequired: + type: number + PendingApprovalUpdateEnterpriseSettingRequest: + title: Update enterprise setting request + type: object + properties: + type: + type: string + enum: + - updateEnterpriseSettingRequest + updateEnterpriseSettingRequest: + type: object + description: Requested enterprise setting changes, keyed by setting name. + properties: + withdrawalAttestationRequired: + type: object + properties: + oldValue: + type: boolean + newValue: + type: boolean + required: + - oldValue + - newValue + PendingApprovalUserChangeRequest: + title: User change request + type: object + properties: + type: + type: string + enum: + - userChangeRequest + userChangeRequest: + type: object + properties: + action: + type: string + permissions: + type: string + userChanged: + $ref: '#/components/schemas/Id' PendingApprovalsCountSchema: title: PendingApprovalsCountSchema type: object @@ -95733,6 +96633,34 @@ components: - BitGo Mena Fze - BitGo Custody MENA FZE - BitGo India + PlatformCommitmentShare: + 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 + PlatformEmail: + type: string + format: email + example: user@example.com PlatformEnterprise: type: object properties: @@ -95912,6 +96840,12 @@ components: - signature submitted - initiating - additional information submitted + PlatformIntegerOrIntegerString: + oneOf: + - type: string + pattern: ^-?\d+$ + example: '2000000' + - type: integer PlatformIntegerString: type: string pattern: ^-?\d+$ @@ -95962,6 +96896,116 @@ components: enum: - managed - permanent + 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' + - $ref: '#/components/schemas/PendingApprovalUpdateEnterpriseSettingRequest' + 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' + PlatformPendingApprovalState: + anyOf: + - $ref: '#/components/schemas/PlatformPendingApprovalStatePending' + - $ref: '#/components/schemas/PlatformPendingApprovalStateResolved' + PlatformPendingApprovalStatePending: + title: Pending + type: string + enum: + - pending + - awaitingSignature + - pendingFinalApproval + - pendingCustodianApproval + - pendingVideoApproval + - pendingIdVerification + PlatformPendingApprovalStateResolved: + title: Resolved + type: string + enum: + - approved + - processing + - rejected + - cancelled PlatformPolicy: type: object properties: @@ -96009,6 +97053,196 @@ components: - lockDate - type - action + PlatformSignatureShare: + 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 + PlatformTransaction: + type: object + properties: + 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: + $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: + - state + - unsignedTx + PlatformTransactionRequest: + anyOf: + - $ref: '#/components/schemas/PlatformTransactionRequestLite' + - $ref: '#/components/schemas/PlatformTransactionRequestFull' + required: + - txRequestId + - version + - latest + - walletId + - state + - date + - userId + - intent + PlatformTransactionRequestBase: + type: object + properties: + txRequestId: + type: string + description: A unique ID for the TxRequest document across all wallets. The combination of the txRequestId and version will always be unique. + version: + type: number + description: The version of the document. Data changes are done only with inserts and incrementing the version. + latest: + type: boolean + description: A boolean flag that indicates whether the document is the latest version of the TxRequest. + walletId: + type: string + description: The id of the Wallet the TxRequest is for. + walletType: + allOf: + - $ref: '#/components/schemas/WalletTypePublic' + description: The type describes who owns the keys to the wallet associated to the TxRequest. + enterpriseId: + type: string + description: If the wallet that owns the TxRequest is owned by an enterprise then this is the Id of said enterprise. + state: + $ref: '#/components/schemas/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 + description: The Id of the User that produced this version of the TxRequest document. Could have created a new document or updated an existing document. + initiatedBy: + type: string + description: The Id of the User that originally created the TxRequest document (initiated the TxRequest). + updatedBy: + type: string + description: The Id of the User that last updated the TxRequest document. This is an alias for the userId field. + intent: + $ref: '#/components/schemas/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: + - txRequestId + - version + - latest + - walletId + - state + - date + - createdDate + - userId + - initiatedBy + - updatedBy + - intents + PlatformTransactionRequestFull: + title: Full + allOf: + - $ref: '#/components/schemas/PlatformTransactionRequestBase' + - type: object + properties: + transactions: + description: Transaction information. + type: array + items: + $ref: '#/components/schemas/PlatformTransaction' + messages: + description: Messages for the transaction request. + type: array + items: + $ref: '#/components/schemas/Message' + required: + - txRequestId + - version + - latest + - walletId + - state + - date + - userId + - intent + - transactions + PlatformTransactionRequestLite: + title: Lite + allOf: + - $ref: '#/components/schemas/PlatformTransactionRequestBase' + - type: object + properties: + unsignedTxs: + type: array + description: Holds all unsigned transactions that will be used to fulfill the TxRequest for MPC wallets. + items: + $ref: '#/components/schemas/TransactionRequestUnsignedTransaction' + signatureShares: + type: array + description: Only used for MPC coins. This is used to collect signature shares from and exchange them with the user. + items: + $ref: '#/components/schemas/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: + - txRequestId + - version + - latest + - walletId + - state + - date + - userId + - intent PlatformTransactionRequestState: type: string enum: @@ -97934,6 +99168,20 @@ components: required: - address - amount + RecipientEntry1: + type: object + properties: + address: + $ref: '#/components/schemas/TxAddress' + amount: + $ref: '#/components/schemas/Amount2' + data: + type: string + tokenData: + $ref: '#/components/schemas/TokenData1' + required: + - address + - amount RecommendationActionEntry: type: object description: An action entry in the recommendation template. @@ -101356,6 +102604,16 @@ components: `closeAssociatedTokenAccount` intents) may normalize a missing `memo` to `""` before validation so stored objects match this shape. Other Sol flows should send `memo` or apply the same normalization if they share this path. + SolBuildOptions1: + title: SolBuildOptions + allOf: + - type: object + properties: + memo: + $ref: '#/components/schemas/optionalString' + required: + - memo + - $ref: '#/components/schemas/AccountBaseBuildOptions1' SolClaimIntent: title: SOL Claim Intent allOf: @@ -101370,6 +102628,20 @@ components: - $ref: '#/components/schemas/SolBuildOptions' - $ref: '#/components/schemas/BaseIntentWithAmount' description: Withdraw the balance from a deactivated SOL stake account back to the wallet on Solana. The stake account must have been deactivated (unstaked) before claiming. Spending policy is not evaluated for this intent. + SolClaimIntent1: + title: SOL Claim Intent + allOf: + - type: object + properties: + stakingAddress: + type: string + amount: + $ref: '#/components/schemas/Amount1' + required: + - stakingAddress + - amount + - $ref: '#/components/schemas/WithdrawIntent1' + - $ref: '#/components/schemas/SolBuildOptions1' SolClaimRewardsRequestPOSTBody: title: Solana (SOL) Claim Rewards Request type: object @@ -101396,6 +102668,25 @@ components: - $ref: '#/components/schemas/BaseIntent' - $ref: '#/components/schemas/SolBuildOptions' description: Close one or more zero-balance SPL Associated Token Accounts (ATAs) on Solana and recover their rent lamports to the wallet root address. All ATAs must have a zero token balance (consolidate tokens first), share the same on-chain owner, and be owned by this wallet. Maximum 27 distinct ATAs per transaction. Spending policy is not evaluated for this intent. + SolCloseAssociatedTokenAccountIntent1: + title: SOL Close Associated Token Account Intent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - closeAssociatedTokenAccount + recipients: + type: array + minItems: 1 + items: + $ref: '#/components/schemas/RecipientEntry1' + required: + - intentType + - recipients + - $ref: '#/components/schemas/BaseIntent1' + - $ref: '#/components/schemas/SolBuildOptions1' SolConsolidateIntent: title: SOL Consolidate Intent allOf: @@ -101407,6 +102698,13 @@ components: - $ref: '#/components/schemas/EnableTokenIntent' - $ref: '#/components/schemas/SolBuildOptions' description: Initialize one or more Associated Token Accounts (ATAs) on Solana so the wallet can receive SPL tokens. All entries in enableTokens must target the same wallet address, unless they are confidential-transfer tokens whose mints carry the ConfidentialTransferMint extension. Those are enabled per address — one ConfigureAccount transaction per address — so entries may target different addresses. Spending policy is not evaluated for this intent. + SolCreateAssociatedTokenAccountIntent1: + title: SOL Create Associated Token Account Intent + allOf: + - type: object + properties: {} + - $ref: '#/components/schemas/EnableTokenIntent1' + - $ref: '#/components/schemas/SolBuildOptions1' SolCustomTxIntent: title: SOL Custom Transaction Intent allOf: @@ -101597,6 +102895,20 @@ components: - $ref: '#/components/schemas/SolBuildOptions' - $ref: '#/components/schemas/BaseIntentWithAmount' description: Stake SOL to a validator on Solana by creating a new stake account. The platform generates an ephemeral keypair for the stake account and whitelists it on the wallet. Requires the enterprise to have staking permissions. Supports native, Marinade liquid, and Jito staking via the stakingType field. + SolStakeIntent1: + title: SOL Stake Intent + allOf: + - type: object + properties: + validatorAddress: + type: string + amount: + $ref: '#/components/schemas/Amount1' + required: + - validatorAddress + - amount + - $ref: '#/components/schemas/StakeIntent1' + - $ref: '#/components/schemas/SolBuildOptions1' SolStakingDelegation: title: SOL Staking Delegation allOf: @@ -101766,6 +103078,37 @@ components: - $ref: '#/components/schemas/UnstakeIntent' - $ref: '#/components/schemas/SolBuildOptions' description: Begin deactivating a SOL stake account on Solana. For native staking, the stake account enters a cooldown period before funds can be claimed. For partial unstakes, provide both amount and remainingStakingAmount to split the stake account. Supports native, Marinade liquid, and Jito staking via the stakingType field. Requires the enterprise to have staking permissions. + SolUnstakeIntent1: + 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/UnstakeIntent1' + - $ref: '#/components/schemas/SolBuildOptions1' SolVersionMarker: title: SolVersionMarker type: object @@ -102231,6 +103574,29 @@ components: required: - intentType - $ref: '#/components/schemas/BaseStakeIntent' + StakeIntent1: + title: StakeIntent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - stake + required: + - intentType + - $ref: '#/components/schemas/BaseStakeIntent1' + StakeIntent2: + allOf: + - $ref: '#/components/schemas/BaseStakeIntent2' + - type: object + properties: + intentType: + type: string + enum: + - stake + required: + - intentType StakePoolEpochData: type: object properties: @@ -105685,6 +107051,33 @@ components: - $ref: '#/components/schemas/TokenRecipientEntryItem' - $ref: '#/components/schemas/SupportedTokenRecipientEntryItem' - $ref: '#/components/schemas/UnsupportedTokenRecipientEntryItem' + TokenData1: + type: object + properties: + tokenType: + type: string + description: The type of standard of the token. + example: ERC721 + tokenQuantity: + type: string + description: The quantity of token to transfer (should be 1 for ERC721). + example: '101' + tokenContractAddress: + type: string + description: Address of the token contract which is necessary if the token is not supported on WP. + example: '0x3d8e90d5F403a0A18dfeeAd36E30EF95D5E1ad3a' + tokenName: + type: string + description: Name of the token as it is supported on WP. + example: tpolygon:name + tokenId: + type: string + description: Id of the token to be transferred which is required for NFTs. + example: '123' + decimalPlaces: + type: number + description: Number of decimal places the token uses (for fungible tokens unsupported in WP). + example: 18 TokenLimits: title: TokenLimits type: object @@ -107060,6 +108453,34 @@ components: example: 123e4567-e89b-12d3-a456-426614174000 minLength: 1 format: uuid + TransactionRequestIntent: + anyOf: + - $ref: '#/components/schemas/AdaStakeIntent1' + - $ref: '#/components/schemas/ConsolidateTokenIntent1' + - $ref: '#/components/schemas/CosmosContractCallIntent1' + - $ref: '#/components/schemas/DOTClaimIntent' + - $ref: '#/components/schemas/DotPaymentIntent1' + - $ref: '#/components/schemas/DotStakingIntent1' + - $ref: '#/components/schemas/DotUnstakingIntent1' + - $ref: '#/components/schemas/EthAccelerationIntent1' + - $ref: '#/components/schemas/EthFillNonceIntent1' + - $ref: '#/components/schemas/EthPaymentIntent1' + - $ref: '#/components/schemas/ETHSignMessageIntent' + - $ref: '#/components/schemas/EthStakingIntent1' + - $ref: '#/components/schemas/NearStakeIntent1' + - $ref: '#/components/schemas/NearUnstakeIntent1' + - $ref: '#/components/schemas/NearWithdrawIntent1' + - $ref: '#/components/schemas/SolClaimIntent1' + - $ref: '#/components/schemas/SolCloseAssociatedTokenAccountIntent1' + - $ref: '#/components/schemas/SolCreateAssociatedTokenAccountIntent1' + - $ref: '#/components/schemas/SolStakeIntent1' + - $ref: '#/components/schemas/SolUnstakeIntent1' + - $ref: '#/components/schemas/TransferTokenIntent1' + - $ref: '#/components/schemas/TrxDelegateResourceIntent1' + - $ref: '#/components/schemas/TrxUndelegateResourceIntent1' + - $ref: '#/components/schemas/UnstakeIntent2' + - $ref: '#/components/schemas/WalletRecoveryIntent1' + - $ref: '#/components/schemas/WithdrawIntent2' TransactionRequestLite: title: TransactionRequestLite allOf: @@ -107193,6 +108614,111 @@ components: - canceled - rejected - failed + 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 TransactionResponse1: title: TransactionResponse type: object @@ -109517,6 +111043,20 @@ components: - intentType - $ref: '#/components/schemas/BaseIntent' - $ref: '#/components/schemas/BaseIntentWithTokenRecipients' + TransferTokenIntent1: + title: Transfer Token + allOf: + - $ref: '#/components/schemas/BaseIntent2' + - type: object + properties: + intentType: + type: string + enum: + - transferToken + recipients: + type: array + items: + $ref: '#/components/schemas/RecipientEntry1' TransferType2: title: TransferType type: string @@ -110107,6 +111647,42 @@ components: (DelegateResourceContract). The owner must have sufficient staked resources; the receiver address must be an active Tron account; and the amount must be at least 1 TRX (1,000,000 sun). Valid on TRX and TTRX. + TrxDelegateResourceIntent1: + title: TRX Delegate Resource Intent + description: | + Delegates TRON ENERGY or BANDWIDTH from the wallet root address to a receiver address. + For TRX (`trx`, `ttrx`) MPC (TSS) wallets only — use with [Create transaction request](/reference/v2wallettxrequestcreate). + Minimum delegation amount is 1 TRX (1,000,000 sun). + allOf: + - type: object + properties: + intentType: + type: string + enum: + - delegateResource + stakingRequestId: + type: string + ownerAddress: + type: string + description: TRON address delegating resources (typically the wallet root address) + receiverAddress: + type: string + description: TRON address receiving the delegated ENERGY or BANDWIDTH + amount: + $ref: '#/components/schemas/Amount1' + resource: + type: string + enum: + - ENERGY + - BANDWIDTH + required: + - intentType + - stakingRequestId + - ownerAddress + - receiverAddress + - amount + - resource + - $ref: '#/components/schemas/BaseIntent1' TrxDelegationProperties: title: TRX Delegation Properties allOf: @@ -110281,6 +111857,41 @@ components: receiver address (UnDelegateResourceContract). The undelegatable balance must be sufficient to cover the requested amount. Valid on TRX and TTRX. + TrxUndelegateResourceIntent1: + title: TRX Undelegate Resource Intent + description: | + Undelegates previously delegated TRON ENERGY or BANDWIDTH from the wallet root address. + For TRX (`trx`, `ttrx`) MPC (TSS) wallets only — use with [Create transaction request](/reference/v2wallettxrequestcreate). + allOf: + - type: object + properties: + intentType: + type: string + enum: + - undelegateResource + stakingRequestId: + type: string + ownerAddress: + type: string + description: TRON address that delegated the resources (typically the wallet root address) + receiverAddress: + type: string + description: TRON address from which resources are being undelegated + amount: + $ref: '#/components/schemas/Amount1' + resource: + type: string + enum: + - ENERGY + - BANDWIDTH + required: + - intentType + - stakingRequestId + - ownerAddress + - receiverAddress + - amount + - resource + - $ref: '#/components/schemas/BaseIntent1' TrxUnfreezeIntent: title: TRX Unfreeze Intent allOf: @@ -110433,6 +112044,15 @@ components: $ref: '#/components/schemas/MultisigTypeVersion' defaultWalletVersion: type: number + TxAddress: + type: object + properties: + address: + type: string + options: + type: object + required: + - address TxChannel: title: TxChannel type: object @@ -112327,6 +113947,30 @@ components: required: - intentType - $ref: '#/components/schemas/BaseStakeIntent' + UnstakeIntent1: + title: UnstakeIntent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - unstake + required: + - intentType + - $ref: '#/components/schemas/BaseStakeIntent1' + UnstakeIntent2: + title: Generic Unstake + allOf: + - $ref: '#/components/schemas/BaseStakeIntent2' + - type: object + properties: + intentType: + type: string + enum: + - unstake + required: + - intentType UnstakingDisclaimer: type: object properties: @@ -112578,8 +114222,11 @@ components: withdrawalAttestationRequired: type: boolean description: | - Require withdrawals to be confirmed with the initiator's passkey. Only an enterprise admin of an - enterprise with a single admin can change it; multi-admin enterprises are not supported yet. + Require withdrawals to be confirmed with the initiator's passkey. Only an enterprise admin can + change it. On an enterprise with more than one admin the change needs approval from other admins: + the response is 202 with the pending approval, and the setting changes once it is approved. + In that case it must be the only change in the request: combining it with any other field + returns 400 and nothing is changed. UpdateEnterpriseChallenge: title: UpdateEnterpriseChallenge type: object @@ -115202,6 +116849,113 @@ components: required: - supportedCurrencies - domain + V1EnterpriseUpdateAccepted: + description: | + Legacy enterprise pending approval fields, or `pendingApproval` when a settings change needs approval + from other enterprise admins. + type: object + properties: + id: + $ref: '#/components/schemas/Id' + enterprise: + allOf: + - $ref: '#/components/schemas/Id' + description: The Id of the associated enterprise + walletId: + type: string + example: 1G47mSr3oANXMafVrR8UC4pzV7FEAzo3r9 + description: The base address of the associated wallet + creator: + allOf: + - $ref: '#/components/schemas/Id' + description: The Id of the User that created the Pending Approval + createDate: + type: string + format: date-time + info: + type: object + properties: + type: + type: string + enum: + - bitcoinAddressWhitelistRequest + - userChangeRequest + - policyRuleRequest + - dailyLimitPolicyRequest + - transactionRequest + - tagUpdateRequest + - updateEnterpriseRequest + - updateApprovalsRequiredRequest + updateEnterpriseRequest: + type: object + properties: + action: + type: string + enum: + - add + - remove + permissions: + type: array + items: + $ref: '#/components/schemas/EnterprisePermission' + userId: + allOf: + - $ref: '#/components/schemas/Id' + description: The Id of the User to be added to or removed from the Enterprise + email: + allOf: + - $ref: '#/components/schemas/PlatformEmail' + 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 + pendingApproval: + allOf: + - $ref: '#/components/schemas/PlatformPendingApproval' + description: Set when a settings change needs approval from other enterprise admins V1ErrorPayload: title: V1ErrorPayload type: object @@ -117747,106 +119501,6 @@ components: allOf: - title: V1PatchAccountResponse - $ref: '#/components/schemas/V1AccountResponse' - V1PendingApproval: - type: object - properties: - id: - $ref: '#/components/schemas/Id' - enterprise: - allOf: - - $ref: '#/components/schemas/Id' - description: The Id of the associated enterprise - walletId: - type: string - example: 1G47mSr3oANXMafVrR8UC4pzV7FEAzo3r9 - description: The base address of the associated wallet - creator: - allOf: - - $ref: '#/components/schemas/Id' - description: The Id of the User that created the Pending Approval - createDate: - type: string - format: date-time - info: - type: object - properties: - type: - type: string - enum: - - bitcoinAddressWhitelistRequest - - userChangeRequest - - policyRuleRequest - - dailyLimitPolicyRequest - - transactionRequest - - tagUpdateRequest - - updateEnterpriseRequest - - updateApprovalsRequiredRequest - updateEnterpriseRequest: - type: object - properties: - action: - type: string - enum: - - add - - remove - permissions: - type: array - items: - $ref: '#/components/schemas/EnterprisePermission' - userId: - allOf: - - $ref: '#/components/schemas/Id' - description: The Id of the User to be added to or removed from the Enterprise - email: - allOf: - - $ref: '#/components/schemas/Email' - description: E-Mail address of newly added users - updateApprovalsRequiredRequest: - type: object - properties: - requestedApprovalsRequired: - type: number - minimum: 1 - description: the number of approvalsRequired that should be changed to - state: - type: string - enum: - - pending - - approved - - rejected - walletUserIds: - 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 V1PendingSettlementOutput: title: V1PendingSettlementOutput type: object @@ -121550,6 +123204,22 @@ components: required: - intentType - $ref: '#/components/schemas/BaseIntent' + WalletRecoveryIntent1: + title: Wallet Recovery + type: object + properties: + intentType: + type: string + sequenceId: + type: string + description: | + A `sequenceId` is a unique and arbitrary wallet identifier applied to transfers and transactions at creation. It is optional but highly recommended. With a `sequenceId` you can easily reference transfers and transactions—for example, to safely retry sending. Because BitGo only confirms one send request per `sequenceId` (and fails all subsequent attempts), you can retry sending without the risk of double spending. The `sequenceId` is only visible to users on the wallet and is not shared publicly. It is the responsibility of the caller to keep track of this ID. + example: abc123 + comment: + type: string + description: The `comment` is only visible to users on the wallet and is not shared publicly. + required: + - intentType WalletShare: type: object properties: @@ -123456,6 +125126,40 @@ components: required: - intentType - $ref: '#/components/schemas/BaseStakeIntent' + WithdrawIntent1: + title: WithdrawIntent + allOf: + - type: object + properties: + intentType: + type: string + enum: + - claim + amount: + type: object + properties: + symbol: + type: string + value: + type: string + required: + - symbol + - value + required: + - intentType + - $ref: '#/components/schemas/BaseStakeIntent1' + WithdrawIntent2: + title: Generic claim unstake + allOf: + - $ref: '#/components/schemas/BaseStakeIntent2' + - type: object + properties: + intentType: + type: string + enum: + - claim + required: + - intentType Withdrawal: type: object properties: diff --git a/express-api.yaml b/express-api.yaml index 4a35aae..32dfa02 100644 --- a/express-api.yaml +++ b/express-api.yaml @@ -5412,6 +5412,7 @@ components: - $ref: '#/components/schemas/PendingApprovalUpdateApprovalsRequiredRequest' - $ref: '#/components/schemas/PendingApprovalEnterpriseModificationResponse1' - $ref: '#/components/schemas/PendingApprovalEnterpriseInviteRequest' + - $ref: '#/components/schemas/PendingApprovalUpdateEnterpriseSettingRequest' state: $ref: '#/components/schemas/PendingApprovalState1' scope: @@ -5602,7 +5603,7 @@ components: PendingApprovalState1: anyOf: - $ref: '#/components/schemas/PendingApprovalStatePending1' - - $ref: '#/components/schemas/PendingApprovalStateResolved1' + - $ref: '#/components/schemas/PendingApprovalStateResolved' PendingApprovalStatePending1: title: Pending type: string @@ -5613,13 +5614,14 @@ components: - pendingCustodianApproval - pendingVideoApproval - pendingIdVerification - PendingApprovalStateResolved1: + PendingApprovalStateResolved: title: Resolved type: string enum: - approved - processing - rejected + - cancelled PendingApprovalTransactionRequest1: title: Transaction request (lite) type: object @@ -5704,6 +5706,28 @@ components: properties: requestedApprovalsRequired: type: number + PendingApprovalUpdateEnterpriseSettingRequest: + title: Update enterprise setting request + type: object + properties: + type: + type: string + enum: + - updateEnterpriseSettingRequest + updateEnterpriseSettingRequest: + type: object + description: Requested enterprise setting changes, keyed by setting name. + properties: + withdrawalAttestationRequired: + type: object + properties: + oldValue: + type: boolean + newValue: + type: boolean + required: + - oldValue + - newValue PendingApprovalUserChangeRequest: title: User change request type: object