{"openapi":"3.0.3","info":{"title":"BitGo Express API","version":"1.0.0"},"servers":[{"url":"/","description":"Default server"}],"tags":[{"name":"Express"}],"paths":{"/api/v2/{coin}/pendingapprovals/{approvalId}":{"put":{"tags":["Express"],"summary":"Resolve pending approval","operationId":"express.pendingapprovals","description":"Accept or reject a pending approval","parameters":[{"$ref":"#/components/parameters/pathCoin"},{"$ref":"#/components/parameters/pathApprovalId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressResolvePendingApprovalRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformPendingApproval"}}}}}}},"/advancedwallet/ping":{"post":{"summary":"Advanced Wallets - Ping","description":"Test your connection to the Master Bitgo Express (MBE) server.","operationId":"advancedwallet.mbe.ping","tags":["Advanced Wallets"],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PingResponseType"}}}}}}},"/advancedwallet/version":{"get":{"summary":"Advanced Wallets - Check Version","description":"Check your version of the Master Bitgo Express (MBE) server.","operationId":"advancedwallet.mbe.version","tags":["Advanced Wallets"],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VersionResponseType"}}}}}}},"/api/v1/{coin}/advancedwallet/{walletId}/accelerate":{"post":{"summary":"Advanced Wallets - Accelerate Transaction","description":"Send a new transaction to accelerate the targeted unconfirmed transaction either by using Child-Pays-For-Parent (CPFP) or Replace-By-Fee (RBF).\n\nRetrieves the private key from KMS using the provided public key, then signs and broadcasts the transaction.\n\nUse this endpoint only with advanced wallets. For other wallet types, use [Accelerate Transaction](https://developers.bitgo.com/reference/expresswalletacceleratetx).","operationId":"advancedwallet.accelerate.tx","tags":["Advanced Wallets"],"parameters":[{"name":"walletId","in":"path","required":true,"schema":{"type":"string"}},{"name":"coin","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"pubkey":{"type":"string","description":"Public key used for signing the acceleration transaction.","example":"xpub661MyMwAqRbcGCNnmzqt3u5KhxmXBHiC78cwAyUMaKJXpFDfHpJwNap6qpG1Kz2SPexKXy3akhPQz7GDYWpHNWkLxRLj6bDxQSf74aTAP9y"},"source":{"type":"string","enum":["user","backup"],"description":"The key to use for signing the transaction.","example":"user"},"cpfpTxIds":{"type":"array","example":["abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"],"items":{"type":"string","description":"Transaction IDs to accelerate using Child-Pays-For-Parent (CPFP). CPFP creates a new transaction that spends an output from the original transaction."}},"cpfpFeeRate":{"type":"number","description":"Fee rate in satoshis per byte for the CPFP transaction. Higher fee rates result in faster confirmations but higher transaction costs.","example":null},"maxFee":{"type":"number","description":"Maximum fee in satoshis for the acceleration transaction. Helps prevent overpaying for transaction acceleration.","example":null},"rbfTxIds":{"type":"array","example":["abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"],"items":{"type":"string","description":"Transaction IDs to accelerate using Replace-By-Fee (RBF). RBF creates a new transaction that replaces the original transaction. The original transaction must have been created with RBF enabled."}},"feeMultiplier":{"type":"number","description":"Fee multiplier for RBF transactions. The new fee will be the original fee multiplied by this value.","example":null}},"required":["pubkey","source"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Successful acceleration response.","example":{"txid":"abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234","tx":"01000000000101edd7a5d948a6c79f273ce686a6a8f2e96ed8c2583b5e77b866aa2a1b3426fbed0100000000ffffffff02102700000000000017a914192f23283c2a9e6c5d11562db0eb5d4eb47f460287b9bc2c000000000017a9145c139b242ab3701f321d2399d3a11b028b3b361e870247304402206ac9477fece38d96688c6c3719cb27396c0563ead0567457e7e884b406b6da8802201992d1cfa1b55a67ce8acb482e9957812487d2555f5f54fb0286ecd3095d78e4012103c92564575197c4d6e3d9792280e7548b3ba52a432101c62de2186c4e2fa7fc580000000000"},"properties":{"txid":{"type":"string","description":"The transaction ID (hash) of the acceleration transaction. This can be used to track the transaction on a block explorer.","example":"abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234abcd1234"},"tx":{"type":"string","description":"The full signed transaction in hexadecimal format. This transaction can be broadcast to the network.","example":"01000000000101edd7a5d948a6c79f273ce686a6a8f2e96ed8c2583b5e77b866aa2a1b3426fbed0100000000ffffffff02102700000000000017a914192f23283c2a9e6c5d11562db0eb5d4eb47f460287b9bc2c000000000017a9145c139b242ab3701f321d2399d3a11b028b3b361e870247304402206ac9477fece38d96688c6c3719cb27396c0563ead0567457e7e884b406b6da8802201992d1cfa1b55a67ce8acb482e9957812487d2555f5f54fb0286ecd3095d78e4012103c92564575197c4d6e3d9792280e7548b3ba52a432101c62de2186c4e2fa7fc580000000000"}},"required":["txid","tx"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"501":{"description":"Not Implemented","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/{coin}/advancedwallet/{walletId}/consolidate":{"post":{"summary":"Advanced Wallets - Consolidate Account","description":"Build, sign, and send a consolidation transaction, all in one call. For account-based assets, consolidating the balances in the receive addresses to the base address maximizes the spendable balance of a wallet.\n\nRetrieves the private key from KMS using the provided public key or common keychain, then signs and broadcasts the transaction.\n\nUse this endpoint only with advanced wallets. For other wallet types, use [Consolidate account (simple)](https://developers.bitgo.com/reference/expresswalletconsolidateaccount).","operationId":"advancedwallet.consolidate","tags":["Advanced Wallets"],"parameters":[{"name":"walletId","in":"path","required":true,"schema":{"type":"string"}},{"name":"coin","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"source":{"type":"string","enum":["user","backup"],"description":"The key to use for signing the transaction"},"pubkey":{"type":"string","description":"Public key of the key used for signing multisig transactions"},"consolidateAddresses":{"type":"array","items":{"type":"string","description":"Optional: restrict the consolidation to the specified receive addresses. If not provided, will consolidate the funds from all receive addresses up to 500 addresses."}},"commonKeychain":{"type":"string","description":"For TSS wallets, this is the common keychain of the wallet"},"apiVersion":{"type":"string","enum":["full","lite"],"description":"The Trasaction Request API version to use for MPC EdDSA Hot Wallets. Defaults based on the wallet type and asset curve."}},"required":["source"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"501":{"description":"Not Implemented","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/{coin}/advancedwallet/{walletId}/consolidateunspents":{"post":{"summary":"Advanced Wallets - Consolidate Unspents","description":"Builds, signs, and sends a transaction to consolidate unspents all in 1 call. Consolidating unspents is only for UTXO-based assets.\n\nRetrieves the private key from KMS using the provided public key, then signs and broadcasts the transaction.\n\nUse this endpoint only with advanced wallets. For other wallet types, use [Consolidate unspents (simple)](https://developers.bitgo.com/reference/expresswalletconsolidateunspents).","operationId":"advancedwallet.consolidate.unspents","tags":["Advanced Wallets"],"parameters":[{"name":"walletId","in":"path","required":true,"schema":{"type":"string"}},{"name":"coin","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"pubkey":{"type":"string","description":"Public key of the key used for signing multisig transactions"},"source":{"type":"string","enum":["user","backup"],"description":"The key to use for signing the transaction"},"feeRate":{"type":"number","description":"Custom fee rate (in base units) per kilobyte"},"maxFeeRate":{"type":"number","description":"Maximum fee rate (in base units) per kilobyte"},"maxFeePercentage":{"type":"number","description":"Maximum fee percentage"},"feeTxConfirmTarget":{"type":"number","description":"Fee transaction confirmation target"},"bulk":{"type":"boolean","description":"Enable bulk processing"},"minValue":{"oneOf":[{"type":"string"},{"type":"number"}],"description":"Minimum value for unspents"},"maxValue":{"oneOf":[{"type":"string"},{"type":"number"}],"description":"Maximum value for unspents"},"minHeight":{"type":"number","description":"Minimum block height"},"minConfirms":{"type":"number","description":"Minimum confirmations required"},"enforceMinConfirmsForChange":{"type":"boolean","description":"Enforce minimum confirmations for change outputs"},"limit":{"type":"number","description":"Limit the number of unspents to process"},"numUnspentsToMake":{"type":"number","description":"Number of unspents to make"},"targetAddress":{"type":"string","description":"Target address for consolidation"}},"required":["pubkey","source"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"tx":{"type":"string"},"txid":{"type":"string"}},"required":["tx","txid"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"501":{"description":"Not Implemented","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/{coin}/advancedwallet/{walletId}/sendMany":{"post":{"summary":"Advanced Wallets - Send to Many","description":"Send coins or tokens to one or more recipients. You can use this endpoint to schedule outgoing transactions in bulk, lowering your aggregate amount of blockchain fees.\n\nRetrieves the private key from KMS using the provided public key, then signs and broadcasts the transaction.\n\nWorks with both multisignature and MPC wallets.\n\nWorks with most BitGo-supported assets, but currently unavailable for: ALGO, ARBETH, AVAXC, CELO, CELO:CUSD, CSPR, DOT, EOS, HTETH:BGERCH, NEAR, OPETH, STX, TON, TRX, TRX:USDC, XLM, XRP, XTZ\n\nUse this endpoint only with advanced wallets. For other wallet types, use [Send to many](https://developers.bitgo.com/reference/expresswalletsendmany).","operationId":"advancedwallet.sendmany","tags":["Advanced Wallets"],"parameters":[{"name":"walletId","in":"path","required":true,"schema":{"type":"string"}},{"name":"coin","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"source":{"type":"string","enum":["user","backup"],"description":"The key to use for signing the transaction"},"type":{"type":"string","enum":["transfer","fillNonce","acceleration","accountSet","enabletoken","transfertoken","trustline"],"description":"Required for transactions from MPC wallets."},"recipients":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","description":"Destination address","example":"2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZS","maxLength":250},"amount":{"oneOf":[{"type":"string"},{"type":"number"}],"description":"The amount in base units (e.g. satoshis) to send. For doge, only string is allowed.","example":"\"2000000\"","pattern":"^-?\\d+$"}},"required":["address","amount"],"description":"List of recipient addresses and amounts to send"}},"pubkey":{"type":"string","description":"Public key of the key used for signing multisig transactions i.e if source is user, this is the user's public key if source is backup, this is the backup key's public key"},"commonKeychain":{"type":"string","description":"For TSS wallets, this is the common keychain of the wallet, it remains the same whether source is user or backup"},"numBlocks":{"type":"number","description":"(BTC only) The number of blocks required to confirm a transaction. You can use `numBlocks` to estimate the fee rate by targeting confirmation within a given number of blocks. If both `feeRate` and `numBlocks` are absent, the transaction defaults to 2 blocks for confirmation. Note: The `maxFeeRate` limits the fee rate generated by `numBlocks`.","minimum":2,"maximum":1000},"feeRate":{"type":"number","description":"Custom fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. If the `feeRate` is less than the minimum required network fee, then the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000 microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is usually 4.5 times the open ledger fee. Note: The `feeRate` overrides the `maxFeeRate` and `minFeeRate`."},"feeMultiplier":{"type":"number","description":"(UTXO only) Custom multiplier to the `feeRate`. The resulting fee rate is limited by the `maxFeeRate`. For replace-by-fee (RBF) transactions (that include `rbfTxIds`), the `feeMultiplier` must be greater than 1, since it's an absolute fee multiplier to the transaction being replaced. Note: The `maxFeeRate` limits the fee rate generated by `feeMultiplier`."},"maxFeeRate":{"type":"number","description":"(BTC only) The maximum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. The `maxFeeRate` limits the fee rate generated by both `feeMultiplier` and `numBlocks`. Note: The `feeRate` overrides the `maxFeeRate`."},"minConfirms":{"type":"number","description":"The unspent selection for the transaction will only consider unspents with at least this many confirmations to be used as inputs. Does not apply to change outputs unless used in combination with `enforceMinConfirmsForChange`."},"enforceMinConfirmsForChange":{"type":"boolean","default":false,"description":"When set to true, will enforce minConfirms for change outputs. Defaults to false."},"targetWalletUnspents":{"type":"number","default":1000,"description":"Specifies the minimum count of good-sized unspents to maintain in the wallet. Change splitting ceases when the wallet has `targetWalletUnspents` good-sized unspents. Note: Wallets that continuously send a high count of transactions will automatically split large change amounts into multiple good-sized change outputs while they have fewer than `targetWalletUnspents` good-sized unspents in their unspent pool. Breaking up large unspents helps to reduce the amount of unconfirmed funds in flight in future transactions, and helps to avoid long chains of unconfirmed transactions. This is especially useful for newly funded wallets or recently refilled send-only wallets."},"message":{"type":"string","description":"Optional metadata (only persisted in BitGo) to be applied to the transaction. Use this to add transaction-specific information such as the transaction's purpose or another identifier that you want to reference later. The value is shown in the UI in the transfer listing page.","maxLength":256},"minValue":{"oneOf":[{"type":"number"},{"type":"string"}],"description":"Ignore unspents smaller than this amount of base units (e.g. satoshis). For doge, only string is allowed."},"maxValue":{"oneOf":[{"type":"number"},{"type":"string"}],"description":"Ignore unspents larger than this amount of base units (e.g. satoshis). For doge, only string is allowed."},"sequenceId":{"type":"string","description":"A `sequenceId` is a unique and arbitrary wallet identifier applied to transfers and transactions at creation. It is optional but highly recommended. With a `sequenceId` you can easily reference transfers and transactions—for example, to safely retry sending. Because the system only confirms one send request per `sequenceId` (and fails all subsequent attempts), you can retry sending without the risk of double spending. The `sequenceId` is only visible to users on the wallet and is not shared publicly."},"lastLedgerSequence":{"type":"number","description":"(XRP only) Absolute max ledger the transaction should be accepted in, whereafter it will be rejected"},"ledgerSequenceDelta":{"type":"number","description":"(XRP only) Relative ledger height (in relation to the current ledger) that the transaction should be accepted in, whereafter it will be rejected"},"noSplitChange":{"type":"boolean","default":false,"description":"Set `true` to disable automatic change splitting. Also see: `targetWalletUnspents`"},"unspents":{"type":"array","items":{"type":"string","description":"Used to explicitly specify the unspents to be used in the input set in the transaction. Each unspent should be in the form `prevTxId:nOutput`."}},"comment":{"type":"string","description":"Optional metadata (only persisted in BitGo) to be applied to the transaction. Use this to add transaction-specific information such as the transaction's purpose or another identifier that you want to reference later. The value is shown in the UI in the transfer listing page.","maxLength":256},"otp":{"type":"string","description":"Two factor auth code to enable sending the transaction. Not necessary if using a long lived access token within the spending limit."},"changeAddress":{"type":"string","description":"Specifies a custom destination address for the transaction's change output(s)","maxLength":250},"allowExternalChangeAddress":{"type":"boolean","description":"Flag for allowing external change addresses"},"instant":{"type":"boolean","description":"(DASH only) Specifies whether or not to use Dash's \"InstantSend\" feature when sending a transaction."},"memo":{"type":"string","description":"Extra transaction information for CSPR, EOS, HBAR, RUNE, STX, TON, XLM, and XRP. Required for XLM transactions. Note: For XRP this is the destination tag (DT). For CSPR this is the transfer ID."},"transferId":{"type":"number","description":"Transfer ID for the transaction"},"eip1559":{},"gasLimit":{"type":"number","description":"Custom gas limit to be used for sending the transaction. Only for ETH and ERC20 tokens."},"custodianTransactionId":{"type":"string","description":"Custodian transaction ID"},"nonce":{"type":"string","description":"(DOT only) A nonce ID is a number used to protect private communications by preventing replay attacks. This is an advanced option where users can manually input a new nonce value in order to correct or fill in a missing nonce ID value."}},"required":["source"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"501":{"description":"Not Implemented","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/{coin}/advancedwallet/{walletId}/txrequest/{txRequestId}/signAndSend":{"post":{"summary":"Advanced Wallets - Sign and Send MPC Transaction","description":"Sign and send a MPC transaction.\n\nRetrieves the private key from KMS using the provided common keychain, then signs and broadcasts the transaction.\n\nUse this endpoint only with advanced wallets. For other wallet types, use [Sign MPC transaction](https://developers.bitgo.com/reference/expresswalletsigntxtss).","operationId":"advancedwallet.sign.tx.tss","tags":["Advanced Wallets"],"parameters":[{"name":"walletId","in":"path","required":true,"schema":{"type":"string"}},{"name":"coin","in":"path","required":true,"schema":{"type":"string"}},{"name":"txRequestId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"source":{"type":"string","enum":["user","backup"],"description":"The key to use for signing the transaction"},"commonKeychain":{"type":"string","description":"Common keychain of the wallet during wallet creation"}},"required":["source","commonKeychain"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"501":{"description":"Not Implemented","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/{coin}/advancedwallet/generate":{"post":{"summary":"Advanced Wallets - Generate Wallet","description":"Create a new advanced wallet. Calling this endpoint does the following:\n1. Generates user keychain in isolated AWM, then sends to KMS (encrypts private key, stores public key mapping).\n2. Generates backup keychain in isolated AWM, then sends to KMS (encrypts private key, stores public key mapping).\n3. Uploads the user and backup public keys to BitGo.\n4. Creates the BitGo key on the BitGo service.\n5. Creates the wallet on BitGo with the 3 keys.","operationId":"advancedwallet.generate","tags":["Advanced Wallets"],"parameters":[{"name":"coin","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","description":"A human-readable label for the wallet This will be displayed in the BitGo dashboard and API responses","example":"My Wallet"},"multisigType":{"type":"string","enum":["onchain","tss"],"description":"The type of multisig wallet to create - onchain: Traditional multisig wallets using on-chain scripts - tss: Threshold Signature Scheme wallets using MPC protocols If absent, BitGo uses the default wallet type for the asset","example":"tss"},"enterprise":{"type":"string","description":"Enterprise ID - Required for Ethereum wallets Ethereum wallets can only be created under an enterprise Each enterprise has a fee address which will be used to pay for transaction fees Your enterprise ID can be seen by clicking on the \"Manage Organization\" link on the enterprise dropdown","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"disableTransactionNotifications":{"type":"boolean","description":"Flag for disabling wallet transaction notifications When true, BitGo will not send email/SMS notifications for wallet transactions","example":false},"isDistributedCustody":{"type":"boolean","description":"True, if the wallet type is a distributed-custodial If passed, you must also pass the 'enterprise' parameter Distributed custody allows multiple parties to share control of the wallet","example":false},"walletVersion":{"type":"number","description":"Specify the wallet creation contract version used when creating an Ethereum wallet contract - 0: Old wallet creation (legacy) - 1: New wallet creation, only deployed upon receiving funds - 2: Same functionality as v1 but with NFT support - 3: MPC wallets","example":1,"minimum":0,"maximum":3}},"required":["label","multisigType","enterprise"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"wallet":{"$ref":"#/components/schemas/WalletType1"},"userKeychain":{"$ref":"#/components/schemas/UserKeychainType"},"backupKeychain":{"$ref":"#/components/schemas/UserKeychainType"},"bitgoKeychain":{"$ref":"#/components/schemas/BitgoKeychainType"},"responseType":{"type":"string"}},"required":["wallet","userKeychain","backupKeychain","bitgoKeychain","responseType"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"501":{"description":"Not Implemented","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/{coin}/advancedwallet/recovery":{"post":{"summary":"Advanced Wallets - Recover Assets","description":"Recover assets from an advanced wallet with a balance only in the base address. Works for both multisignature and MPC recoveries.\n\nRetrieves the private keys from KMS using the provided public keys or common keychain, then signs and returns the broadcastable transaction hex.\n\nNote: This endpoint only works when AWM and MBE are running in recovery mode.\n\nTo recover assets from an advanced wallet with balances in multiple receive addresses, use [Advanced Wallets - Consolidate and Recover Assets](https://developers.bitgo.com/reference/advancedwalletconsolidaterecovery).\n\nUse this endpoint only with advanced wallets. For other wallet types, use the [Wallet Recovery Wizard](https://developers.bitgo.com/docs/wallets-recover#/).","operationId":"advancedwallet.recovery","tags":["Advanced Wallets"],"parameters":[{"name":"coin","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"Request type for the wallet recovery endpoint. Used to recover funds from both standard multisig and TSS wallets. Recover funds from an advanced wallet by building a transaction with user and backup keys.","properties":{"isTssRecovery":{"type":"boolean","description":"Set to true to perform a TSS (Threshold Signature Scheme) recovery.","example":true},"tssRecoveryParams":{"type":"object","description":"Parameters specific to TSS recovery. Required when isTssRecovery is true.","properties":{"commonKeychain":{"type":"string","description":"The common keychain string used for TSS wallets. Required for TSS recovery.","example":"0280ec751d3b165a48811b2cc90f90dcf323f33e8bcaadc0341e1e010adcdcf7005afde80dd286d65b6be947af0424dd1e9f7611f3d20e02a4fc84ad8c8b74c1a5"}},"required":["commonKeychain"]},"multiSigRecoveryParams":{"type":"object","description":"Parameters specific to standard multisig recovery. Required when isTssRecovery is false (default).","properties":{"backupPub":{"type":"string","description":"The backup public key.","example":"xpub661MyMwAqRbcGCNnmzqt3u5KhxmXBHiC78cwAyUMaKJXpFDfHpJwNap6qpG1Kz2SPexKXy3akhPQz7GDYWpHNWkLxRLj6bDxQSf74aTAP9y"},"bitgoPub":{"type":"string","description":"The BitGo public key. Required for UTXO coins, optional for others.","example":"xpub661MyMwAqRbcGCNnmzqt3u5KhxmXBHiC78cwAyUMaKJXpFDfHpJwNap6qpG1Kz2SPexKXy3akhPQz7GDYWpHNWkLxRLj6bDxQSf74aTAP9y"},"userPub":{"type":"string","description":"The user's public key.","example":"xpub661MyMwAqRbcGCNnmzqt3u5KhxmXBHiC78cwAyUMaKJXpFDfHpJwNap6qpG1Kz2SPexKXy3akhPQz7GDYWpHNWkLxRLj6bDxQSf74aTAP9y"},"walletContractAddress":{"type":"string","description":"The wallet contract address. Required for ETH-like recoveries.","example":"0x1234567890123456789012345678901234567890"}},"required":["backupPub","bitgoPub","userPub","walletContractAddress"]},"recoveryDestinationAddress":{"type":"string","description":"The address where recovered funds will be sent. Must be a valid address for the coin being recovered.","example":"\"9zvKDB8o96QvToQierXtwSfqK9NqaHw7uvmxWsmSrxns\" // For SOL"},"apiKey":{"type":"string","description":"API Key for a block chain explorer. Required for some coins (BTC, ETH) to build a recovery transaction without BitGo."},"coinSpecificParams":{"type":"object","description":"Coin-specific recovery options. Different parameters are required based on the coin family: - For UTXO coins (BTC, etc): provide utxoRecoveryOptions. - For EVM chains (ETH, etc): provide evmRecoveryOptions. - For Solana: provide solanaRecoveryOptions.","properties":{"ecdsaCosmosLikeRecoverySpecificParams":{"type":"object","properties":{"rootAddress":{"type":"string"}},"required":["rootAddress"]},"ecdsaEthLikeRecoverySpecificParams":{"type":"object","properties":{"apiKey":{"type":"string"},"bitgoDestinationAddress":{"type":"string"},"walletContractAddress":{"type":"string"}},"required":["apiKey","bitgoDestinationAddress","walletContractAddress"]},"evmRecoveryOptions":{"type":"object","description":"EVM-specific recovery parameters for Ethereum and EVM-compatible chains. Used for recovering funds from standard multisig wallets on Ethereum and EVM-compatible chains. Required when recovering ETH, MATIC, BSC, AVAX C-Chain, etc.","properties":{"eip1559":{"type":"object","description":"EIP-1559 gas parameters for modern Ethereum transactions. Required for EIP-1559 compatible networks (Ethereum post-London fork).","properties":{"maxFeePerGas":{"type":"number","description":"Maximum fee per gas in wei (base fee + priority fee).","example":null},"maxPriorityFeePerGas":{"type":"number","description":"Maximum priority fee per gas in wei (tip for miners/validators).","example":null}},"required":["maxFeePerGas","maxPriorityFeePerGas"]},"gasLimit":{"type":"number","description":"Gas limit for the recovery transaction. Must be enough to cover the contract execution costs.","example":500000},"gasPrice":{"type":"number","description":"Gas price in wei for the recovery transaction (for legacy transactions). Higher gas prices result in faster confirmations but higher transaction costs.","example":null},"replayProtectionOptions":{"type":"object","description":"Replay protection options for the transaction. Required to prevent transaction replay attacks across different chains.","properties":{"chain":{"oneOf":[{"type":"string"},{"type":"number"}],"description":"Chain ID or name.","example":"\"goerli\" // Goerli Testnet"},"hardfork":{"type":"string","default":"london","description":"Hardfork name to determine the transaction format.","example":"\"istanbul\" // Pre-London fork"}},"required":["chain","hardfork"]},"scan":{"type":"number","default":20,"description":"Number of addresses to scan for funds. Higher values will scan more addresses but take longer to complete.","example":null}}},"solanaRecoveryOptions":{"type":"object","description":"Solana-specific recovery parameters.","properties":{"closeAtaAddress":{"type":"string","description":"The close associated token account address. Required for token recovery."},"durableNonce":{"type":"object","description":"Durable nonce configuration for transaction durability. Optional but recommended for recovery operations. Refer to https://github.com/BitGo/wallet-recovery-wizard/blob/master/DURABLE_NONCE.md on durable nonce creation.","properties":{"publicKey":{"type":"string","description":"The public key of the durable nonce account."},"secretKey":{"type":"string","description":"The secret key of the durable nonce account."}},"required":["publicKey","secretKey"]},"programId":{"type":"string","description":"The program ID for the token. Required for token recovery."},"recoveryDestinationAtaAddress":{"type":"string","description":"The recovery destination's associated token account address. Required for token recovery."},"tokenContractAddress":{"type":"string","description":"The token contract address for token recovery. Required when recovering tokens."}}},"utxoRecoveryOptions":{"type":"object","description":"UTXO-specific recovery parameters for Bitcoin & Bitcoin-like cryptocurrencies. Used for recovering funds from standard multisig wallets on UTXO chains. Required when recovering BTC, BCH, LTC, DASH, ZEC, etc.","properties":{"feeRate":{"type":"number","description":"Fee rate for the recovery transaction in satoshis per byte. Higher fee rates result in faster confirmations but higher transaction costs.","example":null},"ignoreAddressTypes":{"type":"array","example":["p2sh-p2wsh","p2wsh"],"items":{"type":"string","description":"Array of address types to ignore during recovery. Useful when you want to exclude specific address types from the recovery process."}},"scan":{"type":"number","description":"Number of addresses to scan for funds. Higher values will scan more addresses but take longer to complete.","example":null},"userKeyPath":{"type":"string","default":"m/0","description":"Derivation path for the user key. Specifies the HD path to derive the correct user key for signing.","example":"m/0/0/0/0"}}}}}},"required":["recoveryDestinationAddress"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Successful recovery response.","example":{"txHex":"01000000000101edd7a5d948a6c79f273ce686a6a8f2e96ed8c2583b5e77b866aa2a1b3426fbed0100000000ffffffff02102700000000000017a914192f23283c2a9e6c5d11562db0eb5d4eb47f460287b9bc2c000000000017a9145c139b242ab3701f321d2399d3a11b028b3b361e870247304402206ac9477fece38d96688c6c3719cb27396c0563ead0567457e7e884b406b6da8802201992d1cfa1b55a67ce8acb482e9957812487d2555f5f54fb0286ecd3095d78e4012103c92564575197c4d6e3d9792280e7548b3ba52a432101c62de2186c4e2fa7fc580000000000"},"properties":{"txHex":{"type":"string","description":"The full signed transaction in hexadecimal format. This transaction can be broadcast to the network to complete the recovery."}},"required":["txHex"]}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"501":{"description":"Not Implemented","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/api/v1/{coin}/advancedwallet/recoveryconsolidations":{"post":{"summary":"Advanced Wallets - Consolidate and Recover Assets","description":"Recover assets from an advanced wallet with a balance in multiple receive addresses. Build, sign, and send a consolidation and recovery, all in one call. Sign using your user and backup keys. Works for both multisignature and MPC recoveries.\n\nRetrieves the private keys from KMS using the provided public keys or common keychain, then signs and returns the broadcastable transaction hex.\n\nNote: This endpoint only works when AWM and MBE are running in recovery mode.\n\nTo recover assets from an advanced wallet with a balance only in the base address, use [Advanced Wallets - Recover Assets](https://developers.bitgo.com/reference/advancedwalletrecovery).\n\nUse this endpoint only with advanced wallets. For other wallet types, use the [Wallet Recovery Wizard](https://developers.bitgo.com/docs/wallets-recover#/).","operationId":"advancedwallet.consolidate.recovery","tags":["Advanced Wallets"],"parameters":[{"name":"coin","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"Request type for wallet recovery consolidations endpoint. Used to consolidate and recover funds from multiple addresses in a wallet, via signing with user and backup keys.","properties":{"userPub":{"type":"string","description":"The user's public key for standard multisig wallets. Required for onchain multisig recovery consolidations.","example":"xpub661MyMwAqRbcGCNnmzqt3u5KhxmXBHiC78cwAyUMaKJXpFDfHpJwNap6qpG1Kz2SPexKXy3akhPQz7GDYWpHNWkLxRLj6bDxQSf74aTAP9y"},"backupPub":{"type":"string","description":"The backup public key for standard multisig wallets. Required for onchain multisig recovery consolidations.","example":"xpub661MyMwAqRbcGCNnmzqt3u5KhxmXBHiC78cwAyUMaKJXpFDfHpJwNap6qpG1Kz2SPexKXy3akhPQz7GDYWpHNWkLxRLj6bDxQSf74aTAP9y"},"bitgoPub":{"type":"string","description":"The BitGo public key for standard multisig wallets. Required for onchain UTXO multisig recovery consolidations.","example":"xpub661MyMwAqRbcGCNnmzqt3u5KhxmXBHiC78cwAyUMaKJXpFDfHpJwNap6qpG1Kz2SPexKXy3akhPQz7GDYWpHNWkLxRLj6bDxQSf74aTAP9y"},"multisigType":{"type":"string","enum":["onchain","tss"],"description":"The type of wallet to recover - onchain: Traditional multisig wallets. - tss: Threshold Signature Scheme wallets.","example":"onchain"},"commonKeychain":{"type":"string","description":"The common keychain for TSS wallets. Required when multisigType is 'tss'.","example":"0280ec751d3b165a48811b2cc90f90dcf323f33e8bcaadc0341e1e010adcdcf7005afde80dd286d65b6be947af0424dd1e9f7611f3d20e02a4fc84ad8c8b74c1a5"},"tokenContractAddress":{"type":"string","description":"The token contract address for token recovery (e.g., ERC20 tokens on Ethereum or SPL tokens on Solana). Required when recovering specific tokens instead of the native coin.","example":"\"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\" // USDC on Solana"},"startingScanIndex":{"type":"number","description":"The starting index to scan for addresses to consolidate. Useful for limiting the scan range for better performance.","example":0},"endingScanIndex":{"type":"number","default":20,"description":"The ending index to scan for addresses to consolidate. Useful for limiting the scan range for better performance.","example":100},"apiKey":{"type":"string","description":"API key for blockchain explorer services. Required for some coins to build recovery transactions.","example":"v2x8d5e46cf15a7b9b7xc60685d4f56xd8bd5f5cdcef3c1e9d4399c955d587179b"},"durableNonces":{"type":"object","description":"Durable nonces configuration for Solana transactions. Provides transaction durability for Solana recovery operations. Refer to https://github.com/BitGo/wallet-recovery-wizard/blob/master/DURABLE_NONCE.md on durable nonce creation.","properties":{"publicKeys":{"type":"array","example":["BurablNonc1234567890123456789012345678901","BurablNonc1234567890123456789012345678902"],"items":{"type":"string","description":"Array of public keys associated with the durable nonce."}},"secretKey":{"type":"string","description":"The secret key of the durable nonce account.","example":"3XNrU5JSPs2VnZCLnWK8GDzB6Pqoy3tYNMJJVesKBXnGqRxwdXDg2QKgv7E9a6QbAiKnLHSxysKWgXDKNdfXZCQM"}},"required":["publicKeys","secretKey"]}},"required":["multisigType"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"501":{"description":"Not Implemented","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/ping/advancedWalletManager":{"post":{"summary":"Advanced Wallets - Ping Advanced Wallet Manager","description":"Test your connection between the Advanced Wallet Manager (AWM) and the Master Bitgo Express (MBE) servers.","operationId":"advancedwallet.mbe.awm.ping","tags":["Advanced Wallets"],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"awmResponse":{"$ref":"#/components/schemas/PingResponseType"}},"required":["status","awmResponse"]}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"details":{"type":"string"}},"required":["error","details"]}}}}}}},"/express/api/v1/wallets/simplecreate":{"post":{"summary":"Create Wallet with Keychains","description":"Creates a new 2-of-3 multisignature wallet along with all three required keychains in a single\noperation. This is a convenience method that handles the entire wallet setup process.\n\n**WARNING: BE SURE TO BACKUP! NOT DOING SO CAN RESULT IN LOSS OF FUNDS!**\n\n**Workflow:**\n1. Creates the user keychain locally and encrypts it with the provided passphrase\n2. Handles backup keychain based on parameters (see Backup Keychain Strategies below)\n3. Uploads the encrypted user keychain and backup keychain xpub to BitGo\n4. Creates the BitGo-managed keychain on the service\n5. Creates the 2-of-3 multisig wallet on BitGo with all three public keys\n\n**Backup Keychain Strategies:**\n- **KRS Provider (Recommended)**: Set backupXpubProvider to use a Key Recovery Service (e.g., \"keyternal\")\n- Creates instant-capable wallets\n- Professional key management\n- Cannot be combined with backupXpub\n- **External Xpub (Recommended)**: Provide backupXpub generated on a separate, secure machine\n- Maximum security (keys never on same machine)\n- You control the backup key\n- Cannot be combined with backupXpubProvider\n- **Local Generation (NOT RECOMMENDED)**: If neither backupXpub nor backupXpubProvider provided\n- Creates backup key on same machine as user key (security risk)\n- Response includes warning message and unencrypted backup xprv\n- You MUST back up the backup keychain yourself\n\n**Response:** Returns wallet object and all three keychains. If backup keychain was created\nlocally, response includes warning message and the backup keychain will contain xprv (which\nyou must securely back up). Otherwise, backup keychain only contains xpub.","operationId":"express.v1.wallet.simplecreate","tags":["Express"],"parameters":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"Wallet creation parameters including passphrase, label, and backup key configuration","properties":{"passphrase":{"type":"string","description":"Wallet passphrase to encrypt user and backup keys with (required)"},"label":{"type":"string","description":"Wallet label shown in BitGo UI"},"backupXpub":{"type":"string","description":"Backup keychain xpub generated on a separate machine (HIGHLY RECOMMENDED for security - cannot be used with backupXpubProvider)"},"backupXpubProvider":{"type":"string","description":"Key Recovery Service provider for backup key, e.g. \"keyternal\" (creates instant-capable wallet - cannot be used with backupXpub)"},"enterprise":{"type":"string","description":"Enterprise ID to create wallet under"},"passcodeEncryptionCode":{"type":"string","description":"Code used to encrypt the wallet passcode for the recovery process"},"disableTransactionNotifications":{"type":"boolean","description":"Disable transaction notifications for this wallet"},"disableKRSEmail":{"type":"boolean","description":"Disable KRS email notifications (only applicable when using backupXpubProvider)"}},"required":["passphrase"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimpleCreateResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BitgoExpressError"}}}}}}},"/express/api/v1/walletshare/{shareId}/acceptShare":{"post":{"summary":"Accept a Wallet Share","description":"Accepts a wallet share invitation from another user, granting access to the shared wallet\naccording to the permissions specified by the sharing user.\n\n## Wallet Share Permissions\n- **View**: Read-only access to wallet information and transactions\n- **Spend**: Ability to create and sign transactions\n- **Admin**: Full control including user management and settings\n\n## Acceptance Workflow\n\nThe acceptance process varies based on the share type:\n\n### 1. View-Only Shares\nNo encryption processing needed. The share is accepted immediately without requiring userPassword.\n\n### 2. Spend/Admin Shares with Keychain (Standard Path)\nUses ECDH (Elliptic Curve Diffie-Hellman) key sharing:\n- Requires `userPassword` to decrypt your ECDH keychain\n- Derives a shared secret between you and the sharing user\n- Decrypts the shared wallet keys using this secret\n- Re-encrypts the keys with `newWalletPassphrase` (or `userPassword` if not specified)\n- Stores the encrypted keys for future wallet operations\n\n### 3. Override Path (Out-of-Band Key Exchange)\nWhen `overrideEncryptedXprv` is provided:\n- Bypasses the ECDH key derivation process\n- Uses the pre-encrypted xprv directly\n- No password required (keys are already encrypted)\n\n## Security Notes\n- `userPassword` must match your BitGo account password\n- `newWalletPassphrase` should be strong and securely stored\n- The ECDH key exchange ensures only the intended recipient can decrypt the wallet keys\n- `overrideEncryptedXprv` should only be used for keys received through a separate secure channel","operationId":"express.v1.wallet.acceptShare","tags":["Express"],"parameters":[{"name":"shareId","description":"ID of the wallet share to accept","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"Credentials and configuration for accepting the wallet share","properties":{"userPassword":{"type":"string","description":"User's password for authentication.\nRequired when accepting shares with spend/admin permissions that include encrypted keychains,\nunless overrideEncryptedXprv is provided. Used to decrypt the user's ECDH keychain\nfor deriving the shared secret that decrypts the shared wallet keys."},"newWalletPassphrase":{"type":"string","description":"New passphrase to encrypt the shared wallet keys with.\nIf not provided, defaults to userPassword. This passphrase will be required\nfor future wallet operations that need to decrypt the wallet keys.\nOnly applicable when accepting shares with encrypted keychains."},"overrideEncryptedXprv":{"type":"string","description":"Pre-encrypted wallet xprv received through an out-of-band secure channel.\nWhen provided, bypasses the ECDH key derivation and decryption process.\nUse this only if you received the encrypted key separately from the share invitation.\nThe xprv must already be encrypted with your desired passphrase."}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/AcceptShareResponse"}],"description":"Successfully accepted wallet share"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/BitgoExpressError"}],"description":"Error response"}}}}}}},"/express/api/v2/{coin}/verifyaddress":{"post":{"summary":"Verify address for a given coin","description":"Returns whether the address is valid for the specified coin.\nFor UTXO coins, an optional legacy script hash flag can be provided to allow previous script hash versions.","operationId":"express.verifycoinaddress","tags":["Express"],"parameters":[{"name":"coin","description":"Coin ticker / chain identifier","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"Request body for coin-specific address verification.","properties":{"address":{"type":"string","description":"Address which should be verified for correct format"},"supportOldScriptHashVersion":{"type":"boolean","description":"Accept legacy script hash version for applicable UTXO coins (optional)."}},"required":["address"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"isValid":{"type":"boolean"}},"required":["isValid"]}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BitgoExpressError"}}}}}}},"/express/api/v2/ping":{"get":{"summary":"Ping","description":"Health check endpoint that returns 200 when the Express server is running.","operationId":"express.v2.ping","tags":["Express"],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BitgoExpressError"}}}}}}},"/api/v2/pingexpress":{"get":{"tags":["Express"],"summary":"Ping BitGo Express","operationId":"express.ping","description":"Ping bitgo express to ensure that it is still running. Unlike /ping, this does not try connecting to bitgo.com.\n","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressPingResponse"}}}}}}},"/api/v2/{coin}/wallet/{walletId}/sendcoins":{"post":{"tags":["Express"],"summary":"Send transaction","operationId":"express.wallet.sendcoins","description":"This call allows you to create and send cryptocurrency to a destination address.","parameters":[{"$ref":"#/components/parameters/pathCoin"},{"$ref":"#/components/parameters/pathWalletId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressSendCoinsRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressSendCoinsResponse"}}}},"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressSendCoinsResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PlatformError3"},{"$ref":"#/components/schemas/InvalidWalletId"}]}}}}}}},"/api/v2/{coin}/wallet/{walletId}/sendmany":{"post":{"tags":["Express"],"summary":"Send to many","operationId":"express.wallet.sendmany","description":"Send coins or tokens to one or more recipients. You can use this endpoint to schedule outgoing transactions in bulk, lowering your aggregate amount of blockchain fees.\n\n\nWorks with both multisignature and MPC wallets. Also supports external-signer mode.\n\nWorks with most BitGo-supported assets, but currently unavailable for: ALGO, ARBETH, AVAXC, CELO, CELO:CUSD, CSPR, DOT, EOS, HTETH:BGERCH, NEAR, OPETH, STX, TON, TRX, TRX:USDC, XLM, XRP, XTZ\n","parameters":[{"$ref":"#/components/parameters/pathCoin"},{"$ref":"#/components/parameters/pathWalletId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressSendManyRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressSendCoinsResponse"}}}},"202":{"description":"Accepted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressSendCoinsResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PlatformError3"},{"$ref":"#/components/schemas/InvalidWalletId"}]}}}}}}},"/api/v2/encrypt":{"post":{"tags":["Express"],"summary":"Encrypt messages","operationId":"express.encrypt","description":"Symmetrically encrypt an arbitrary message with provided password","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressEncryptRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressEncryptResponse"}}}}}}},"/api/v2/decrypt":{"post":{"tags":["Express"],"summary":"Decrypt messages","operationId":"express.decrypt","description":"Decrypt a ciphertext generated by encrypt route with provided password","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressDecryptRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressDecryptResponse"}}}},"500":{"description":"Internal Server Error"}}}},"/api/v2/calculateminerfeeinfo":{"post":{"tags":["Express"],"summary":"Calculate mining fee","operationId":"express.calculateminerfeeinfo","description":"Calculate the fee and estimated size in bytes for a Bitcoin transaction","deprecated":true,"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressCalculateMinerFeeInfoRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressCalculateMinerFeeInfoResponse"}}}}}}},"/api/v2/{coin}/keychain/local":{"post":{"tags":["Express"],"summary":"Create key","operationId":"express.keychain.local","parameters":[{"$ref":"#/components/parameters/pathCoin"}],"description":"Local client-side function to create a new keychain.\n\nCreating your keychains is a critical step for safely securing your Bitcoin. When generating new keychains, this API uses a random number generator that adheres to industry standards. If you provide your own seed, you must take extreme caution when creating it.\nReturns an object containing the xprv and xpub for the new chain. The created keychain is not known to the BitGo service. To use it with the BitGo service, use the ‘Store Keychain’ API call.\n\nFor security reasons, it is highly recommended that you encrypt and destroy the original xprv immediately to prevent theft.\n","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressCreateKeychainResponse"}}}}}}},"/api/v2/{coin}/walletshare/{walletShareId}/acceptshare":{"post":{"tags":["Express"],"summary":"Accept wallet share","operationId":"express.wallet.acceptshare","parameters":[{"$ref":"#/components/parameters/pathCoin"},{"$ref":"#/components/parameters/pathWalletShareId"}],"description":"Accept a wallet share, adding the wallet to the user's list","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressAcceptShareRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressAcceptShareResponse"}}}}}}},"/api/v2/{coin}/signtx":{"post":{"tags":["Express"],"summary":"Sign transaction","operationId":"express.signtx","description":"This route is for users who would like to maintain their own keys, or otherwise would not like BitGo to decrypt their key, and instead provide it in the clear themselves","parameters":[{"$ref":"#/components/parameters/pathCoin"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressSignTxRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressSignTxResponse"}}}}}}},"/api/v2/{coin}/wallet/{walletId}/signtx":{"post":{"tags":["Express"],"summary":"Sign wallet transaction","operationId":"express.wallet.signtx","description":"Sign transactions for multisignature wallets using external-signing mode. You must maintain your keys, in the clear, on a separate Express server. BitGo doesn't decrypt your private keys.","parameters":[{"$ref":"#/components/parameters/pathCoin"},{"$ref":"#/components/parameters/pathWalletId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressWalletSignTxRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressSignTxResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PlatformError3"},{"$ref":"#/components/schemas/InvalidWalletId"}]}}}}}}},"/api/v2/{coin}/wallet/{walletId}/signtxtss":{"post":{"tags":["Express"],"summary":"Sign MPC transaction","operationId":"express.wallet.signtxtss","description":"Sign transactions for MPC wallets. If using external-signer mode, you must maintain your keys, in the clear, on a separate Express server - BitGo doesn't decrypt your private MPC key shares.","parameters":[{"$ref":"#/components/parameters/pathCoin"},{"$ref":"#/components/parameters/pathWalletId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressSignTssTx"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionRequest"}}}}}}},"/api/v2/{coin}/wallet/{walletId}/recovertoken":{"post":{"tags":["Express"],"summary":"Recover ETH token","operationId":"express.wallet.recovertoken","description":"Recover an unsupported Ethereum token from a BitGo multisig wallet","parameters":[{"$ref":"#/components/parameters/pathCoin"},{"$ref":"#/components/parameters/pathWalletId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressWalletRecoverTokenRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressWalletRecoverTokenResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PlatformError3"},{"$ref":"#/components/schemas/InvalidWalletId"}]}}}}}}},"/api/v2/{coin}/wallet/{walletId}/consolidateunspents":{"post":{"tags":["Express"],"summary":"Consolidate unspents (simple)","operationId":"express.wallet.consolidateunspents","description":"Builds, signs, and sends a transaction to consolidate unspents all in 1 call. Consolidating unspents is only for UTXO-based assets.","parameters":[{"$ref":"#/components/parameters/pathCoin"},{"$ref":"#/components/parameters/pathWalletId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressConsolidateUnspentsRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressSendCoinsResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PlatformError3"},{"$ref":"#/components/schemas/InvalidWalletId"}]}}}}}}},"/api/v2/{coin}/wallet/{walletId}/fanoutunspents":{"post":{"tags":["Express"],"summary":"Fan out unspents","operationId":"express.wallet.fanoutunspents","description":"Fan out unspents on a wallet","parameters":[{"$ref":"#/components/parameters/pathCoin"},{"$ref":"#/components/parameters/pathWalletId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressFanOutUnspentsRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressSendCoinsResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PlatformError3"},{"$ref":"#/components/schemas/InvalidWalletId"}]}}}}}}},"/api/v2/{coin}/wallet/{walletId}/iswalletaddress":{"post":{"tags":["Express"],"summary":"Verify if an address belongs to a wallet","operationId":"express.wallet.isWalletAddress","description":"This endpoint verifies whether a given address belongs to the specified wallet.\nIt performs cryptographic verification, checking address derivation against wallet keychains and configuration.\n\nReturns `true` if the address belongs to the wallet.\nThrows an error if verification fails or parameters are invalid.\n\nTo verify a baseAddress, set `baseAddress` and `address` to the base address of the wallet.\n\nDue to architecture limitations, forwarder version 0 addresses cannot be verified and will return `true` without verification.\n\nVerifying custodial wallet addresses is not supported.\n","parameters":[{"$ref":"#/components/parameters/pathCoin"},{"$ref":"#/components/parameters/pathWalletId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressIsWalletAddressRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressIsWalletAddressResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PlatformError3"}]}}}},"500":{"description":"Addresss Verification Failure","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PlatformError3"}]}}}}}}},"/api/v2/{coin}/wallet/{walletId}/sweep":{"post":{"tags":["Express"],"summary":"Sweep funds","operationId":"express.wallet.sweep","description":"The sweep call spends the full balance of the wallet to the provided address. On UTXO coins, the sweep call will\nfail if the wallet has any unconfirmed funds, or if there are more unspents than can be sent with a\nsingle transaction.\n\n**Note:** This endpoint is designed primarily for UTXO-based coins (e.g. BTC, LTC) using\nthe multisig wallet architecture. It is **not** supported for account-based coins (e.g. ETH, XRP,\nALGO). Calling this endpoint for account-based coins will result in an error.\n","parameters":[{"$ref":"#/components/parameters/pathCoin"},{"$ref":"#/components/parameters/pathWalletId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressSweepRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressSendCoinsResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PlatformError3"},{"$ref":"#/components/schemas/InvalidWalletId"}]}}}}}}},"/api/v2/{coin}/wallet/{walletId}/acceleratetx":{"post":{"tags":["Express"],"summary":"Accelerate Transaction","operationId":"express.wallet.acceleratetx","description":"Send a new transaction to accelerate the targeted unconfirmed transaction either by using Child-Pays-For-Parent (CPFP) or Replace-By-Fee (RBF).\n\n**Background**:\n1. In Bitcoin, a transaction can only be included in a block when all its inputs are confirmed.\nThis requirement can be used to increase the effective fee rate of a stuck low-fee transaction.\nOne of the stuck transaction's outputs is spent in a child transaction with a much higher fee.\nMiners include the transactions with the highest fees first to maximize their revenue,\nbut the high-fee child transaction can only be included once the parent transaction is confirmed.\nThe miners are therefore incentivized to include both the parent and the child transaction together in a block.\nA Child-Pays-For-Parent transaction can be created by a recipient of the transaction or by the sender if the\ntarget transaction has a change output.\n2. In Bitcoin, a transaction can be replaced by a new transaction with a higher fee as long as the new transaction spends few or all of the same inputs used by the original transaction that's being replaced. Unlike CPFP, only the sender of the transaction can create a Replace-By-Fee transaction, and only either of the transactions can be confirmed. More often than not, the replacement transaction with the higher fee will be accepted by the miners.\n\n**Notes**:\n1. As other coins do not have a blockspace market, this route is only available for Bitcoin at this time.<br/>\n2. Using CPFP, if a target transaction depends on other unconfirmed transactions, this route also adds sufficient fees to elevate the entire transaction ancestry's effective fee rate to the `cpfpFeeRate`.\n","parameters":[{"$ref":"#/components/parameters/pathBitcoin"},{"$ref":"#/components/parameters/pathWalletId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressAccelerateTxRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressSendCoinsResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PlatformError3"},{"$ref":"#/components/schemas/InvalidWalletId"}]}}}}}}},"/api/v2/{coin}/canonicaladdress":{"post":{"tags":["Express"],"summary":"Canonicalize address","operationId":"express.canonicaladdress","description":"Canonicalize an LTC or BCH address.","parameters":[{"$ref":"#/components/parameters/pathCoin"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressCanonicalAddressRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddressString3"}}}}}}},"/api/v2/{coin}/verifyaddress":{"post":{"tags":["Express"],"summary":"Verify address","operationId":"express.verifycoinaddress1","description":"Verify address for a given coin","parameters":[{"$ref":"#/components/parameters/pathCoin"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressVerifyCoinAddressRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"isValid":{"type":"boolean"}}}}}}}}},"/api/v2/{coin}/wallet/{walletId}/state":{"get":{"tags":["Express"],"summary":"Lightning - Get node state","operationId":"express.lightning.getState","description":"This is only used for self-custody lightning. Get the current state of the lightning node.","parameters":[{"$ref":"#/components/parameters/pathLightningCoin"},{"$ref":"#/components/parameters/pathWalletId"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressLightningNodeStateResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PlatformError3"},{"$ref":"#/components/schemas/InvalidWalletId"}]}}}}}}},"/express/api/v2/{coin}/wallet/{walletId}":{"put":{"tags":["Express"],"summary":"Update Wallet","description":"The express update wallet route is meant to be used for lightning (lnbtc/tlnbtc). It will produced a signed wallet update request that can be used to update the wallet. For other coins, use the standard wallet update endpoint.","operationId":"express.wallet.update","parameters":[{"$ref":"#/components/parameters/pathCoin"},{"$ref":"#/components/parameters/pathWalletId"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"signerHost":{"type":"string","description":"The host address of the lightning signer node."},"signerTlsCert":{"type":"string","description":"The TLS certificate for the lighting signer node encoded to base64."},"signerMacaroon":{"type":"string","description":"(Optional) The signer macaroon for the lighting signer node."},"passphrase":{"type":"string","description":"The wallet passphrase. This is not uploaded to BitGo, but used to decrypt userAuthKey used to sign the request before sending to BitGo."}}}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Wallet1"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PlatformError3"},{"$ref":"#/components/schemas/InvalidWalletId"}]}}}},"403":{"description":"Forbidden"},"404":{"description":"Not Found"}}}},"/api/v2/{coin}/wallet/{walletId}/initwallet":{"post":{"tags":["Express"],"summary":"Lightning - Initialize node","operationId":"express.lightning.initWallet","description":"This is only used for self-custody lightning. Initialize a newly created Lightning Network Daemon (LND) for the first time. Returns the updated wallet with the encrypted admin macaroon in the `coinSpecific` response field.","parameters":[{"$ref":"#/components/parameters/pathLightningCoin"},{"$ref":"#/components/parameters/pathWalletId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressInitWalletRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressGenerateWalletResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PlatformError3"},{"$ref":"#/components/schemas/InvalidWalletId"}]}}}}}}},"/api/v2/{coin}/wallet/{walletId}/unlockwallet":{"post":{"tags":["Express"],"summary":"Lightning - Unlock node","operationId":"express.lightning.unlockWallet","description":"This is only used for self-custody lightning. Unlock the Lightning Network Daemon (LND) node with the given wallet password.","parameters":[{"$ref":"#/components/parameters/pathLightningCoin"},{"$ref":"#/components/parameters/pathWalletId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressUnlockLightningWalletRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressUnlockLightningWalletResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PlatformError3"},{"$ref":"#/components/schemas/InvalidWalletId"}]}}}}}}},"/api/v2/{coin}/wallet/{walletId}/lightning/payment":{"post":{"tags":["Express"],"summary":"Lightning - Pay a Lightning Invoice","operationId":"express.lightning.payInvoice","description":"Pay a Lightning Network invoice from the given wallet.","parameters":[{"$ref":"#/components/parameters/pathLightningCoin"},{"$ref":"#/components/parameters/pathWalletId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressPayInvoiceRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressPayInvoiceResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PlatformError3"},{"$ref":"#/components/schemas/InvalidWalletId"}]}}}}}}},"/api/v2/{coin}/wallet/{walletId}/lightning/withdraw":{"post":{"tags":["Express"],"summary":"Lightning - Withdraw to an onchain address","operationId":"express.lightning.withdrawOnchain","description":"Withdraw onchain balance from a lightning wallet to a regular onchain address.","parameters":[{"$ref":"#/components/parameters/pathLightningCoin"},{"$ref":"#/components/parameters/pathWalletId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressOnchainWithdrawRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressOnchainWithdrawResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PlatformError3"},{"$ref":"#/components/schemas/InvalidWalletId"}]}}}}}}},"/api/v2/{coin}/wallet/{walletId}/consolidateAccount":{"post":{"tags":["Express"],"summary":"Consolidate account (simple)","operationId":"express.wallet.consolidateAccount","description":"Build, sign, and send a consolidation transaction for an account-based asset all in 1 call. For account-based assets, consolidating the balances in the receive addresses to the base address maximizes the spendable balance of a wallet.","parameters":[{"$ref":"#/components/parameters/pathCoin"},{"$ref":"#/components/parameters/pathWalletId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressConsolidateAccountRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressSendConsolidationResponse"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PlatformError3"},{"$ref":"#/components/schemas/InvalidWalletId"}]}}}}}}},"/api/v2/{coin}/wallet/{walletId}/signermacaroon":{"post":{"summary":"Lightning - Create signer macaroon","description":"This is only used for self-custody lightning. Create the signer macaroon for the watch-only\nLightning Network Daemon (LND) node. This macaroon derives from the signer node admin macaroon\nand is used by the watch-only node to request signatures from the signer node for operational\ntasks. Returns the updated wallet with the encrypted signer macaroon in the `coinSpecific`\nresponse field.","operationId":"express.lightning.signerMacaroon","tags":["Express"],"x-internal":false,"parameters":[{"name":"coin","description":"A lightning coin name","in":"path","required":true,"schema":{"allOf":[{"$ref":"#/components/schemas/CoinString"}],"example":"lnbtc"}},{"name":"walletId","description":"The wallet ID","in":"path","required":true,"schema":{"allOf":[{"$ref":"#/components/schemas/WalletIdString"}],"example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"Request body for creating a signer macaroon via Express.","properties":{"passphrase":{"type":"string","description":"Passphrase to decrypt the admin macaroon of the signer node."},"addIpCaveatToMacaroon":{"type":"boolean","description":"If true, adds an IP caveat to the generated signer macaroon."}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressGenerateWalletResponse1"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PlatformError"},{"$ref":"#/components/schemas/InvalidWalletId1"}]}}}}}}},"/api/v2/{coin}/wallet/generate":{"post":{"summary":"Generate wallet","description":"Generate a new wallet for a coin. If you want a wallet to hold tokens, generate a wallet for the native coin of the\nblockchain (e.g. generate an ETH wallet to hold ERC20 tokens).\n\nCalling this endpoint does all of the following:\n\n* Creates the user keychain locally on your machine and encrypts it with the provided passphrase (skipped if you pass\na `userKey`).\n* Creates the backup keychain locally on your machine.\n* Uploads the encrypted user keychain and public backup keychain to BitGo.\n* Creates the BitGo key (and the backup key if you pass `backupXpubProvider`) on the service.\n* Creates the wallet on BitGo with the 3 public keys above.\n\nⓘ Many account-based assets, including Ethereum, require you to\n[Fund Gas Tanks](https://developers.bitgo.com/docs/get-started-gas-tanks) to initialize new wallets on chain. Ensure\nyour gas tank has a sufficient balance to cover this cost before generating a new wallet.","operationId":"express.wallet.generate","tags":["Express"],"x-internal":false,"parameters":[{"name":"includeKeychains","description":"Include user, backup and bitgo keychains along with generated wallet","in":"query","schema":{"type":"boolean","default":false}},{"name":"coin","description":"A cryptocurrency or token ticker symbol","in":"path","required":true,"schema":{"allOf":[{"$ref":"#/components/schemas/CoinString"}],"example":"btc"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"Request body for generating a wallet via Express.","properties":{"label":{"type":"string","description":"Name the user assigned to the wallet","example":"My Wallet"},"enterprise":{"allOf":[{"$ref":"#/components/schemas/EnterpriseIdString"}],"description":"Enterprise id. This is required for Ethereum wallets since they can only be created as part of an enterprise","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"multisigType":{"type":"string","enum":["onchain","tss"],"description":"If absent, BitGo uses the default wallet type for the asset."},"type":{"type":"string","enum":["hot","cold","custodial","trading"],"description":"The type of wallet, defined by key management and signing protocols."},"passphrase":{"type":"string","description":"Passphrase to be used to encrypt the user key on the wallet"},"userKey":{"type":"string","description":"User provided public key"},"backupXpub":{"type":"string","description":"public part of a key pair","example":"xpub661MyMwAqRbcGMVhmc7wqQRYMtcX9LAvSj1pjB213y5TsrkV2uuzJjWnjBrT1FUeNWGPjaVm5p7o6jdNcQJrV1cy3a1R8NQ9m7LuYKA8RpH"},"backupXpubProvider":{"type":"string","enum":["dai"],"description":"Optional key recovery service to provide and store the backup key"},"disableTransactionNotifications":{"type":"boolean","description":"Flag for disabling wallet transaction notifications"},"passcodeEncryptionCode":{"type":"string","description":"The passphrase used for decrypting the encrypted wallet passphrase during wallet recovery"},"coldDerivationSeed":{"type":"string","description":"Seed that derives an extended user key or common keychain for a cold wallet."},"gasPrice":{"type":"number","description":"Gas price to use when deploying an Ethereum wallet"},"disableKRSEmail":{"type":"boolean","description":"Flag for preventing KRS from sending email after creating backup key"},"walletVersion":{"type":"number","default":1,"description":"(ETH only) Specify the wallet creation contract version used when creating a wallet contract.","minimum":0,"maximum":6},"isDistributedCustody":{"type":"boolean","description":"True, if the wallet type is a distributed-custodial. If passed, you must also pass the enterprise parameter."},"bitgoKeyId":{"type":"string","description":"BitGo key ID for self-managed cold MPC wallets.","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"commonKeychain":{"type":"string","description":"Common keychain for self-managed cold MPC wallets."}},"required":["label","enterprise"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressGenerateWalletResponse1"}}}}}}},"/api/v2/{coin}/wallet/{walletId}/share":{"post":{"tags":["Express"],"summary":"Share wallet","operationId":"express.wallet.share","parameters":[{"$ref":"#/components/parameters/pathCoin"},{"$ref":"#/components/parameters/pathWalletId"}],"description":"Share wallet with an existing BitGo user","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressShareWalletRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareWalletResponse"}}}}}}}},"components":{"callbacks":{},"headers":{},"links":{},"parameters":{"pathApprovalId":{"name":"approvalId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/Id"}},"pathBitcoin":{"name":"coin","in":"path","required":true,"schema":{"$ref":"#/components/schemas/Bitcoin"}},"pathCoin":{"name":"coin","in":"path","required":true,"schema":{"$ref":"#/components/schemas/Coin"}},"pathLightningCoin":{"name":"coin","in":"path","required":true,"schema":{"$ref":"#/components/schemas/LightningCoin"}},"pathWalletId":{"name":"walletId","in":"path","required":true,"description":"The wallet ID.","schema":{"$ref":"#/components/schemas/Id"}},"pathWalletShareId":{"name":"walletShareId","in":"path","required":true,"schema":{"$ref":"#/components/schemas/Id"}}},"requestBodies":{},"responses":{"BadRequest":{"description":"Bad Request","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/GeneralError"},{"$ref":"#/components/schemas/ValidationError"}]},"example":{"code":"BadRequest","message":"Bad Request","status":400}}}},"BadRequestError":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StakingError"}}}},"BadRequestError1":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StakingError"},"example":{"error":"Bad Request","errorName":"BadRequest","reqId":"some-id"}}}},"Conflict":{"description":"Conflict - The request conflicts with the current state of the resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralError"},"example":{"code":"Conflict","message":"A pending change already exists for this policy rule","status":409}}}},"ConflictError":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StakingError"},"example":{"error":"Conflicting clientID","errorName":"Conflict","reqId":"some-id"}}}},"Forbidden":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralError"},"example":{"code":"AccessDenied","message":"License not added for enterprise","status":403}}}},"ForbiddenError":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StakingError"}}}},"ForbiddenError1":{"description":"Forbidden - Insufficient permissions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error1"},"examples":{"forbidden":{"summary":"Insufficient permissions","value":{"error":"Forbidden, reqId=unk-nqo97l23l2ofpvgkbb8z","errorName":"backend:common:forbidden","reqId":"unk-nqo97l23l2ofpvgkbb8z"}}}}}},"ForbiddenError2":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StakingError"},"example":{"error":"Staking license not added for enterprise","errorName":"AccessDenied","reqId":"some-id"}}}},"ForbiddenError3":{"description":"Forbidden - Insufficient permissions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WsError"}}}},"InternalServerError":{"description":"Server Error - Transient error please try again","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StakingError"}}}},"InternalServerError1":{"description":"Server Error - Transient error please try again","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StakingError"},"example":{"error":"Database is down","errorName":"Internal_Server_Error","reqId":"some-id"}}}},"MalformedJSONError":{"description":"Unprocessable Entity - JSON payload is improperly formatted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error1"},"examples":{"malformedJSON":{"summary":"JSON payload is improperly formatted","value":{"error":"backend:common:malformedJSON","errorName":"backend:common:malformedJSON","reqId":"unk-nqo97l23l2ofpvgkbb8z"}}}}}},"NotFound":{"description":"The specified resource was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralError"},"example":{"code":"NotFound","message":"Touchpoint not found","status":404}}}},"NotFoundError":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StakingError"}}}},"NotFoundError1":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StakingError"},"example":{"error":"Wallet not found","errorName":"NotFound","reqId":"some-id"}}}},"RateLimitError":{"description":"Too Many Requests - Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error1"},"examples":{"rateLimitExceeded":{"summary":"Too many API requests","value":{"error":"backend:common:rateLimitExceeded","errorName":"backend:common:rateLimitExceeded","reqId":"unk-nqo97l23l2ofpvgkbb8z"}}}}}},"ServerError":{"description":"Server Error - Transient error please try again","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralError"},"example":{"code":"Internal_Server_Error","message":"Database is down","status":500}}}},"Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeneralError"},"example":{"code":"Unauthorized","message":"Unauthorized","status":401}}}},"UnauthorizedError":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StakingError"}}}},"UnauthorizedError1":{"description":"Unauthorized - Invalid or missing authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error1"},"examples":{"unauthorized":{"summary":"Unauthorized access","value":{"error":"Unauthorized","errorName":"Error","reqId":"unk-nqo97l23l2ofpvgkbb8z"}}}}}},"UnauthorizedError2":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StakingError"},"example":{"error":"Unauthorized","errorName":"Unauthorized","reqId":"some-id"}}}},"internalServerError1":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error1"},"examples":{"internalServerError":{"summary":"Generic server error - Reach out to support for more information","value":{"error":"backend:common:internalServerError","errorName":"backend:common:internalServerError","reqId":"unk-nqo97l23l2ofpvgkbb8z"}}}}}}},"schemas":{"AccelerationIntent":{"title":"AccelerationIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["acceleration"],"description":"Must be \"acceleration\"."},"txid":{"type":"string","description":"Transaction hash (0x-prefixed) of the pending transaction to accelerate."},"senderAddress":{"type":"string","description":"Sender address of the original transaction."}},"required":["intentType","txid"]},{"$ref":"#/components/schemas/BaseIntent"}],"description":"Base codec for acceleration intents. Replaces a stuck pending EVM transaction\nwith 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"}]},"AcceptShareResponse":{"title":"AcceptShareResponse","type":"object","description":"Response from accepting a wallet share","properties":{"changed":{"type":"boolean","description":"Indicates whether the share state was changed by this operation.\ntrue: The share was successfully accepted (state changed from pending to accepted).\nfalse: The share was already in the target state (already accepted)."},"state":{"type":"string","description":"Current state of the wallet share after the operation.\nPossible values: 'accepted', 'rejected', 'active', 'pendingapproval', 'canceled'\nShould be 'accepted' after a successful acceptance."}},"required":["changed","state"]},"AccountBaseBuildOptions":{"title":"AccountBaseBuildOptions","type":"object","properties":{"nonce":{"oneOf":[{"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":[{"type":"object","properties":{"intentType":{"type":"string","enum":["consolidate"],"description":"Must be \"consolidate\"."},"receiveAddress":{"type":"string","description":"Destination address for consolidated funds. Must be a wallet-owned address."},"senderAddressIndex":{"allOf":[{"$ref":"#/components/schemas/optionalNumber"}],"description":"Index of the wallet address to use as the sender."},"consolidateId":{"allOf":[{"$ref":"#/components/schemas/optionalString"}],"description":"Opaque identifier used to correlate consolidation requests."},"recipients":{"type":"array","items":{"allOf":[{"type":"object","properties":{"tokenData":{"$ref":"#/components/schemas/TokenData"}}},{"$ref":"#/components/schemas/RecipientEntry"}],"description":"Token recipients for token consolidation flows."}},"keepAlive":{"allOf":[{"$ref":"#/components/schemas/optionalBoolean"}],"description":"When true, leaves a small amount in the source address to keep it alive."}},"required":["intentType","receiveAddress"]},{"$ref":"#/components/schemas/AccountBaseBuildOptions"}]},"AccountBaseCreateAccountIntent":{"title":"AccountBaseCreateAccountIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["createAccount"]},"name":{"$ref":"#/components/schemas/optionalString"}},"required":["intentType"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/AccountBaseBuildOptions"}]},"AccountBaseUpdateAccountIntent":{"title":"AccountBaseUpdateAccountIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["updateAccount"]},"options":{"$ref":"#/components/schemas/optionalUnknownObject"}},"required":["intentType"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/AccountBaseBuildOptions"}]},"ActionType":{"title":"ActionType","type":"string","enum":["deny","getApproval","getEnterpriseUserApproval","getUserRoleApproval","getAnyApproval","getFinalApproval","getVideoApproval","getIdVerification","verifyWalletRebalance","getCustodianApproval","getCustodialSignature","triggerWebhookNotification","performLivenessVerification","recommendBackingWalletRouting","getManualTrustReview","getManualSupportReview","getSupportManagerApproval","getVideoApprovalFromSupport"]},"AdaConsolidateIntent":{"title":"ADA Consolidate Intent","allOf":[{"type":"object","properties":{"unspents":{"$ref":"#/components/schemas/optionalStringArray"}}},{"$ref":"#/components/schemas/AccountBaseConsolidateIntent"}]},"AdaPaymentIntent":{"title":"ADA Payment Intent","allOf":[{"type":"object","properties":{"unspents":{"$ref":"#/components/schemas/optionalStringArray"}},"required":["unspents"]},{"$ref":"#/components/schemas/PaymentIntent"}]},"AdaStakeClaimRewardsIntent":{"title":"ADA Stake Claim Rewards Intent","allOf":[{"$ref":"#/components/schemas/StakeClaimRewardsIntent"}]},"AdaStakeIntent":{"title":"ADA Stake Intent","allOf":[{"type":"object","properties":{"poolKeyHash":{"type":"string"},"dRepId":{"type":"string"},"amount":{"type":"object","properties":{"symbol":{"type":"string"},"value":{"type":"string"}},"required":["symbol","value"]}},"required":["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.\n"}},"required":["poolKeyHash"]}]},"AdaUnstakeIntent":{"title":"ADA Unstake Intent","allOf":[{"type":"object","properties":{"poolKeyHash":{"type":"string"},"amount":{"type":"object","properties":{"symbol":{"type":"string"},"value":{"type":"string"}},"required":["symbol","value"]}},"required":["poolKeyHash"]},{"$ref":"#/components/schemas/UnstakeIntent"}]},"AdaVoteDelegationIntent":{"title":"ADA Vote Delegation Intent","allOf":[{"type":"object","properties":{"dRepId":{"type":"string"}},"required":["dRepId"]},{"$ref":"#/components/schemas/VoteDelegationIntent"}]},"Address":{"title":"Address","type":"object","properties":{"address":{"$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":{"id":{"allOf":[{"$ref":"#/components/schemas/Id"}],"description":"platform public id for an address"},"address":{"$ref":"#/components/schemas/AddressString3"},"chain":{"$ref":"#/components/schemas/Chain"},"index":{"type":"integer"},"coin":{"type":"string"},"lastNonce":{"type":"integer","default":-1},"wallet":{"allOf":[{"$ref":"#/components/schemas/Id"}],"description":"The wallet which contains this address"},"coinSpecific":{"type":"object","description":"Properties which are specific to certain coin types","properties":{"xlm":{"$ref":"#/components/schemas/AddressCoinSpecificXlm"},"txlm":{"$ref":"#/components/schemas/AddressCoinSpecificXlm"}}},"balance":{"allOf":[{"type":"object"},{"$ref":"#/components/schemas/AddressBalance"}],"description":"Balance of the address. In case of Eth and Celo, if returnBalancesForToken is passed with includeBalances, then it will return token balance in the address object. This field will be present only when `includeBalances` query param is passed as true."},"label":{"$ref":"#/components/schemas/AddressLabel"},"addressType":{"$ref":"#/components/schemas/AddressType1"}}},"Address21":{"title":"Address2","type":"object","description":"Address representation (`Address2` in platform.yaml).","properties":{"id":{"type":"string","description":"Platform public id for an address","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"address":{"$ref":"#/components/schemas/AddressString"},"chain":{"$ref":"#/components/schemas/AddressChain"},"index":{"type":"number"},"coin":{"$ref":"#/components/schemas/CoinString"},"lastNonce":{"type":"number","default":-1},"wallet":{"type":"string","description":"The wallet which contains this address","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"coinSpecific":{"allOf":[{"$ref":"#/components/schemas/Address2CoinSpecific"}],"description":"Properties which are specific to certain coin types"},"balance":{"$ref":"#/components/schemas/AddressBalance1"},"label":{"nullable":true,"allOf":[{"$ref":"#/components/schemas/AddressLabelString"}],"description":"A human-readable label for the address."},"addressType":{"$ref":"#/components/schemas/AddressType3"}}},"Address2CoinSpecific":{"title":"Address2CoinSpecific","type":"object","properties":{"xlm":{"$ref":"#/components/schemas/AddressCoinSpecificXlm1"},"txlm":{"$ref":"#/components/schemas/AddressCoinSpecificXlm1"}}},"AddressBalance":{"type":"object","properties":{"updated":{"type":"string","description":"The last time a transaction affected the balance of this address","format":"date-time"},"balance":{"type":"integer","description":"The cleared balance of the address","example":50000},"balanceString":{"type":"string","description":"String representation of `balance`. Guaranteed to not lose precision.","example":"50000"},"totalReceived":{"type":"integer","description":"The total amount received on this address (in the chain's base unit)"},"totalSent":{"type":"integer","description":"The total amount send from this address (in the chain's base unit)"},"confirmedBalanceString":{"type":"string","description":"The total balance of confirmed transactions for the address (in the chain's base unit).\nGuaranteed to not lose precision.\n","example":"40000"},"spendableBalanceString":{"type":"string","description":"The total balance of the address (in the chain's base unit) which may\nbe used as inputs for creating new transactions in string representation.\nGuaranteed to not lose precision.\n","example":"40000"}}},"AddressBalance1":{"title":"AddressBalance","type":"object","description":"Balance of an address (`AddressBalance` in platform.yaml).","properties":{"updated":{"type":"string","description":"The last time a transaction affected the balance of this address"},"balance":{"type":"number","description":"The cleared balance of the address"},"balanceString":{"type":"string","description":"String representation of `balance`. Guaranteed to not lose precision."},"totalReceived":{"type":"number","description":"The total amount received on this address (in the chain's base unit)"},"totalSent":{"type":"number","description":"The total amount sent from this address (in the chain's base unit)"},"confirmedBalanceString":{"type":"string","description":"Confirmed balance in string representation. Guaranteed to not lose precision."},"spendableBalanceString":{"type":"string","description":"Spendable balance in string representation. Guaranteed to not lose precision."}}},"AddressChain":{"title":"AddressChain","type":"number","enum":[0,1,10,11,20,21,30,31,40,41]},"AddressCoinSpecificXlm":{"type":"object","properties":{"memoId":{"allOf":[{"$ref":"#/components/schemas/IntegerString"},{"example":"1"}],"description":"Latest memo id generated for the wallet"},"rootAddress":{"type":"string","description":"Root address of the wallet","example":"GCTTCPH4IIDK7P72FFAEJ3ZFN6WDHJH6GGMRPHPM56ZWGIQ7B3XTIJAM"}}},"AddressCoinSpecificXlm1":{"title":"AddressCoinSpecificXlm","type":"object","description":"Properties specific to XLM and TXLM addresses (`AddressCoinSpecificXlm` in platform.yaml).","properties":{"memoId":{"type":"string","description":"Latest memo id generated for the wallet","example":"1"},"rootAddress":{"type":"string","description":"Root address of the wallet","example":"GCTTCPH4IIDK7P72FFAEJ3ZFN6WDHJH6GGMRPHPM56ZWGIQ7B3XTIJAM"}}},"AddressLabel":{"type":"string","nullable":true,"example":"Bob's Hot Wallet Address","maxLength":250,"description":"A human-readable label for the address."},"AddressLabelString":{"title":"AddressLabelString","type":"string","description":"A human-readable label for the address","example":"Bob's Hot Wallet Address","maxLength":250},"AddressListRuleUpdateCondition":{"title":"AddressListRuleUpdateCondition","type":"object","properties":{"add":{"type":"string"},"remove":{"type":"string"},"metaData":{"type":"object","additionalProperties":{"type":"object","additionalProperties":{}}}}},"AddressString":{"title":"AddressString","type":"string","example":"2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZS","maxLength":250},"AddressString3":{"title":"Address","type":"string","example":"2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZS","maxLength":500},"AddressType1":{"type":"string","example":"p2sh","enum":["p2sh","p2shP2wsh","p2wsh","p2tr","p2trMusig2"]},"AddressType3":{"title":"AddressType","type":"string","enum":["p2sh","p2shP2wsh","p2wsh","p2tr","p2trMusig2"],"example":"p2sh */"},"AdvancedListRuleEntry":{"title":"AdvancedListRuleEntry","type":"object","properties":{"item":{"type":"string","description":"Either a valid address or a wallet, enterprise, or organization id. Must be unique in this whitelist."},"metaData":{"type":"object","additionalProperties":{},"description":"Any data about this entry that is not used to determine when to enforce the policy"},"type":{"allOf":[{"$ref":"#/components/schemas/AdvancedListType"}],"description":"the kind of resource a list rule entry refers to"},"verificationState":{"type":"string","enum":["unverified","verified"]},"verifiedBy":{"type":"string","enum":["unverifiedRule","fastWithdrawal","caasWaiverThreshold"],"description":"the source that verified this entry (unverifiedRule or fastWithdrawal)"},"verifiedAt":{"type":"string","description":"timestamp when this entry was first verified","format":"date-time","title":"ISO Date String"}},"required":["item","type"]},"AdvancedListRuleEntry1":{"title":"Advanced whitelist rule entry","type":"object","properties":{"item":{"allOf":[{"oneOf":[{"$ref":"#/components/schemas/AddressString3"},{"$ref":"#/components/schemas/Id"}]}],"description":"A valid blockchain address, wallet ID, enterprise ID, or organization ID. Must be unique in this whitelist."},"metaData":{"type":"object","description":"Any data about this entry that is not used to determine when to enforce the policy","properties":{"label":{"type":"string","description":"A client-specified label for this entry. Label must be unique or not set."},"owner":{"type":"string","description":"The legal owner of the address, wallet, enterprise, or organization.","example":"Legal Owner LLC"},"address":{"type":"string","description":"The address of the receiver wallet if the whitelist is of type 'walletId'."}},"additionalProperties":true},"type":{"$ref":"#/components/schemas/ListRuleEntryType"},"verificationState":{"type":"string","enum":["unverified","verified"],"description":"A state denoting whether entries have already been verified."},"verifiedBy":{"type":"string","enum":["unverifiedRule","fastWithdrawal"],"description":"The source that verified this entry (unverifiedRule or fastWithdrawal)"}},"required":["item","type"]},"AdvancedListRuleUpdateCondition":{"title":"AdvancedListRuleUpdateCondition","type":"object","properties":{"add":{"$ref":"#/components/schemas/AdvancedListRuleEntry"},"remove":{"type":"object","properties":{"item":{"type":"string"},"type":{"type":"string","enum":["address","enterpriseId","walletId","organizationId"]}},"required":["item"]},"verifyItems":{"type":"object","properties":{"items":{"type":"array","items":{"type":"string"}}},"required":["items"]}}},"AdvancedListType":{"title":"AdvancedListType","type":"string","enum":["address","enterpriseId","walletId","organizationId"]},"Amount":{"title":"Amount","type":"object","properties":{"value":{"type":"string"},"symbol":{"type":"string"}},"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"]},"AnchorType":{"title":"AnchorType","type":"string","enum":["policyRuleId","settlementId","crossChainRecoveryId"]},"PlatformError":{"title":"Api Error","allOf":[{"type":"object","properties":{"name":{"type":"string","description":"Error code"},"context":{"type":"object","additionalProperties":{},"description":"Properties that apply to a specific error name"}},"required":["context"]},{"$ref":"#/components/schemas/PlatformErrorNoName"}]},"PlatformError3":{"title":"API error","allOf":[{"$ref":"#/components/schemas/PlatformErrorNoName3"},{"properties":{"context":{"type":"object","description":"Properties that apply to a specific error name"},"name":{"type":"string","description":"Error code"}},"required":["name"]}]},"PlatformErrorNoName":{"title":"PlatformErrorNoName","type":"object","properties":{"error":{"type":"string","description":"Human-readable error message"},"requestId":{"type":"string","description":"Client request id"}},"required":["error","requestId"]},"PlatformErrorNoName3":{"type":"object","properties":{"error":{"type":"string","description":"Human-readable error message"},"requestId":{"type":"string","description":"Client request id"}},"required":["error","requestId"]},"ApiRuleType":{"title":"ApiRuleType","type":"string","enum":["advancedWhitelist","coinAddressWhitelist","coinAddressBlacklist"]},"ApprovalsRequired":{"type":"integer","minimum":1,"example":1},"AptBuildOptions":{"title":"AptBuildOptions","allOf":[{"type":"object","properties":{"maxGasAmount":{"type":"number"},"gasUnitPrice":{"type":"number"},"expirationTime":{"type":"number"}}},{"$ref":"#/components/schemas/AccountBaseBuildOptions"}]},"AptCustomTxIntent":{"title":"APT Custom Transaction Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["customTx"]},"aptosCustomTransactionParams":{"type":"object","properties":{"moduleName":{"type":"string"},"functionName":{"type":"string"},"typeArguments":{"type":"array","items":{"type":"string"}},"functionArguments":{"type":"array","items":{}},"abi":{"$ref":"#/components/schemas/EntryFunctionABI"}},"required":["moduleName","functionName"]}},"required":["intentType","aptosCustomTransactionParams"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/AptBuildOptions"}]},"AtomPaymentIntent":{"title":"Atom Payment Intent","allOf":[{"type":"object","properties":{"memo":{"allOf":[{"$ref":"#/components/schemas/optionalString"}],"description":"Optional memo string attached to the transaction, used for routing or identification by exchanges."}},"required":["memo"]},{"$ref":"#/components/schemas/PaymentIntent"}],"description":"Transfer tokens from a Cosmos-family wallet to one or more recipient\naddresses. Supported on all Cosmos-family chains. An optional memo may\nbe included for exchange routing or identification."},"AtomStakeIntent":{"title":"Atom Stake Intent","allOf":[{"type":"object","properties":{"validatorAddress":{"type":"string","description":"Bech32 validator address to delegate tokens to (e.g. cosmosvaloper1...)."},"recipients":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"amount":{"$ref":"#/components/schemas/Amount"},"data":{"$ref":"#/components/schemas/optionalString"}},"required":["address","amount"],"description":"Optional list of validator–amount pairs for multi-validator delegation. When provided, overrides validatorAddress and amount."}}},"required":["validatorAddress"]},{"$ref":"#/components/schemas/StakeIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}],"description":"Delegate (stake) tokens to one or more validators on ATOM. Use\n`validatorAddress` and `amount` for a single validator, or `recipients`\nfor multi-validator delegation."},"AtomUnstakeIntent":{"title":"Atom Unstake Intent","allOf":[{"type":"object","properties":{"validatorAddress":{"type":"string","description":"Bech32 validator address to undelegate tokens from (e.g. cosmosvaloper1...)."},"recipients":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"amount":{"$ref":"#/components/schemas/Amount"},"data":{"$ref":"#/components/schemas/optionalString"}},"required":["address","amount"],"description":"Optional list of validator–amount pairs for multi-validator undelegation. When provided, overrides validatorAddress and amount."}}},"required":["validatorAddress"]},{"$ref":"#/components/schemas/UnstakeIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}],"description":"Undelegate (unstake) tokens from one or more validators on ATOM. Tokens\nenter the unbonding period. Use `validatorAddress` and `amount` for\nsingle validator or `recipients` for multi-validator."},"BabyCreateBtcDelegationIntent":{"title":"Baby CreateBtcDelegation Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["createBtcDelegation"],"description":"Register a BTC delegation on the Babylon chain for Baby BTC staking."},"createBtcDelegationBytes":{"type":"string"}},"required":["intentType","createBtcDelegationBytes"]},{"$ref":"#/components/schemas/BaseStakeIntent"}]},"BabyWithdrawRewardIntent":{"title":"Baby WithdrawReward Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["stakeClaimRewards"]},"type":{"type":"string"}},"required":["intentType","type"]},{"$ref":"#/components/schemas/BaseStakeIntent"}]},"BaseBridgeFundsIntent":{"title":"Bridge Funds Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["bridgeFunds"],"description":"Must be \"bridgeFunds\"."}},"required":["intentType"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}],"description":"Base codec for bridge-funds intents across chains or protocols."},"BaseGoStakeIntent":{"title":"BaseGoStakeIntent","allOf":[{"type":"object","properties":{"goStakingRequestId":{"type":"string","description":"Internal coordination identifier for the GO staking request."}},"required":["goStakingRequestId"]},{"$ref":"#/components/schemas/BaseIntent"}],"description":"Base interface for GO wallet staking intents that require a GO staking\nrequest identifier (e.g. admin/internal go-unstake flows such as Sui)."},"BaseIntent":{"title":"Intent","type":"object","properties":{"intentType":{"$ref":"#/components/schemas/IntentType"},"sequenceId":{"allOf":[{"$ref":"#/components/schemas/optionalString"}],"description":"Client-assigned sequence identifier for idempotency."},"comment":{"allOf":[{"$ref":"#/components/schemas/optionalString"}],"description":"Human-readable memo attached to the transaction."},"nonce":{"oneOf":[{"type":"string"},{"type":"number"}],"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&mdash;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.\n","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.\n"}},"required":["intentType"]},"BaseIntentWithAmount":{"title":"BaseIntentWithAmount","type":"object","description":"Schema fragment for intents with direct amount field\n\nThis fragment defines an amount field directly on the intent object\n(not nested in recipients). Common in staking, claiming, and delegation intents.\n\nUsed by:\n- StakeIntent variants (AtomStakeIntent, SolStakeIntent, etc.)\n- UnstakeIntent variants (AtomUnstakeIntent, etc.)\n- DelegateIntent variants (BscDelegateIntent, TonDelegateIntent, etc.)\n- ClaimRewardsIntent variants (AdaStakeClaimRewardsIntent, etc.)\n- WithdrawIntent variants (AtomWithdrawIntent, CosmosWithdrawIntent, etc.)\n\nAsset extraction: Extracts symbol from the amount field","properties":{"amount":{"allOf":[{"$ref":"#/components/schemas/Amount"}],"description":"Transaction amount. amount.symbol identifies the asset (e.g. \"hypeevm:eth\"); amount.value is the quantity in base units."}},"required":["amount"]},"BaseIntentWithRecipients":{"title":"BaseIntentWithRecipients","type":"object","description":"============================================================================\nREUSABLE SCHEMA FRAGMENTS FOR ASSET-CONTAINING INTENTS\n============================================================================\n\nThese schemas define reusable building blocks that concrete intent schemas\ncan compose with. They serve multiple purposes:\n\n1. **Schema Reuse**: Concrete intents can intersect with these fragments\n2. **Pattern Matching**: getAssetsFromIntent utility matches against these\n3. **Type Safety**: Ensures consistency across all asset-containing intents\n4. **Documentation**: Clearly shows which intents handle which asset types\n\nBy using the actual RecipientEntry and TokenRecipientEntry types, we ensure\nthese patterns exactly match the structures used in concrete intents.","properties":{"recipients":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"amount":{"$ref":"#/components/schemas/Amount"},"data":{"$ref":"#/components/schemas/optionalString"}},"required":["address","amount"],"description":"Array of recipient addresses and amounts."}}},"required":["recipients"]},"BaseIntentWithTokenName":{"title":"BaseIntentWithTokenName","type":"object","description":"Schema fragment for intents with direct tokenName field\n\nThis fragment defines a tokenName field directly on the intent object\n(not nested in recipients).\n\nUsed by:\n- TokenApprovalIntent\n\nAsset extraction: Extracts tokenName","properties":{"tokenName":{"type":"string","description":"Name of the ERC-20 token to approve (e.g. \"usdc\", \"weth\")."}},"required":["tokenName"]},"BaseIntentWithTokenRecipients":{"title":"BaseIntentWithTokenRecipients","type":"object","description":"Schema fragment for intents with token recipients\n\nThis fragment defines a recipients array using TokenRecipientEntry, which\nextends RecipientEntry with optional tokenData containing token-specific info.\n\nUsed by:\n- TransferTokenIntent (and variants: EthTransferTokenIntent, etc.)\n- ConsolidateTokenIntent (and variants: EthConsolidateTokenIntent, etc.)\n\nAsset extraction: Extracts tokenName only (the actual asset identifier)\nNote: tokenType, tokenContractAddress, tokenId are technical fields, not assets\nNote: This also matches BaseIntentWithRecipients since TokenRecipientEntry extends RecipientEntry","properties":{"recipients":{"type":"array","items":{"allOf":[{"type":"object","properties":{"tokenData":{"$ref":"#/components/schemas/TokenData"}}},{"$ref":"#/components/schemas/RecipientEntry"}],"description":"Recipients of the token transfer. Each entry must include tokenData with tokenName and tokenContractAddress."}}},"required":["recipients"]},"BaseIntentWithoutNonce":{"title":"BaseIntentWithoutNonce","type":"object","properties":{"intentType":{"$ref":"#/components/schemas/IntentType"},"sequenceId":{"allOf":[{"$ref":"#/components/schemas/optionalString"}],"description":"Client-assigned sequence identifier for idempotency."},"comment":{"allOf":[{"$ref":"#/components/schemas/optionalString"}],"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"]},"BaseShare":{"title":"BaseShare","type":"object","properties":{"from":{"allOf":[{"$ref":"#/components/schemas/SignatureShareType"}],"description":"The source of the commitment share","example":"user"},"to":{"allOf":[{"$ref":"#/components/schemas/SignatureShareType"}],"description":"The recipient of the commitment share.","example":"bitgo"},"share":{"type":"string","description":"The commitment share."}},"required":["from","to","share"]},"BaseStakeIntent":{"title":"BaseStakeIntent","allOf":[{"type":"object","properties":{"stakingRequestId":{"type":"string","description":"ID of the staking request, obtained from the BitGo staking service."},"source":{"allOf":[{"$ref":"#/components/schemas/StakingRequestSource"}],"description":"Origin of the staking request: MANUAL (user-initiated), AUTO_STAKE, or EXTERNAL."}},"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":[{"type":"object","properties":{"calldata":{"type":"string","description":"Pre-computed ABI-encoded calldata for the staking contract interaction, provided by the BitGo staking service."}},"required":["calldata"]},{"$ref":"#/components/schemas/BaseStakeIntent"}]},"BeraDelegateIntent":{"title":"Bera Delegate Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["delegate"]},"recipients":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"amount":{"$ref":"#/components/schemas/Amount"},"data":{"$ref":"#/components/schemas/optionalString"}},"required":["address","amount"]}}},"required":["intentType"]},{"$ref":"#/components/schemas/BaseStakeIntent"}]},"Bitcoin":{"type":"string","enum":["btc","tbtc4"],"description":"This route is only available for Bitcoin."},"BitgoExpressError":{"title":"BitgoExpressError","type":"object","properties":{"message":{"type":"string"},"name":{"type":"string"},"bitgoJsVersion":{"type":"string"},"bitgoExpressVersion":{"type":"string"}},"required":["message","name","bitgoJsVersion","bitgoExpressVersion"]},"BitgoKeychainType":{"title":"BitgoKeychainType","type":"object","properties":{"id":{"type":"string","description":"Keychain ID","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"source":{"type":"string","description":"Party that created the key","example":"bitgo"},"type":{"type":"string","description":"Keychain type (e.g. \"independent\" for onchain, \"tss\" for MPC)"},"isBitGo":{"type":"boolean","description":"Flag for identifying keychain as created by BitGo","example":true},"isTrust":{"type":"boolean","description":"Flag for identifying keychain as trust keychain","example":false},"hsmType":{"type":"string","description":"HSM type used for the BitGo key","example":"institutional"},"pub":{"type":"string","description":"Public part of a key pair (onchain wallets)"},"ethAddress":{"type":"string","description":"Ethereum address corresponding to this keychain (onchain wallets)"},"commonKeychain":{"type":"string","description":"Common keychain string (TSS wallets)"},"verifiedVssProof":{"oneOf":[{"type":"boolean"},{"type":"string"}],"description":"Whether VSS proof was verified (TSS wallets)"},"keyShares":{"type":"array","items":{"type":"object","additionalProperties":{},"description":"TSS key share metadata (TSS wallets)"}},"walletHSMGPGPublicKeySigs":{"type":"string","description":"Wallet HSM GPG public key signatures (TSS wallets)"}},"required":["id","source","type","isBitGo","isTrust","hsmType"]},"BscDelegateIntent":{"title":"BSC Delegate Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["delegate"]},"validatorAddress":{"type":"string"},"relayerFee":{"type":"string"},"delegateVotePower":{"type":"string"}},"required":["intentType","validatorAddress"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}]},"BscUnDelegateIntent":{"title":"BSC UnDelegate Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["undelegate"]},"validatorAddress":{"type":"string"},"relayerFee":{"type":"string"}},"required":["intentType","validatorAddress"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}]},"BscWithdrawUndelegateIntent":{"title":"BSC Withdraw Intent","allOf":[{"type":"object","properties":{"validatorAddress":{"type":"string"},"requestNumber":{"type":"number"}},"required":["validatorAddress","requestNumber"]},{"$ref":"#/components/schemas/WithdrawIntent"}]},"BuildParams":{"type":"object","properties":{"type":{"type":"string","description":"Required for transactions from MPC wallets. \"acceleration\" speeds up transactions with a certain nonce by adjusting the gas setting. \"accountSet\" is for XRP AccountSet transactions. \"consolidate\" combines multiple UTXO inputs into fewer outputs. \"enabletoken\" is for SOL. \"fanout\" splits UTXO inputs into many smaller outputs (UTXO coins only). \"stakingLock\" and \"stakingUnlock\" are for Stacks delegations. \"transfer\" is for native-asset transfers. \"trustline\" is for Stellar trustline transactions. Possible types include: [acceleration, accountSet, consolidate, enabletoken, fanout, stakingLock, stakingUnlock, transfer, transfertoken, trustline]\n\nFor AVAX, possible types include: `addValidator`, `export`, and `import`.\n\nFor XRP, possible types include: `payment` and `accountSet`. The default is `payment`.\n\nFor STX, type is required.\n"},"messages":{"description":"[UTXO only] An array of messages that you sign with the wallet keys using the BIP322 format. If passed, the `recipients` array must be empty.","type":"array","items":{"type":"object","properties":{"address":{"type":"string","description":"The address for which you're proving ownership. This address must belong to the wallet."},"message":{"type":"string","description":"Message that is being signed.","example":"BIP322 test message."}}}},"numBlocks":{"type":"integer","description":"(BTC only) The number of blocks required to confirm a transaction. You can use `numBlocks` to estimate the fee rate by targeting confirmation within a given number of blocks. If both `feeRate` and `numBlocks` are absent, the transaction defaults to 2 blocks for confirmation.\n\nNote: The `maxFeeRate` limits the fee rate generated by `numBlocks`.\n","minimum":2,"maximum":1000},"feeRate":{"allOf":[{"$ref":"#/components/schemas/IntegerOrString"},{"example":10000}],"description":"Custom fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte.\n\nIf the `feeRate` is less than the minimum required network fee, then the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000 microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is usually 4.5 times the open ledger fee.\n\nNote: The `feeRate` overrides the `maxFeeRate` and `minFeeRate`.\n"},"maxFeeRate":{"allOf":[{"$ref":"#/components/schemas/IntegerOrIntegerString"},{"example":20000}],"description":"(BTC only) The maximum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. The `maxFeeRate` limits the fee rate generated by both `feeMultiplier` and `numBlocks`.\n\nNote: The `feeRate` overrides the `maxFeeRate`.\n"},"feeMultiplier":{"allOf":[{"$ref":"#/components/schemas/NumberOrString"},{"example":1.5}],"description":"(UTXO only) Custom multiplier to the `feeRate`. The resulting fee rate is limited by the `maxFeeRate`. For replace-by-fee (RBF) transactions (that include `rbfTxIds`), the `feeMultiplier` must be greater than 1, since it's an absolute fee multiplier to the transaction being replaced.\n\nNote: The `maxFeeRate` limits the fee rate generated by `feeMultiplier`.\n"},"minConfirms":{"type":"integer","description":"The unspent selection for the transaction will only consider unspents with at least this many confirmations to be used as inputs. Does not apply to change outputs unless used in combination with `enforceMinConfirmsForChange`.\n"},"enforceMinConfirmsForChange":{"type":"boolean","description":"When set to true, will enforce minConfirms for change outputs. Defaults to false.","default":false},"gasPrice":{"allOf":[{"$ref":"#/components/schemas/IntegerOrIntegerString"}],"description":"Custom gas price to be used for sending the transaction. Only for ETH and ERC20 tokens."},"eip1559":{"properties":{"maxPriorityFeePerGas":{"allOf":[{"$ref":"#/components/schemas/IntegerOrIntegerString"},{"maximum":100000000000}],"description":"Max priority tip price for EIP1559 transactions. Only for ETH and ERC20 tokens."},"maxFeePerGas":{"allOf":[{"$ref":"#/components/schemas/IntegerOrIntegerString"}],"description":"Max total gasPrice for EIP1559 transactions. Only for ETH and ERC20 tokens."}}},"gasLimit":{"allOf":[{"$ref":"#/components/schemas/IntegerOrIntegerString"}],"description":"Custom gas limit to be used for sending the transaction. Only for ETH and ERC20 tokens."},"targetWalletUnspents":{"type":"integer","description":"Specifies the minimum count of good-sized unspents to maintain in the wallet. Change splitting ceases when the\nwallet has `targetWalletUnspents` good-sized unspents.\n\n**Note**: Wallets that continuously send a high count of transactions will automatically split large change amounts\ninto multiple good-sized change outputs while they have fewer than `targetWalletUnspents` good-sized unspents in\ntheir unspent pool. Breaking up large unspents helps to reduce the amount of unconfirmed funds in flight in future\ntransactions, and helps to avoid long chains of unconfirmed transactions. This is especially useful for newly\nfunded wallets or recently refilled send-only wallets.\n","default":1000},"minValue":{"allOf":[{"$ref":"#/components/schemas/IntegerOrIntegerString"}],"description":"Ignore unspents smaller than this amount of base units (e.g. satoshis). For doge, only string is allowed."},"maxValue":{"allOf":[{"$ref":"#/components/schemas/IntegerOrIntegerString"}],"description":"Ignore unspents larger than this amount of base units (e.g. satoshis). For doge, only string is allowed."},"sequenceId":{"type":"string","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&mdash;for example, to safely retry sending. Because the system only confirms one send request per `sequenceId` (and fails all subsequent attempts), you can retry sending without the risk of double spending. The `sequenceId` is only visible to users on the wallet and is not shared publicly.\n"},"nonce":{"allOf":[{"$ref":"#/components/schemas/IntegerString"}],"description":"(DOT only) A nonce ID is a number used to protect private communications by preventing replay attacks.\nThis is an advanced option where users can manually input a new nonce value\nin order to correct or fill in a missing nonce ID value.\n"},"noSplitChange":{"type":"boolean","description":"Set `true` to disable automatic change splitting.\n\nAlso see: `targetWalletUnspents`\n","default":false},"unspents":{"type":"array","items":{"example":"12b147dd8b4f73c01f72bdbf5b589eea614f3de609ffdbdac84852d6505cf8a3:1","type":"string"},"description":"Used to explicitly specify the unspents to be used in the input set in the transaction. Each unspent should be in the form `prevTxId:nOutput`.\n"},"changeAddress":{"allOf":[{"$ref":"#/components/schemas/AddressString3"}],"description":"Specifies a custom destination address for the transaction's change output(s)"},"txFormat":{"$ref":"#/components/schemas/UtxoTransactionFormat"},"instant":{"type":"boolean","description":"(DASH only) Specifies whether or not to use Dash's \"InstantSend\" feature when sending a transaction."},"memo":{"type":"object","properties":{"type":{"type":"string"},"value":{"type":"string"}},"description":"Extra transaction information for CSPR, EOS, HBAR, RUNE, STX, TON, XLM, and XRP. Required for XLM transactions.\n\nNote: For XRP this is the destination tag (DT), for CSPR this is the transfer ID and for ALGO this is the message field.\n"},"comment":{"type":"string","description":"Optional metadata (only persisted in BitGo) to be applied to the transaction. Use this to add transaction-specific information such as the transaction's purpose or another identifier that you want to reference later. The value is shown in the UI in the transfer listing page.\n","maxLength":256},"destinationChain":{"type":"string","description":"(AVAXC and AVAXP only) Destination chain for an AVAX import/export transaction. One of [P, C]."},"sourceChain":{"type":"string","description":"(AVAXC and AVAXP only) Source chain for an AVAX import/export transaction. One of [P, C]."},"addressType":{"type":"string","deprecated":true,"description":"DEPRECATED - use `changeAddressType`.\nThe type of address to create for change. One of `p2sh`, `p2shP2wsh`, `p2wsh`, or `p2tr`."},"changeAddressType":{"anyOf":[{"$ref":"#/components/schemas/AddressType1"},{"$ref":"#/components/schemas/ChangeAddressTypes"}],"description":"The address type for the change address. One of `p2sh`, `p2shP2wsh`, `p2wsh`, `p2tr` or `p2trMusig2`."},"startTime":{"type":"string","description":"Unix timestamp in seconds.nanoseconds format, denoting the start of the validity window. Only for HBAR transactions.","example":1714067129.1020603},"consolidateId":{"allOf":[{"$ref":"#/components/schemas/Id"}],"description":"(ALGO/TEZOS only) Consolidation ID of this consolidation transaction."},"lastLedgerSequence":{"type":"integer","description":"(XRP only) Absolute max ledger the transaction should be accepted in, whereafter it will be rejected"},"ledgerSequenceDelta":{"type":"integer","description":"(XRP only) Relative ledger height (in relation to the current ledger) that the transaction should be accepted in, whereafter it will be rejected"},"rbfTxIds":{"type":"array","items":{"type":"string"},"description":"The list of transactions to accelerate using Replace-By-Fee (RBF) for UTXO coins (currently accelerating only one tx is supported)."},"isReplaceableByFee":{"type":"boolean","description":"It is used to mark an UTXO transaction eligible for Replace-By-Fee (RBF) later."},"validFromBlock":{"type":"integer","description":"Optional block this transaction is valid from"},"validToBlock":{"type":"integer","description":"Optional block this transaction is valid until"},"trustlines":{"type":"array","items":{"$ref":"#/components/schemas/Trustline"},"description":"List of trustlines to manage on the account. Available for Stellar."},"stakingOptions":{"anyOf":[{"$ref":"#/components/schemas/CSPRStakingOptions"},{"$ref":"#/components/schemas/STXStakingOptions"}],"description":"Required object for staking. Only for CSPR and STX."},"messageKey":{"type":"string","description":"Optional parameter that takes a hexadecimal value to set `messagekey` for an XRP `accountSet` transaction. Recipients field should be empty when `messageKey` is set."},"reservation":{"type":"object","properties":{"expireTime":{"type":"string","format":"date-time","description":"Required. The time that the unspent reservations should expire."}},"description":"Optional parameter for UTXO coins to automatically reserve the unspents that are used in the build. Useful for Cold wallets. If using, must set expireTime."}}},"CSPRStakingOptions":{"title":"CSPR","type":"object","properties":{"amount":{"allOf":[{"$ref":"#/components/schemas/IntegerOrIntegerString"}],"description":"Required for CSPR. String representation of the amount to stake or unstake in base units (motes)."},"validator":{"allOf":[{"$ref":"#/components/schemas/AddressString3"}],"description":"Required for CSPR. The validator address used to delegate or undelegate."}}},"CaasOrganizationInviteInviterInfo":{"title":"CaasOrganizationInviteInviterInfo","type":"object","description":"Inviter snapshot on CaaS org add-invite `inviterInfo` and enterprise invite `invitedBy`. Not used for UMS `genericRequest`.","properties":{"id":{"type":"string"},"email":{"type":"string"},"fullName":{"type":"string"}},"required":["id","email","fullName"]},"CantonAllocationAllocateIntent":{"title":"Canton Allocation Allocate Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["allocationAllocate"]},"txRequestId":{"type":"string"}},"required":["intentType","txRequestId"]},{"$ref":"#/components/schemas/BaseIntent"}]},"CantonAllocationOfferWithdrawnIntent":{"title":"Canton Allocation Offer Withdrawn Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["allocationOfferWithdrawn"]},"transferOfferId":{"type":"string"},"token":{"type":"string"}},"required":["intentType","transferOfferId"]},{"$ref":"#/components/schemas/BaseIntent"}]},"CantonAllocationRejectIntent":{"title":"Canton Allocation Reject Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["allocationReject"]},"txRequestId":{"type":"string"}},"required":["intentType","txRequestId"]},{"$ref":"#/components/schemas/BaseIntent"}]},"CantonAllocationRequestIntent":{"title":"Canton Allocation Request Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["allocationRequest"]},"updateId":{"type":"string"},"operatorId":{"type":"string"},"contractId":{"nullable":true,"type":"string"},"tradeId":{"type":"string"},"transferLegId":{"type":"string"},"senderPartyId":{"type":"string"},"receiverPartyId":{"type":"string"},"amount":{"type":"string"},"token":{"type":"string"},"receiveToken":{"type":"string"},"receiveAmount":{"type":"string"},"allocateBefore":{"type":"string"},"settleBefore":{"type":"string"},"comment":{"type":"string"},"requestedAt":{"type":"string"}},"required":["intentType","updateId","operatorId","contractId","tradeId","transferLegId","senderPartyId","receiverPartyId","amount","token","receiveToken","receiveAmount","allocateBefore","settleBefore"]},{"$ref":"#/components/schemas/BaseIntent"}]},"CantonCommand":{"title":"CantonCommand","oneOf":[{"$ref":"#/components/schemas/CreateCommand"},{"$ref":"#/components/schemas/ExerciseCommand"}]},"CantonCommandIntent":{"title":"CantonCommandIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["cantonCommand"]},"cantonCommandParams":{"$ref":"#/components/schemas/CantonCommandParams"},"token":{"type":"string","description":"Optional registered coin/token identifier for the command target (e.g. \"tcanton:stgusd1\").\nThis is not an auth/session token."}},"required":["intentType","cantonCommandParams"]},{"$ref":"#/components/schemas/BaseIntent"}]},"CantonCommandParams":{"title":"CantonCommandParams","type":"object","properties":{"command":{"$ref":"#/components/schemas/CantonCommand"},"actAs":{"type":"array","items":{"type":"string"}},"readAs":{"type":"array","items":{"type":"string"}},"resolveContracts":{"type":"array","items":{"type":"object","properties":{"templateId":{"type":"string"},"actAs":{"type":"array","items":{"type":"string"}},"injectAs":{"type":"string"},"readAs":{"type":"array","items":{"type":"string"}},"resolveAll":{"type":"boolean"}},"required":["templateId","actAs","injectAs"]}}},"required":["command","actAs"]},"CantonCosignDelegationAcceptIntent":{"title":"Canton Cosign Delegation Accept Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["cosignDelegationAccept"]},"txRequestId":{"type":"string"}},"required":["intentType","txRequestId"]},{"$ref":"#/components/schemas/BaseIntent"}]},"CantonCosignDelegationProposalIntent":{"title":"Canton Cosign Delegation Proposal Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["cosignDelegationProposal"]},"contractId":{"type":"string"},"operatorId":{"type":"string"},"updateId":{"type":"string"},"packageName":{"type":"string"}},"required":["intentType","contractId","operatorId","updateId"]},{"$ref":"#/components/schemas/BaseIntent"}]},"CantonEndInvestorOnboardingAcceptIntent":{"title":"Canton End Investor Onboarding Accept Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["cantonEndInvestorOnboardingAccept"]},"txRequestId":{"type":"string"}},"required":["intentType","txRequestId"]},{"$ref":"#/components/schemas/BaseIntent"}]},"CantonEndInvestorOnboardingOfferIntent":{"title":"Canton End Investor Onboarding Offer Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["cantonEndInvestorOnboardingOffer"]},"endInvestorPartyId":{"type":"string"},"comment":{"type":"string"}},"required":["intentType","endInvestorPartyId"]},{"$ref":"#/components/schemas/BaseIntent"}]},"CantonEndInvestorOnboardingRejectIntent":{"title":"Canton End Investor Onboarding Reject Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["cantonEndInvestorOnboardingReject"]},"txRequestId":{"type":"string"},"reason":{"type":"string"}},"required":["intentType","txRequestId","reason"]},{"$ref":"#/components/schemas/BaseIntent"}]},"CantonParticipantOnboardingRequestIntent":{"title":"Canton Participant Onboarding Request Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["cantonParticipantOnboardingRequest"]},"operator":{"type":"string"},"provider":{"type":"string"},"compliance":{"type":"string"},"registrar":{"type":"string"},"clientOnboarder":{"type":"string"},"expirationIso":{"type":"string"},"comment":{"type":"string"}},"required":["intentType","operator","provider","compliance","registrar","clientOnboarder"]},{"$ref":"#/components/schemas/BaseIntent"}]},"CantonPaymentIntent":{"title":"CANTON Payment Intent","allOf":[{"type":"object","properties":{"memo":{"$ref":"#/components/schemas/optionalString"},"isConsolidate":{"type":"boolean"},"numberOfSplits":{"type":"number"},"unspents":{"$ref":"#/components/schemas/optionalStringArray"}},"required":["unspents"]},{"$ref":"#/components/schemas/PaymentIntent"}]},"CantonTransferAcceptIntent":{"title":"Canton Transfer Accept Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["transferAccept"]},"txRequestId":{"type":"string"},"token":{"type":"string"},"expiry":{"type":"number"}},"required":["intentType","txRequestId"]},{"$ref":"#/components/schemas/BaseIntent"}]},"CantonTransferAcknowledgeIntent":{"title":"Canton Transfer Acknowledge Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["transferAcknowledge"]},"contractId":{"type":"string"},"senderPartyId":{"type":"string"},"updateId":{"type":"string"},"amount":{"type":"string","format":"number"},"expiry":{"type":"number"},"memoId":{"type":"string"},"token":{"type":"string"}},"required":["intentType","contractId","senderPartyId","updateId","amount","expiry"]},{"$ref":"#/components/schemas/BaseIntent"}]},"CantonTransferOfferWithdrawnIntent":{"title":"Canton Transfer Offer Withdrawn Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["transferOfferWithdrawn"]},"transferOfferId":{"type":"string"},"token":{"type":"string"}},"required":["intentType","transferOfferId"]},{"$ref":"#/components/schemas/BaseIntent"}]},"CantonTransferRejectIntent":{"title":"Canton Transfer Reject Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["transferReject"]},"txRequestId":{"type":"string"},"token":{"type":"string"},"expiry":{"type":"number"}},"required":["intentType","txRequestId"]},{"$ref":"#/components/schemas/BaseIntent"}]},"Chain":{"type":"integer","example":1,"enum":[0,1,10,11,20,21,30,31,40,41]},"ChangeAddressTypes":{"type":"array","items":{"$ref":"#/components/schemas/AddressType1"},"description":"The address types for the change address. Order by preference and BitGo uses the first available. Any subset of `p2sh`, `p2shP2wsh`, `p2wsh`, `p2tr` or `p2trMusig2`."},"ChangeType":{"title":"ChangeType","type":"string","enum":["create","update","delete","unlock","bulkUnlock","bulkArchive","duplicate"]},"ClaimIntent":{"title":"Claim Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["claim"],"description":"Must be \"claim\"."}},"required":["intentType"]},{"$ref":"#/components/schemas/BaseStakeIntent"}],"description":"Claim unstaked or unbonded funds from an EVM validator after the\nundelegation cooldown period. Requires a staking request ID from the\nBitGo staking service."},"Coin":{"title":"Coin","description":"A cryptocurrency or token ticker symbol.","type":"string","example":"btc"},"CoinString":{"title":"CoinString","type":"string","description":"A cryptocurrency symbol or token ticker symbol","example":"btc"},"CommitmentShare":{"type":"object","properties":{"from":{"allOf":[{"$ref":"#/components/schemas/KeyShareSource"}],"description":"The source of the commitment share."},"to":{"allOf":[{"$ref":"#/components/schemas/KeyShareSource"}],"description":"The recipient of the commitment share."},"share":{"type":"string","description":"The commitment share."},"type":{"allOf":[{"$ref":"#/components/schemas/CommitmentType"},{"default":"commitment"}],"description":"The type of the commitment share."}},"required":["from","to","share","type"]},"CommitmentType":{"type":"string","enum":["commitment"],"example":"commitment"},"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"]}]},"CoreDaoClaimIntent":{"title":"CoreDAO Claim Rewards Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["stakeClaimRewards"]}},"required":["intentType"]},{"$ref":"#/components/schemas/BaseStakeIntentWithCalldata"}]},"CoreDaoDelegateIntent":{"title":"CoreDAO Delegate Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["delegate"]},"validatorAddress":{"type":"string"}},"required":["intentType","validatorAddress"]},{"$ref":"#/components/schemas/BaseStakeIntentWithCalldata"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}]},"CoreDaoUndelegateIntent":{"title":"CoreDAO Undelegate Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["undelegate"]},"validatorAddress":{"type":"string"}},"required":["intentType","validatorAddress"]},{"$ref":"#/components/schemas/BaseStakeIntentWithCalldata"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}]},"CosmosContractCallIntent":{"title":"Cosmos Contract Call Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["contractCall"],"description":"Must be \"contractCall\""},"contract":{"type":"string","description":"Bech32 contract address to execute"},"msgHex":{"type":"string","description":"Hex-encoded binary message to pass to the contract Execute entrypoint"},"feeGranter":{"type":"string","description":"Optional Bech32 address paying transaction fees on behalf of the submitter (fee-grant). Supported on hash chain; passed through for any chain."}},"required":["intentType","contract","msgHex"]},{"$ref":"#/components/schemas/BaseIntent"}],"description":"Execute a Wasm smart contract on a Cosmos-family chain. Supported on all\nCosmos-family chains. The hash chain additionally supports fee-grant via\nthe 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"]}]},"CosmosPaymentIntent":{"title":"Cosmos Payment Intent","allOf":[{"type":"object","properties":{"memo":{"allOf":[{"$ref":"#/components/schemas/optionalString"}],"description":"Optional memo string attached to the transaction, used for routing or identification by exchanges."}},"required":["memo"]},{"$ref":"#/components/schemas/PaymentIntent"}],"description":"Transfer tokens from a Cosmos-family wallet to one or more recipient\naddresses. Supported on all Cosmos-family chains. An optional memo may\nbe included for exchange routing or identification."},"CosmosStakeClaimRewardsIntent":{"title":"Cosmos Stake Claim Rewards Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["stakeClaimRewards"],"description":"Must be \"stakeClaimRewards\""},"validatorAddress":{"type":"string","description":"Bech32 validator address to withdraw accumulated staking rewards from (e.g. cosmosvaloper1...)"}},"required":["intentType","validatorAddress"]},{"$ref":"#/components/schemas/BaseStakeIntent"}],"description":"Claim accumulated staking rewards from a validator on a Cosmos-family chain.\nSupported on all Cosmos-family chains. Submit with intentType stakeClaimRewards."},"CosmosStakeIntent":{"title":"Cosmos Stake Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["delegate"]},"validatorAddress":{"type":"string","description":"Bech32 validator address to delegate tokens to (e.g. cosmosvaloper1...)."},"recipients":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"amount":{"$ref":"#/components/schemas/Amount"},"data":{"$ref":"#/components/schemas/optionalString"}},"required":["address","amount"],"description":"Optional list of validator–amount pairs for multi-validator delegation. When provided, overrides validatorAddress and amount."}}},"required":["intentType","validatorAddress"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}],"description":"Delegate (stake) tokens to one or more validators on a Cosmos-family\nchain. Use `validatorAddress` and `amount` for a single validator, or\n`recipients` for multi-validator delegation in a single transaction."},"CosmosSwitchValidatorIntent":{"title":"Cosmos Switch Validator Intent","allOf":[{"$ref":"#/components/schemas/StakeSwitchValidatorIntent"}],"description":"Atomically move a delegation from one validator to another (redelegate)\non a Cosmos-family chain. The redelegation is subject to the chain's\nredelegation cooldown rules."},"CosmosUnstakeIntent":{"title":"Cosmos Unstake Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["undelegate"]},"validatorAddress":{"type":"string","description":"Bech32 validator address to undelegate tokens from (e.g. cosmosvaloper1...)."},"recipients":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"amount":{"$ref":"#/components/schemas/Amount"},"data":{"$ref":"#/components/schemas/optionalString"}},"required":["address","amount"],"description":"Optional list of validator–amount pairs for multi-validator undelegation. When provided, overrides validatorAddress and amount."}}},"required":["intentType","validatorAddress"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}],"description":"Undelegate (unstake) tokens from one or more validators on a\nCosmos-family chain. Tokens enter the chain's unbonding period and are\nnot immediately available. Use `validatorAddress` and `amount` for a\nsingle validator, or `recipients` for multi-validator undelegation."},"CreateCommand":{"title":"Canton Command Intent","type":"object","properties":{"CreateCommand":{"type":"object","properties":{"templateId":{"type":"string"},"createArguments":{"type":"object","additionalProperties":{}}},"required":["templateId","createArguments"]}},"required":["CreateCommand"]},"CustodialWalletSubType":{"title":"CustodialWalletSubType","type":"string","enum":["custodialCold","custodialHot","lightningCustody"]},"CustomChangeKeySignatures":{"type":"object","properties":{"user":{"type":"string"},"backup":{"type":"string"},"bitgo":{"type":"string"}},"description":"Signatures for the keys which will be used to derive custom change addresses.\n\n**Note:** These signatures may only be set once for each wallet and are not modifiable after being set.\n"},"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","example":{}},"DefaultChangeAddressType":{"type":"string","example":"p2wsh","nullable":true,"enum":["p2sh","p2shP2wsh","p2wsh","p2tr","p2trMusig2","default"],"description":"(UTXO only) The default script type to use for change for this wallet. Per transaction, you override the default with the `changeAddressType` parameter. If `default` is provided, it will clear the `changeAddressType` default on the wallet. Note that each UTXO coin has different address types available. For example, Only BTC supports `p2tr`.\n"},"DefiDepositIntent":{"title":"DefiDepositIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["defi-deposit"]},"vaultId":{"type":"string"},"amount":{"type":"string"},"operationId":{"type":"string"},"clientIdempotencyKey":{"type":"string"}},"required":["intentType","vaultId","amount","operationId"]},{"$ref":"#/components/schemas/BaseIntent"}]},"DefiRedeemIntent":{"title":"DefiRedeemIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["defi-redeem"]},"protocol":{"type":"string"},"amount":{"type":"string"}},"required":["intentType","protocol","amount"]},{"$ref":"#/components/schemas/BaseIntent"}]},"DelegateIntent":{"title":"DelegateIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["delegate"],"description":"Must be \"delegate\"."}},"required":["intentType"]},{"$ref":"#/components/schemas/BaseStakeIntent"}],"description":"Delegate staked assets to a validator on EVM-compatible chains that support\ndelegated proof-of-stake (e.g. BSC). Requires a staking request ID from the\nBitGo staking service."},"DotAccountBaseBuildOptions":{"title":"DotAccountBaseBuildOptions","allOf":[{"type":"object","properties":{"fee":{"type":"object","properties":{"amount":{"oneOf":[{"type":"string"},{"type":"number"}]},"formula":{"type":"string","enum":["fixed","feeRate","perKB","custom"]},"type":{"type":"string","enum":["base","max","tip"]},"unit":{"type":"string","enum":["baseUnit","cpu","ram"]}},"required":["amount"]}}},{"$ref":"#/components/schemas/AccountBaseBuildOptions"}]},"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"}]},"DotConsolidateIntent":{"title":"DOT Consolidate Intent","allOf":[{"$ref":"#/components/schemas/AccountBaseConsolidateIntent"}]},"DotCreateAccountIntent":{"title":"DOT Create Account Intent","allOf":[{"type":"object","properties":{"delayBlocks":{"type":"string"},"proxyType":{"type":"string"},"index":{"$ref":"#/components/schemas/optionalNumber"},"recipients":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"amount":{"$ref":"#/components/schemas/Amount"},"data":{"$ref":"#/components/schemas/optionalString"}},"required":["address","amount"]}}},"required":["delayBlocks","proxyType"]},{"$ref":"#/components/schemas/AccountBaseCreateAccountIntent"},{"$ref":"#/components/schemas/DotAccountBaseBuildOptions"}]},"DotPaymentIntent":{"title":"DOT Payment Intent","allOf":[{"type":"object","properties":{"proxy":{"$ref":"#/components/schemas/DotProxy"},"owner":{"$ref":"#/components/schemas/optionalString"}},"required":["proxy","owner"]},{"$ref":"#/components/schemas/PaymentIntent"},{"$ref":"#/components/schemas/DotAccountBaseBuildOptions"}]},"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","properties":{"name":{"$ref":"#/components/schemas/optionalString"},"addressString":{"$ref":"#/components/schemas/optionalString"},"asset":{"$ref":"#/components/schemas/optionalString"},"amountString":{"$ref":"#/components/schemas/optionalString"}}},"DotStakingIntent":{"title":"DOT Staking Intent","allOf":[{"type":"object","properties":{"stakingProxy":{"type":"string"},"addToStake":{"$ref":"#/components/schemas/optionalBoolean"},"addProxy":{"$ref":"#/components/schemas/optionalBoolean"}},"required":["stakingProxy"]},{"$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"}]},"DotUnstakingIntent":{"title":"DOT Unstaking Intent","allOf":[{"type":"object","properties":{"stakingProxy":{"type":"string"},"stopStaking":{"$ref":"#/components/schemas/optionalBoolean"}},"required":["stakingProxy"]},{"$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"}]},"DotWithdrawStakeIntent":{"title":"DOT Withdraw Stake Intent","allOf":[{"$ref":"#/components/schemas/WithdrawIntent"},{"$ref":"#/components/schemas/DotAccountBaseBuildOptions"}]},"EIP1559FeeOptions":{"title":"EIP1559FeeOptions","type":"object","properties":{"gasLimit":{"$ref":"#/components/schemas/optionalNumber"},"maxFeePerGas":{"$ref":"#/components/schemas/optionalNumber"},"maxPriorityFeePerGas":{"$ref":"#/components/schemas/optionalNumber"}}},"ETHSignMessageIntent":{"title":"Eth sign message","allOf":[{"$ref":"#/components/schemas/BaseIntent2"},{"type":"object","properties":{"intentType":{"type":"string","enum":["signMessage"]}},"required":["intentType"]}]},"Email":{"type":"string","format":"email","example":"user@example.com"},"EnableTokenIntent":{"title":"EnableTokenIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["enableToken"],"description":"Must be \"enableToken\"."},"enableTokens":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"address":{"$ref":"#/components/schemas/optionalString"}},"required":["name"],"description":"One or more token entries specifying which tokens to enable."}}},"required":["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"}]},"EnterpriseIdString":{"title":"EnterpriseIdString","type":"string","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"EntryFunctionABI":{"title":"EntryFunctionABI","type":"object","properties":{"typeParameters":{"type":"array","items":{}},"parameters":{"type":"array","items":{}}},"required":["typeParameters","parameters"]},"Error1":{"required":["error","errorName","reqId"],"type":"object","properties":{"error":{"type":"string"},"errorName":{"type":"string"},"reqId":{"type":"string"},"context":{"$ref":"#/components/schemas/ErrorContext"}},"example":{"error":"invalid permission","errorName":"backend:common:forbidden","reqId":"unk-nqo97l23l2ofpvgkbb8z"}},"ErrorContext":{"type":"object","description":"Optional structured metadata for REST validation failures.\nThe schema is fixed for client contract stability.\n","required":["errorName"],"properties":{"errorName":{"type":"string","description":"Same value as the top-level errorName."},"field":{"type":"string","description":"Request field associated with the validation failure."},"message":{"type":"string","description":"Human-readable field-level validation message."}}},"ErrorResponse":{"title":"ErrorResponse","type":"object","properties":{"error":{"type":"string","description":"The error name"},"details":{"type":"string","description":"Error details"}},"required":["error","details"]},"EthAccelerationIntent":{"title":"ETH Acceleration Intent","allOf":[{"type":"object","properties":{"feeOptions":{"oneOf":[{"$ref":"#/components/schemas/FeeOption"},{"$ref":"#/components/schemas/EIP1559FeeOptions"}],"description":"New fee settings (must be higher than the original transaction). Use EIP1559FeeOptions for London-compatible chains."}},"required":["feeOptions"]},{"$ref":"#/components/schemas/AccelerationIntent"},{"$ref":"#/components/schemas/EthBuildOptionsWithoutFeeOptions"}],"description":"Replace a stuck pending EVM transaction with a higher-fee version to\naccelerate confirmation. Supply the original transaction's txid and new\nfeeOptions 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":[{"type":"object","properties":{"feeOptions":{"oneOf":[{"$ref":"#/components/schemas/FeeOption"},{"$ref":"#/components/schemas/EIP1559FeeOptions"}],"description":"Override gas estimation. Provide EIP1559FeeOptions for EIP-1559 chains or FeeOption for legacy."},"hopParams":{"type":"object","description":"Parameters for BitGo Hop transactions (cross-chain bridging via the Hop protocol).","properties":{"gasPriceMax":{"$ref":"#/components/schemas/optionalNumber"},"paymentId":{"$ref":"#/components/schemas/optionalString"},"userReqSig":{"$ref":"#/components/schemas/optionalString"}},"required":["gasPriceMax","paymentId","userReqSig"]},"receiveAddress":{"allOf":[{"$ref":"#/components/schemas/optionalString"}],"description":"Target receive address override. Defaults to wallet's primary receive address."},"senderAddressIndex":{"allOf":[{"$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":[{"type":"object","properties":{"hopParams":{"type":"object","description":"Parameters for BitGo Hop transactions (cross-chain bridging via the Hop protocol).","properties":{"gasPriceMax":{"$ref":"#/components/schemas/optionalNumber"},"paymentId":{"$ref":"#/components/schemas/optionalString"},"userReqSig":{"$ref":"#/components/schemas/optionalString"}},"required":["gasPriceMax","paymentId","userReqSig"]},"receiveAddress":{"allOf":[{"$ref":"#/components/schemas/optionalString"}],"description":"Target receive address override. Defaults to wallet's primary receive address."},"senderAddressIndex":{"allOf":[{"$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"}]},"EthConsolidateIntent":{"title":"ETH Consolidate Intent","allOf":[{"$ref":"#/components/schemas/AccountBaseConsolidateIntent"},{"$ref":"#/components/schemas/EthBuildOptions"}],"description":"Consolidate ETH from multiple receive addresses into the wallet's main\naddress on EVM-compatible chains. Used for wallet housekeeping. Provide\nreceiveAddress as the sweep destination."},"EthConsolidateTokenIntent":{"title":"ETH Consolidate Token Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["consolidateToken"],"description":"Must be \"consolidateToken\"."},"recipients":{"type":"array","items":{"allOf":[{"type":"object","properties":{"tokenData":{"$ref":"#/components/schemas/TokenData"}}},{"$ref":"#/components/schemas/RecipientEntry"}],"description":"Array of token recipients. Each entry specifies the token contract and amount via tokenData."}},"consolidateId":{"allOf":[{"$ref":"#/components/schemas/optionalString"}],"description":"Opaque identifier to correlate consolidation requests."},"keepAlive":{"allOf":[{"$ref":"#/components/schemas/optionalBoolean"}],"description":"When true, leaves a minimal token balance in the source address."}},"required":["intentType","recipients","consolidateId","keepAlive"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/EthBuildOptions"}],"description":"Consolidate ERC-20 tokens from receive addresses into the wallet's main\naddress on EVM-compatible chains. Supply token details in the\nrecipients[].tokenData field."},"EthFillNonceBuildOptions":{"title":"EthFillNonceBuildOptions","type":"object","properties":{"feeOptions":{"oneOf":[{"$ref":"#/components/schemas/FeeOption"},{"$ref":"#/components/schemas/EIP1559FeeOptions"}],"description":"Override gas estimation for the fill-nonce transaction."},"receiveAddress":{"allOf":[{"$ref":"#/components/schemas/optionalString"}],"description":"Target receive address override. Defaults to wallet's primary receive address."},"senderAddressIndex":{"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":[{"$ref":"#/components/schemas/FillNonceIntent"},{"$ref":"#/components/schemas/EthFillNonceBuildOptions"}],"description":"Submit a zero-value self-send to consume a specific nonce on\nEVM-compatible chains. Used to unblock transaction queues when a nonce gap\nhas 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":[{"type":"object","properties":{"intentType":{"$ref":"#/components/schemas/IntentType"},"recipients":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"amount":{"$ref":"#/components/schemas/Amount"},"data":{"$ref":"#/components/schemas/optionalString"}},"required":["address","amount"]}}},"required":["intentType"]},{"$ref":"#/components/schemas/BaseStakeIntent"}]},"EthPaymentIntent":{"title":"ETH Payment Intent","allOf":[{"type":"object","properties":{"selfSend":{"allOf":[{"$ref":"#/components/schemas/optionalBoolean"}],"description":"When true, sends to the wallet's own receive address."}},"required":["selfSend"]},{"$ref":"#/components/schemas/PaymentIntent"},{"$ref":"#/components/schemas/EthBuildOptions"}],"description":"Transfer ETH or ERC-20 tokens to one or more recipients on EVM-compatible\nchains. Specify recipients with their address and amount. Optionally\noverride 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"}]},"EthStakingIntent":{"title":"ETH Staking Intent","allOf":[{"type":"object","properties":{"pubkey":{"type":"string","description":"BLS public key of the validator (hex-encoded, provided by the staking service)."},"withdrawalCredentials":{"type":"string","description":"Withdrawal credentials for the validator (provided by the staking service)."},"signature":{"type":"string","description":"BLS signature over the deposit data (provided by the staking service)."},"depositDataRoot":{"type":"string","description":"SHA-256 hash of the deposit data (provided by the staking service)."}},"required":["pubkey","withdrawalCredentials","signature","depositDataRoot"]},{"$ref":"#/components/schemas/StakeIntent"},{"$ref":"#/components/schemas/EthBuildOptions"}],"description":"Submit an ETH 2.0 validator staking deposit on Ethereum. Requires a\npre-created staking request from the BitGo staking service. All validator\nfields (pubkey, withdrawalCredentials, signature, depositDataRoot) are\nprovided 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"}]},"EthTransferTokenIntent":{"title":"ETH Transfer Token Intent","allOf":[{"$ref":"#/components/schemas/TransferTokenIntent"},{"$ref":"#/components/schemas/EthBuildOptions"}],"description":"Transfer ERC-20 tokens to one or more recipients on EVM-compatible chains.\nEach recipient entry must include tokenData specifying the token contract\nand amount."},"EvaluatedPolicyActionStatus":{"title":"EvaluatedPolicyActionStatus","type":"string","enum":["SKIPPED","PENDING","NOT_NEEDED","COMPLETE","CANCELLED","FAILED","AUTO_CANCELLED"]},"ExerciseCommand":{"title":"ExerciseCommand","type":"object","properties":{"ExerciseCommand":{"type":"object","properties":{"templateId":{"type":"string"},"choice":{"type":"string"},"choiceArgument":{"type":"object","additionalProperties":{}},"contractId":{"type":"string"}},"required":["templateId","choice"]}},"required":["ExerciseCommand"]},"ExpressAccelerateTxRequest":{"type":"object","properties":{"cpfpTxIds":{"type":"array","description":"txids of the transactions to bump\n\n**Notes**:\nEach target unconfirmed transaction must be sending funds to the calling wallet.\nAccepts only a single txid at this stage.\n","items":{"$ref":"#/components/schemas/TxId"}},"cpfpFeeRate":{"type":"integer","description":"Desired effective feerate of the bumped transactions and the CPFP transaction in satoshi per kilobyte"},"maxFee":{"type":"integer","description":"Maximum allowed fee for the CPFP transaction in satoshi\n\n**Note**:\nA CPFP transaction accelerates the target transactions and all of the unconfirmed transactions the target transactions depends on.\nAs it can be difficult to discern the complete transaction ancestry at times, we recommend limiting the total fee for each CPFP attempt as a safety net to prevent CPFP transactions that exceed your cost expectations.\n"},"rbfTxIds":{"type":"array","items":{"type":"string"},"description":"The list of transactions to accelerate using Replace-By-Fee (RBF) for UTXO coins (currently accelerating only one tx is supported)."},"feeMultiplier":{"allOf":[{"type":"number","minimum":1},{"example":1.5}],"description":"(UTXO only) Custom multiplier to the `feeRate`. The resulting fee rate is limited by the `maxFeeRate`. For replace-by-fee (RBF) transactions (that include `rbfTxIds`), the `feeMultiplier` must be greater than 1, since it's an absolute fee multiplier to the transaction being replaced.\n\nNote: The `maxFeeRate` limits the fee rate generated by `feeMultiplier`.\n"},"walletPassphrase":{"type":"string","description":"(Hot wallet only) Passphrase to decrypt the user key on the wallet to sign the transaction."}}},"ExpressAcceptShareRequest":{"type":"object","properties":{"userPassword":{"type":"string","description":"User's password to decrypt the shared wallet (required if the wallet was shared with spend permission)"},"newWalletPassphrase":{"type":"string","description":"New wallet passphrase for saving the shared wallet private key If not provided and the wallet was shared with spend permission, then the userPassword is used"},"overrideEncryptedPrv":{"type":"string","description":"Encrypted private key received out-of-band"}}},"ExpressAcceptShareResponse":{"type":"object","properties":{"state":{"type":"string","allOf":[{"$ref":"#/components/schemas/WalletShareState1"}],"description":"State of the share"},"changed":{"type":"boolean","description":"Indicates if the share changed"}}},"ExpressCalculateMinerFeeInfoRequest":{"type":"object","properties":{"feeRate":{"allOf":[{"$ref":"#/components/schemas/IntegerOrString"},{"example":10000}],"description":"Custom minimum fee rate in a coin's base unit per kilobyte (or virtual kilobyte)--for example, satoshis per kvByte or microAlgos per kByte. If the applied `feeRate` does not meet a coin's required minimum transaction fee amount, the minimum is still applied (for example, 1000 sat/kvByte or a flat 1000 microAlgos).\n"},"nP2shInputs":{"type":"integer","description":"Number of P2SH (multi-signature) inputs","example":2},"nP2pkhInputs":{"type":"integer","description":"Number of P2PKH (single-signature) inputs","example":0},"nP2shP2wshInputs":{"type":"integer","description":"Number of P2SH_P2WSH (wrapped segwit multi-signature) inputs","example":1},"nOutputs":{"type":"integer","description":"Number of outputs","example":2}},"required":["nOutputs"]},"ExpressCalculateMinerFeeInfoResponse":{"type":"object","properties":{"size":{"type":"integer","description":"Estimated size of the transaction in bytes","example":776},"fee":{"type":"integer","description":"Estimated fee in base units for the transaction","example":38800},"feeRate":{"type":"integer","description":"The fee rate in base units per kB used to estimate the fee for the transaction","example":50000}}},"ExpressCanonicalAddressRequest":{"type":"object","properties":{"address":{"type":"string","description":"Address to canonicalize"},"version":{"oneOf":[{"type":"string","default":"base58","description":"Version of the desired BCH address.","enum":["base58","bech32"]},{"type":"integer","description":"Version of the desired LTC address.","enum":[1,2]}]}}},"ExpressConsolidateAccountRequest":{"type":"object","properties":{"consolidateAddresses":{"description":"Optional: restrict the consolidation to the specified receive addresses. If not provided, will consolidate the\nfunds from all receive addresses up to 500 addresses.\n","type":"array","items":{"type":"string"}},"walletPassphrase":{"description":"Passphrase to decrypt the user key on the wallet.\nRequired if External Signer is not used to sign the transactions.\n","type":"string"},"prv":{"description":"The un-encrypted user private key in string form.\nIf the key is a JSON object it must be stringified.\nRequired if `walletPassphrase` is not available or encrypted private key is not stored by BitGo.\n","type":"string"},"apiVersion":{"description":"The Trasaction Request API version to use for MPC EdDSA Hot Wallets.\nDefaults based on the wallet type and asset curve.\n","type":"string","enum":["full","lite"]}}},"ExpressConsolidateUnspentsRequest":{"type":"object","properties":{"walletPassphrase":{"type":"string","description":"Passphrase to decrypt the user key on the wallet"},"xprv":{"type":"string","description":"Private key in string form, if walletPassphrase is not available"},"feeRate":{"allOf":[{"$ref":"#/components/schemas/IntegerOrString"},{"example":10000}],"description":"Custom fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte.\n\nIf the `feeRate` is less than the minimum required network fee, then the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000 microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is usually 4.5 times the open ledger fee.\n\nNote: The `feeRate` overrides the `maxFeeRate` and `minFeeRate`.\n"},"maxFeeRate":{"allOf":[{"$ref":"#/components/schemas/IntegerOrIntegerString"},{"example":20000}],"description":"(BTC only) The maximum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. The `maxFeeRate` limits the fee rate generated by both `feeMultiplier` and `numBlocks`.\n\nNote: The `feeRate` overrides the `maxFeeRate`.\n"},"maxFeePercentage":{"type":"integer","description":"Maximum relative portion that can be spent towards fees"},"feeTxConfirmTarget":{"type":"integer","description":"Block target for fee estimation"},"bulk":{"type":"boolean","description":"Build multiple transactions at the same time. This enables you to increase the maximum number of unspents on the `limit` parameter up to 2,000. If true, you must pass the `txFormat` as `psbt` and you can't pass the `targetAddress` or `numUnspentsToMake` parameters."},"minValue":{"allOf":[{"$ref":"#/components/schemas/IntegerOrIntegerString"}],"description":"Minimum value of unspents to use in base units (e.g. satoshis). Can be used to skip very small unspents when consolidating at higher fee rates. For doge, only string is allowed."},"maxValue":{"allOf":[{"$ref":"#/components/schemas/IntegerOrIntegerString"}],"description":"Maximum value of unspents to use in base units (e.g. satoshis). Should be used to prevent larger unspents from being consolidated needlessly, and that some funds remain available for spending while the consolidation transactions are in flight. For doge, only string is allowed.\n"},"minHeight":{"type":"integer","description":"Minimum height of unspents on the block chain to use"},"minConfirms":{"type":"integer","description":"Minimum confirmation threshold for external inputs"},"enforceMinConfirmsForChange":{"type":"boolean","description":"Flag for enforcing minConfirms for change inputs"},"limit":{"type":"integer","description":"Maximum number of unspents to use in the transaction"},"numUnspentsToMake":{"type":"integer","description":"Number of new unspents to make"},"targetAddress":{"type":"string","description":"address to use for generated outputs. Must be wallet address."},"txFormat":{"$ref":"#/components/schemas/UtxoTransactionFormat"}}},"ExpressCreateKeychainResponse":{"type":"object","description":"Generated key pair","properties":{"prv":{"type":"string","description":"Private key","example":"xprv9s21ZrQH143K2Y4th5Bn8sCRCMNjVr3sm9TLj9yw9SRKxYbJdB18bpc7cZFHKKWKuWZUBATfbDVE26u7w2iUhmWD8Gsp8UkaemhLEfopC35"},"pub":{"$ref":"#/components/schemas/Pub"}}},"ExpressDecryptRequest":{"type":"object","properties":{"input":{"type":"string","description":"Ciphertext to decrypt"},"password":{"type":"string","description":"Key which is used for decryption"}}},"ExpressDecryptResponse":{"type":"object","properties":{"decrypted":{"type":"string"}}},"ExpressEncryptRequest":{"type":"object","properties":{"input":{"type":"string","description":"Plaintext message which should be encrypted"},"password":{"type":"string","description":"Password which should be used to encrypt message"}}},"ExpressEncryptResponse":{"type":"object","properties":{"encrypted":{"type":"string"}}},"ExpressFanOutUnspentsRequest":{"type":"object","properties":{"walletPassphrase":{"type":"string","description":"Passphrase to decrypt the user key on the wallet"},"xprv":{"type":"string","description":"Private key in string form, if walletPassphrase is not available"},"feeRate":{"allOf":[{"$ref":"#/components/schemas/IntegerOrString"},{"example":10000}],"description":"Custom fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte.\n\nIf the `feeRate` is less than the minimum required network fee, then the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000 microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is usually 4.5 times the open ledger fee.\n\nNote: The `feeRate` overrides the `maxFeeRate` and `minFeeRate`.\n"},"maxFeeRate":{"allOf":[{"$ref":"#/components/schemas/IntegerOrIntegerString"},{"example":20000}],"description":"(BTC only) The maximum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. The `maxFeeRate` limits the fee rate generated by both `feeMultiplier` and `numBlocks`.\n\nNote: The `feeRate` overrides the `maxFeeRate`.\n"},"maxFeePercentage":{"type":"integer","description":"Maximum relative portion that can be spent towards fees"},"feeTxConfirmTarget":{"type":"integer","description":"Block target for fee estimation"},"minValue":{"allOf":[{"$ref":"#/components/schemas/IntegerOrIntegerString"}],"description":"Minimum value of unspents to use in base units (e.g. satoshis). For doge, only string is allowed."},"maxValue":{"allOf":[{"$ref":"#/components/schemas/IntegerOrIntegerString"}],"description":"Maximum value of unspents to use in base units (e.g. satoshis). For doge, only string is allowed."},"minHeight":{"type":"integer","description":"Minimum height of unspents on the block chain to use"},"minConfirms":{"type":"integer","description":"Minimum confirmation threshold for external inputs"},"enforceMinConfirmsForChange":{"type":"boolean","description":"Flag for enforcing minConfirms for change inputs"},"unspents":{"type":"array","items":{"type":"string"},"description":"Unspents to fan out in the transaction. Mutually exclusive with maxNumInputsToUse."},"maxNumInputsToUse":{"type":"integer","description":"Maximum number of unspents to use in the transaction. Mutually exclusive with unspents."},"numUnspentsToMake":{"type":"integer","description":"Number of new unspents to make"},"targetAddress":{"type":"string","description":"address to use for generated outputs. Must be wallet address."},"txFormat":{"$ref":"#/components/schemas/UtxoTransactionFormat"}}},"ExpressGenerateWalletBackupKeychain":{"title":"ExpressGenerateWalletBackupKeychain","type":"object","properties":{"id":{"type":"string","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"prv":{"type":"string"},"pub":{"type":"string","description":"public part of a key pair","example":"xpub661MyMwAqRbcGMVhmc7wqQRYMtcX9LAvSj1pjB213y5TsrkV2uuzJjWnjBrT1FUeNWGPjaVm5p7o6jdNcQJrV1cy3a1R8NQ9m7LuYKA8RpH"},"source":{"type":"string","description":"Party that created the key","example":"backup"},"ethAddress":{"type":"string","description":"Ethereum address corresponding to this keychain","example":"0xf5b7cca8621691f9dde304cb7128b6bb3d409363"},"coinSpecific":{"type":"object","additionalProperties":{}}}},"ExpressGenerateWalletBitgoKeychain":{"title":"ExpressGenerateWalletBitgoKeychain","type":"object","properties":{"id":{"type":"string","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"pub":{"type":"string","description":"public part of a key pair","example":"xpub661MyMwAqRbcGMVhmc7wqQRYMtcX9LAvSj1pjB213y5TsrkV2uuzJjWnjBrT1FUeNWGPjaVm5p7o6jdNcQJrV1cy3a1R8NQ9m7LuYKA8RpH"},"isBitGo":{"type":"boolean","description":"Flag for identifying keychain as created by BitGo","example":true},"source":{"type":"string","description":"Party that created the key","example":"bitgo"},"ethAddress":{"type":"string","description":"Ethereum address corresponding to this keychain","example":"0xa487900d0de75107b1cc7ade0e2662980e5ce940"},"coinSpecific":{"type":"object","additionalProperties":{}}}},"ExpressGenerateWalletResponse":{"oneOf":[{"$ref":"#/components/schemas/ExpressWallet"},{"title":"Wallet (including keychains)","type":"object","description":"Wallet with user, bitgo and backup keychains (when `includeKeychains` query param is `true`).","properties":{"wallet":{"$ref":"#/components/schemas/ExpressWallet"},"encryptedWalletPassphrase":{"type":"string","description":"Encrypted wallet passphrase. Used only with `passcodeEncryptionCode`. You can use the encrypted wallet passphrase in the BitGo web app during password recovery for the wallet.","example":"\"{\\\"iv\\\":\\\"IpwAFi0+TDsLJCV4pg8T6w==\\\",\\\"v\\\":1,\\\"iter\\\":10000,\\\"ks\\\":256,\\\"ts\\\":64,\\\"mode\\\":\\\"ccm\\\",\\\"adata\\\":\\\"\\\",\\\"cipher\\\":\\\"aes\\\",\\\"salt\\\":\\\"3lkIc47rjzo=\\\",\\\"ct\\\":\\\"/m6JL/ttTJWXNmHm+dzI\\\"}\""},"userKeychain":{"type":"object","description":"User keychain","properties":{"id":{"$ref":"#/components/schemas/Id"},"encryptedPrv":{"type":"string","description":"User private key encrypted with the user passphrase","example":"{\"iv\":\"TEd5eouui6hKashuVi5WHQ==\",\"v\":1,\"iter\":10000,\"ks\":256,\"ts\":64,\"mode\":\"ccm\",\"adata\":\"\",\"cipher\":\"aes\",\"salt\":\"dHu4PWoX2M8=\",\"ct\":\"fYr9Y/6kU40AosONkV0xi+fWsyhpYSew0L2YKH/qEZjOlxeDjpC2aTJ0Yc/KdmXheUGolcAxGSx93ykN21Zim1DGc/UGa25IUA/3ARgX7gBsYnYEy5e5Ol0YZYb9pa7KFeaDZSLMXrxxoahg5zL4AJsUx90Pwcg=\"}"},"prv":{"type":"string","description":"User private key","example":"xprv9s21ZrQH143K3e1981rUcbKjJ9G57SDCDZ9HY4Sqhx5ZqMoyK1j49kAf1vuM1G9nhRr6kzqbUQb3gj5zuzrsvNRQ84tYf32EcyapRgBNpp4"},"pub":{"$ref":"#/components/schemas/Pub"},"ethAddress":{"type":"string","description":"Ethereum address corresponding to this keychain","example":"0xf5b7cca8621691f9dde304cb7128b6bb3d409363"},"source":{"type":"string","description":"Party that created the key","example":"user"},"coinSpecific":{"type":"object","description":"Coin specific key data"}}},"backupKeychain":{"type":"object","description":"Backup keychain","properties":{"id":{"$ref":"#/components/schemas/Id"},"prv":{"type":"string","description":"Backup private key","example":"xprv9s21ZrQH143K47iEnAFZRJz36E5ZxuEDBJETFYxJTsTVxuPc9z7oGWADUK6icX5P3ruoe244yxMt9uZ2LjWhddvnJJ4zB7zK93qBtxYrmN6"},"pub":{"$ref":"#/components/schemas/Pub"},"source":{"type":"string","description":"Party that created the key","example":"backup"},"ethAddress":{"type":"string","description":"Ethereum address corresponding to this keychain","example":"0xf5b7cca8621691f9dde304cb7128b6bb3d409363"},"coinSpecific":{"type":"object","description":"Coin specific key data"}}},"bitgoKeychain":{"type":"object","description":"BitGo keychain","properties":{"id":{"$ref":"#/components/schemas/Id"},"pub":{"$ref":"#/components/schemas/Pub"},"isBitGo":{"type":"boolean","description":"Flag for identifying keychain as created by BitGo","example":true},"source":{"type":"string","description":"Party that created the key","example":"bitgo"},"ethAddress":{"type":"string","description":"Ethereum address corresponding to this keychain","example":"0xa487900d0de75107b1cc7ade0e2662980e5ce940"},"coinSpecific":{"type":"object","description":"Coin specific key data"}}},"warning":{"type":"string","description":"If the backup key is held by the user, this is a message warning the user to securely backup their backup keychain.","example":"Be sure to backup the backup keychain -- it is not stored anywhere else!"}}}]},"ExpressGenerateWalletResponse1":{"title":"ExpressGenerateWalletResponse","oneOf":[{"$ref":"#/components/schemas/ExpressGenerateWalletWithKeychains"},{"$ref":"#/components/schemas/ExpressWalletDirectResponse"}]},"ExpressGenerateWalletUserKeychain":{"title":"ExpressGenerateWalletUserKeychain","type":"object","properties":{"id":{"type":"string","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"encryptedPrv":{"type":"string"},"prv":{"type":"string"},"pub":{"type":"string","description":"public part of a key pair","example":"xpub661MyMwAqRbcGMVhmc7wqQRYMtcX9LAvSj1pjB213y5TsrkV2uuzJjWnjBrT1FUeNWGPjaVm5p7o6jdNcQJrV1cy3a1R8NQ9m7LuYKA8RpH"},"ethAddress":{"type":"string","description":"Ethereum address corresponding to this keychain","example":"0xf5b7cca8621691f9dde304cb7128b6bb3d409363"},"source":{"type":"string","description":"Party that created the key","example":"user"},"coinSpecific":{"type":"object","additionalProperties":{}}}},"ExpressGenerateWalletWithKeychains":{"title":"ExpressGenerateWalletWithKeychains","type":"object","description":"Wallet with user, bitgo and backup keychains (when includeKeychains query param is true).","properties":{"wallet":{"$ref":"#/components/schemas/ExpressWallet1"},"encryptedWalletPassphrase":{"type":"string"},"userKeychain":{"$ref":"#/components/schemas/ExpressGenerateWalletUserKeychain"},"backupKeychain":{"$ref":"#/components/schemas/ExpressGenerateWalletBackupKeychain"},"bitgoKeychain":{"$ref":"#/components/schemas/ExpressGenerateWalletBitgoKeychain"},"warning":{"type":"string","description":"If the backup key is held by the user, this is a message warning the user to securely backup their backup keychain.","example":"Be sure to backup the backup keychain -- it is not stored anywhere else!"}},"required":["wallet"]},"ExpressInitWalletRequest":{"type":"object","properties":{"passphrase":{"type":"string","description":"Passphrase to encrypt the admin macaroon of the signer node."}}},"ExpressIsWalletAddressRequest":{"type":"object","description":"Request body for verifying if an address belongs to a wallet","required":["address","keychains"],"properties":{"address":{"type":"string","description":"The address to verify"},"keychains":{"type":"array","items":{"type":"object","description":"Keychains for cryptographic verification\nCan be retrieved from GET /api/v2/{coin}/key/{id}\n","properties":{"pub":{"type":"string"},"ethAddress":{"type":"string","description":"Ethereum address (required for V1, V2, V4 ETH wallets base address verification)"},"commonKeychain":{"type":"string","description":"Common keychain (required for  wallets version 3, 5, 6)"}},"required":["pub"]}},"baseAddress":{"type":"string","description":"Base address of the wallet (wallet.coinSpecific.baseAddress)"},"walletVersion":{"type":"number","description":"Wallet version (wallet.coinSpecific.walletVersion)"},"index":{"oneOf":[{"type":"number"},{"type":"string"}],"description":"Address derivation index\nFor Base Address verification, set index to 0\n"},"coinSpecific":{"type":"object","description":"Coin-specific address data","properties":{"baseAddress":{"type":"string","description":"Base address (wallet.coinSpecific.baseAddress)"},"feeAddress":{"type":"string","description":"Fee address for v4 forwarders (wallet.coinSpecific.feeAddress)"},"forwarderVersion":{"type":"number","description":"Forwarder version (address.coinSpecific.forwarderVersion, required for forwarder addresses only)"},"salt":{"type":"string","description":"Salt for address derivation\nForwarderAddress: address.coinSpecific.salt\nBaseAddress: wallet.coinSpecific.salt\n"}}},"impliedForwarderVersion":{"type":"number","description":"Implied forwarder version"},"format":{"type":"string","description":"Format for the address"},"rootAddress":{"type":"string","description":"Root address for coins that use root address"}}},"ExpressIsWalletAddressResponse":{"type":"boolean","description":"Returns true if the address belongs to the wallet"},"ExpressLightningNodeStateResponse":{"type":"object","properties":{"state":{"description":"Current state of the node","type":"string","enum":["NON_EXISTING","LOCKED","UNLOCKED","RPC_ACTIVE","SERVER_ACTIVE","WAITING_TO_START"]}}},"ExpressOnchainWithdrawRequest":{"type":"object","properties":{"passphrase":{"type":"string","description":"The wallet passphrase."},"recipients":{"type":"array","description":"A list of on-chain recipients with their withdrawal amounts.","items":{"type":"object","properties":{"amountSat":{"type":"string","description":"The amount to send in satoshis."},"address":{"type":"string","description":"The on-chain Bitcoin address of the recipient."}}}},"satsPerVbyte":{"type":"string","description":"Optional fee rate for the transaction in satoshis per virtual byte. Cannot be used with `numBlocks`."},"numBlocks":{"type":"integer","description":"The number of blocks required to confirm a transaction. You can use `numBlocks` to estimate the fee rate by targeting confirmation within a given number of blocks. If both `satsPerVbyte` and `numBlocks` are absent, the transaction defaults to 2 blocks for confirmation.\n","minimum":2,"maximum":1000},"sequenceId":{"type":"string","description":"Optional sequence ID for the withdrawal transfer."},"comment":{"type":"string","description":"Optional comment for the withdrawal transfer."}},"required":["passphrase","recipients"]},"ExpressOnchainWithdrawResponse":{"type":"object","properties":{"txRequestId":{"type":"string","description":"Transaction request identifier."},"txRequestState":{"$ref":"#/components/schemas/TransactionRequestState1"},"pendingApproval":{"$ref":"#/components/schemas/PendingApproval1"},"withdrawStatus":{"type":"object","description":"The status of the on-chain withdrawal transaction.","properties":{"status":{"type":"string","enum":["delivered","failed"],"description":"State of the withdrawal."},"txid":{"type":"string","description":"The transaction ID on the blockchain."},"failureReason":{"type":"string","description":"The reason for failure, if any."}}}}},"ExpressPayInvoiceRequest":{"type":"object","properties":{"invoice":{"type":"string","description":"The BOLT 11 invoice to pay"},"passphrase":{"type":"string","description":"The wallet passphrase"},"amountMsat":{"type":"string","description":"The amount to pay in millisatoshis. This is required if you're paying a zero value invoice."},"feeLimitMsat":{"type":"string","description":"Optional maximum fee to pay in millisatoshis"},"feeLimitRatio":{"type":"number","description":"Optional maximum fee expressed as a ratio of the payment amount","example":0.1},"sequenceId":{"type":"string","description":"Optional sequence ID for the payment transfer"},"comment":{"type":"string","description":"Optional comment for the payment transfer"}},"required":["invoice","passphrase"]},"ExpressPayInvoiceResponse":{"type":"object","properties":{"txRequestId":{"type":"string","description":"Transaction request identifier"},"txRequestState":{"$ref":"#/components/schemas/TransactionRequestState1"},"pendingApproval":{"$ref":"#/components/schemas/PendingApproval1"},"paymentStatus":{"type":"object","properties":{"status":{"type":"string","enum":["in_flight","settled","failed"],"description":"State of the lightning payment"},"paymentHash":{"type":"string","description":"Hash of the lightning payment, unique identifier used when doing transfer lookup"},"paymentPreimage":{"type":"string","description":"Optional preimage of the payment"},"amountMsat":{"type":"string","description":"Amount in millisatoshis"},"feeMsat":{"type":"string","description":"Fee in millisatoshis"},"failureReason":{"$ref":"#/components/schemas/LightningPaymentFailureReason"}}}}},"ExpressPingResponse":{"type":"object","properties":{"status":{"type":"string"}}},"ExpressResolvePendingApprovalRequest":{"type":"object","properties":{"state":{"type":"string","description":"New state for the pending approval","enum":["approved","rejected"]},"walletPassphrase":{"type":"string","description":"Passphrase to decrypt the user key on the wallet"},"xprv":{"type":"string","description":"Private key in string form, if walletPassphrase is not available"},"otp":{"$ref":"#/components/schemas/Otp"}}},"ExpressSendCoinsRequest":{"allOf":[{"type":"object","properties":{"address":{"allOf":[{"$ref":"#/components/schemas/AddressString3"}],"description":"Destination address"},"amount":{"allOf":[{"$ref":"#/components/schemas/IntegerOrIntegerString"}],"description":"Amount in base units (e.g. satoshi, wei, drops, stroops). For doge, only string is allowed."},"walletPassphrase":{"type":"string","description":"Passphrase to decrypt the user key on the wallet"},"prv":{"type":"string","description":"Optional, private key in string form, if `walletPassphrase` is not available or encrypted private key is not stored by BitGo."}}},{"$ref":"#/components/schemas/BuildParams"},{"type":"object","properties":{"data":{"type":"string","description":"(ETH only) Optional data to pass to the transaction"},"hop":{"type":"boolean","description":"(ETH, AVAXC and POLYGON) Set to true if funds to destination need to come from single sig address"},"tokenName":{"type":"string","description":"Token name, defined in the BitGoJS Statics package."}}}]},"ExpressSendCoinsResponse":{"anyOf":[{"$ref":"#/components/schemas/ExpressSendCoinsResponseMultisig"},{"$ref":"#/components/schemas/ExpressSendCoinsResponseMultisigWithPendingApproval"},{"$ref":"#/components/schemas/ExpressSendCoinsResponseTxRequest"},{"$ref":"#/components/schemas/ExpressSendCoinsResponseTxRequestWithPendingApproval"}]},"ExpressSendCoinsResponseMultisig":{"description":"Multisig wallet send coins response when no pending approval is required.","allOf":[{"$ref":"#/components/schemas/ExpressSendCoinsResponseTransfer"}]},"ExpressSendCoinsResponseMultisigWithPendingApproval":{"description":"Multisig wallet send coins response when pending approval is required.","allOf":[{"$ref":"#/components/schemas/PendingApproval1"}]},"ExpressSendCoinsResponseTransfer":{"type":"object","properties":{"transfer":{"$ref":"#/components/schemas/Transfer"},"txid":{"type":"string","description":"Unique transaction identifier"},"tx":{"oneOf":[{"type":"string","description":"Encoded transaction hex (or base64 for XLM)"},{"$ref":"#/components/schemas/PsbtHex"}]},"status":{"type":"string","description":"Transfer status","enum":["signed","signed (suppressed)","pendingApproval"]}}},"ExpressSendCoinsResponseTxRequest":{"description":"Wallet send coins response when no pending approval is required for MPC wallets and lightning wallets.","allOf":[{"type":"object","properties":{"txRequest":{"$ref":"#/components/schemas/TransactionRequestFull1"}}},{"$ref":"#/components/schemas/ExpressSendCoinsResponseTransfer"}]},"ExpressSendCoinsResponseTxRequestWithPendingApproval":{"description":"Wallet send coins response when pending approval is required for MPC wallets and lightning wallets.","type":"object","properties":{"txRequest":{"$ref":"#/components/schemas/TransactionRequestFull1"},"pendingApproval":{"$ref":"#/components/schemas/PendingApproval1"}}},"ExpressSendConsolidationResponse":{"type":"object","properties":{"success":{"description":"An Array of TransactionRequest or Transfers.","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/TransactionRequestLite1"},{"$ref":"#/components/schemas/TransactionRequestFull1"},{"$ref":"#/components/schemas/Transfer"}]}},"failure":{"type":"array","description":"An Array of Error messages.","items":{"type":"string"}}},"required":["success","failure"]},"ExpressSendManyRequest":{"allOf":[{"type":"object","properties":{"recipients":{"type":"array","items":{"type":"object","description":"List of recipient addresses and amounts to send","properties":{"address":{"allOf":[{"$ref":"#/components/schemas/AddressString3"}],"description":"Destination address"},"amount":{"allOf":[{"$ref":"#/components/schemas/IntegerOrIntegerString"}],"description":"The amount in base units (e.g. satoshis) to send. For doge, only string is allowed."},"tokenName":{"type":"string","description":"The token name. Required for MPC wallets token transactions.","example":"sol:natix"},"tokenData":{"allOf":[{"$ref":"#/components/schemas/RecipientTokenData"}],"description":"Data set to build a transaction that involves a token interaction."}}},"description":"A list of recipient addresses and amounts. Must be present but empty for CPFP transactions."},"otp":{"type":"string","description":"Two factor auth code to enable sending the transaction. Not necessary if using a long lived access token within the spending limit."},"walletPassphrase":{"type":"string","description":"Passphrase to decrypt the user key on the wallet.\nRequired if External Signer is not used to sign the transactions.\n"},"prv":{"type":"string","description":"The un-encrypted user private key in string form.\nIf the key is a JSON object it must be stringified.\nRequired if `walletPassphrase` is not available or encrypted private key is not stored by BitGo.\n"}}},{"$ref":"#/components/schemas/BuildParams"},{"type":"object","properties":{"data":{"type":"string","description":"(ETH only) Optional data to pass to the transaction"}}}]},"ExpressShareWalletRequest":{"type":"object","properties":{"email":{"type":"string","description":"Email address of the user being invited","example":"foo@bar.com"},"permissions":{"type":"string","allOf":[{"$ref":"#/components/schemas/WalletPermission"}]},"walletPassphrase":{"type":"string","description":"Wallet passphrase of the user sharing the wallet"},"message":{"type":"string","description":"User readable message to display to the share recipient"},"reshare":{"type":"boolean","description":"Flag for reinviting a user to the wallet. This is required if the invitee has already been invited to the wallet, but has changed their password and needs a new invite"},"skipKeychain":{"type":"boolean","description":"If true, skips using a shared key (for when the wallet is shared without spend permission)."},"disableEmail":{"type":"boolean","description":"Flag for disabling invite notification email"}},"required":["email","permissions"]},"ExpressSignTssTx":{"anyOf":[{"$ref":"#/components/schemas/TransactionRequestLite1"},{"$ref":"#/components/schemas/ExpressSignTssTxFull"}]},"ExpressSignTssTxFull":{"title":"Full","type":"object","properties":{"txRequestId":{"description":"The transaction request ID.\nThis is the ID returned by the Create Transaction Request API.\n","type":"string"},"walletPassphrase":{"description":"The wallet passphrase.\nRequired if External Signer is not used to sign the transactions.\n","type":"string"},"prv":{"description":"The un-encrypted user private key of the wallet.\nIf the key is a JSON object it must be stringified.\nRequired for Self-Managed Cold wallets when External Signer is not used to sign the transactions.\n","type":"string"}},"required":["txRequestId"]},"ExpressSignTxRequest":{"type":"object","properties":{"prv":{"type":"string","description":"user private key","example":"xprv9s21ZrQH143K3xQwj4yx3fHjDieEdqFDweBvFxn28qGvfQGvweUWuUuDRpepDu6opq3jiWHU9h3yYTKk5vvu4ykRuGA4i4Kz1vmFMPLTsoC"},"txPrebuild":{"type":"object","properties":{"wallet":{"$ref":"#/components/schemas/Id"},"txHex":{"type":"string","description":"Serialized transaction hex"},"txBase64":{"type":"string","description":"Serialized transaction base64 (applies to XLM only) The request must include this or a txHex"},"txInfo":{"oneOf":[{"$ref":"#/components/schemas/UtxoTxInfo"},{"$ref":"#/components/schemas/XlmTxInfo"}]},"feeInfo":{"type":"object","properties":{"size":{"type":"integer","description":"Estimated size of the transaction in bytes","example":776},"fee":{"type":"integer","description":"Estimated fee in base units for the transaction","example":38800},"feeRate":{"allOf":[{"$ref":"#/components/schemas/IntegerOrString"},{"example":10000}],"description":"Custom fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte.\n\nIf the `feeRate` is less than the minimum required network fee, then the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000 microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is usually 4.5 times the open ledger fee.\n\nNote: The `feeRate` overrides the `maxFeeRate` and `minFeeRate`.\n"},"payGoFee":{"type":"integer","description":"BitGo fee of the transaction (in base units)","example":0},"payGoFeeString":{"type":"integer","description":"BitGo fee of the transaction (in base units) represented as a String","example":"0"}}}}},"isLastSignature":{"type":"boolean","description":"Should be set to true if you are signing the second time, attaching the final signature. Default to false."},"pubs":{"type":"array","description":"Public Keys (user, backup, bitgo) for the wallet (UTXO coins only)","items":{"type":"string"},"example":["string","string","string"]}}},"ExpressSignTxResponse":{"type":"object","properties":{"txInfo":{"oneOf":[{"title":"Hex","type":"object","properties":{"txHex":{"$ref":"#/components/schemas/TxHex"}}},{"title":"Base64","type":"object","properties":{"halfSigned":{"type":"object","properties":{"txBase64":{"$ref":"#/components/schemas/TxBase64"}}}}}]}}},"ExpressSweepRequest":{"type":"object","properties":{"address":{"type":"string","description":"The destination address for the sweep transaction"},"walletPassphrase":{"type":"string","description":"Passphrase to decrypt the user key on the wallet"},"xprv":{"type":"string","description":"Private key in string form, if walletPassphrase is not available"},"otp":{"type":"string","description":"Two factor auth code to enable sending the transaction"},"feeTxConfirmTarget":{"type":"string","description":"Number of blocks to wait to confirm the transaction"},"feeRate":{"allOf":[{"$ref":"#/components/schemas/IntegerOrString"},{"example":10000}],"description":"Custom fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte.\n\nIf the `feeRate` is less than the minimum required network fee, then the minimum fee applies. For example, 1000 sat/kvByte, a flat 1000 microAlgos, or a flat 10 drops of xrp. For XRP, the actual fee is usually 4.5 times the open ledger fee.\n\nNote: The `feeRate` overrides the `maxFeeRate` and `minFeeRate`.\n"},"maxFeeRate":{"allOf":[{"$ref":"#/components/schemas/IntegerOrIntegerString"},{"example":20000}],"description":"(BTC only) The maximum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. The `maxFeeRate` limits the fee rate generated by both `feeMultiplier` and `numBlocks`.\n\nNote: The `feeRate` overrides the `maxFeeRate`.\n"},"allowPartialSweep":{"type":"boolean","default":false,"description":"Use `allowPartialSweep: true` to sweep part of a wallet when there are too many unspents to empty the wallet in a\nsingle transaction. While the expected outcome of a single sweep call would usually be an empty wallet, using the\nallowPartialSweep option may leave some funds in the wallet. Making repeated calls with the allowPartialSweep\noption allows emptying wallets with many unspents without consolidating first.\n"},"txFormat":{"$ref":"#/components/schemas/UtxoTransactionFormat"}}},"ExpressUnlockLightningWalletRequest":{"type":"object","properties":{"passphrase":{"type":"string","description":"Passphrase to decrypt the unlock the node."}}},"ExpressUnlockLightningWalletResponse":{"type":"object","properties":{"message":{"type":"string","example":"ok"}}},"ExpressVerifyCoinAddressRequest":{"type":"object","properties":{"address":{"type":"string","allOf":[{"$ref":"#/components/schemas/AddressString3"}],"description":"Address which should be verified for correct format"}}},"ExpressWallet":{"title":"Wallet","type":"object","properties":{"id":{"$ref":"#/components/schemas/Id"},"users":{"type":"array","description":"Ids of users with access to the wallet","items":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/Id"},"permissions":{"type":"array","description":"Array of permissions for the user","items":{"type":"string","example":["admin","view","spend"]}}}}},"coin":{"type":"string","description":"Name of the blockchain the wallet is on","example":"tbtc4"},"label":{"type":"string","description":"Name the user assigned to the wallet","example":"My TBTC4 Wallet"},"m":{"type":"integer","description":"Number of signatures required for the wallet to send","example":2},"n":{"type":"integer","description":"Number of signers on the wallet","example":3},"keys":{"type":"array","description":"Ids of wallet keys","items":{"$ref":"#/components/schemas/Id"}},"keySignatures":{"type":"object","description":"Signatures for the backup and BitGo public keys signed by the user key","properties":{"backupPub":{"type":"string","description":"Signature for the backup pub","example":"1fe81d0c91457d89993b01475bfb9e5809067ae046926faeab6e63beea009d8dd460387e0c3843034570798a9c2bcc1dbbea2988ee5a36979e0bbe6e02f7840af2"},"bitgoPub":{"type":"string","description":"Signature for the BitGo pub","example":"209d0e9a6d4352b66fae0a35ce62c1059bcc4db9e2883abc4f1b3d20481c5cebb7299c581efd9e0151abaf2496da7c6d75d276de36ed3de37c94e9cc5a2ea77e59"}}},"tags":{"type":"array","description":"Tags set on the wallet","items":{"$ref":"#/components/schemas/Id"}},"receiveAddress":{"$ref":"#/components/schemas/Address2"},"balance":{"type":"integer","description":"Wallet balance as number","example":0},"balanceString":{"type":"string","description":"Wallet balance as string","example":"0"},"confirmedBalance":{"type":"integer","description":"Confirmed wallet balance as number","example":0},"confirmedBalanceString":{"type":"string","description":"Confirmed wallet balance as string","example":"0"},"spendableBalance":{"type":"integer","description":"Spendable wallet balance as number","example":0},"spendableBalanceString":{"type":"string","description":"Spendable wallet balance as string","example":"0"},"deleted":{"type":"boolean","description":"Flag which indicates the wallet has been deleted","example":false},"isCold":{"type":"boolean","description":"Flag for identifying cold wallets","example":false},"freeze":{"type":"object","description":"Freeze state (used to stop the wallet from spending)","properties":{"time":{"type":"string","format":"date-time","description":"Time when the wallet becomes frozen"},"expires":{"type":"string","format":"date-time","description":"Time when the wallet is unfrozen and allowed to spend"}},"example":{}},"disableTransactionNotifications":{"type":"boolean","description":"Flag for disabling wallet transaction notifications","example":false},"admin":{"type":"object","description":"Admin data (wallet policies)","example":{}},"approvalsRequired":{"type":"integer","description":"Number of admin approvals required for an action to fire","example":1},"pendingApprovals":{"type":"array","description":"Pending approvals on the wallet","items":{"$ref":"#/components/schemas/PendingApproval1"},"example":[]},"allowBackupKeySigning":{"type":"boolean","description":"Flag for allowing signing with backup key","example":false},"coinSpecific":{"type":"object","description":"Coin-specific data"},"clientFlags":{"type":"array","items":{"type":"string"}},"recoverable":{"type":"boolean","description":"Flag indicating whether this wallet's user key is recoverable with the passphrase held by the user."},"startDate":{"type":"string","format":"date-time","description":"Time when this wallet was created"},"hasLargeNumberOfAddresses":{"type":"boolean","description":"Flag indicating that this wallet is large (more than 100,000 addresses). If this is set, some APIs may omit\nproperties which are expensive to calculate for wallets with many addresses (for example, the total address\ncounts returned by the List Addresses API).\n"},"config":{"type":"object","description":"Custom configuration options for this wallet"}}},"ExpressWallet1":{"title":"ExpressWallet","type":"object","properties":{"id":{"type":"string","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"users":{"type":"array","items":{"type":"object","properties":{"user":{"type":"string","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"permissions":{"type":"array","items":{"type":"string"}}}}},"coin":{"allOf":[{"$ref":"#/components/schemas/CoinString"}],"description":"Name of the blockchain the wallet is on","example":"tbtc4"},"label":{"type":"string","description":"Name the user assigned to the wallet","example":"My TBTC4 Wallet"},"m":{"type":"number","description":"Number of signatures required for the wallet to send","example":2},"n":{"type":"number","description":"Number of signers on the wallet","example":3},"keys":{"type":"array","items":{"type":"string"}},"keySignatures":{"type":"object","properties":{"backupPub":{"type":"string"},"bitgoPub":{"type":"string"}}},"tags":{"type":"array","items":{"type":"string"}},"receiveAddress":{"$ref":"#/components/schemas/Address21"},"balance":{"type":"number","example":null},"balanceString":{"type":"string","example":"0 */"},"confirmedBalance":{"type":"number","example":null},"confirmedBalanceString":{"type":"string","example":"0 */"},"spendableBalance":{"type":"number","example":null},"spendableBalanceString":{"type":"string","example":"0 */"},"deleted":{"type":"boolean","example":false},"isCold":{"type":"boolean","example":false},"freeze":{"allOf":[{"$ref":"#/components/schemas/ExpressWalletFreeze"}],"description":"Freeze state (used to stop the wallet from spending)"},"disableTransactionNotifications":{"type":"boolean","example":false},"admin":{"allOf":[{"$ref":"#/components/schemas/ExpressWalletAdmin"}],"description":"Admin data (wallet policies)"},"approvalsRequired":{"type":"number","example":null},"pendingApprovals":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"coin":{"type":"string","description":"A cryptocurrency or token ticker symbol.","example":"btc"},"wallet":{"type":"string","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"walletType":{"type":"string"},"walletSubType":{"type":"string","description":"The subtype of the wallet (e.g., custodialHot)"},"wallets":{"type":"array","items":{"type":"string","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$","description":"The wallets of the pending approval"}},"enterprise":{"type":"string","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"organization":{"type":"string","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"organizationName":{"type":"string","description":"The organization name"},"bitgoOrg":{"type":"string","description":"The BitGo organization"},"creator":{"type":"string","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"createDate":{"type":"string","description":"The creation date of the pending approval","format":"date-time","title":"ISO Date String"},"approvedDate":{"type":"string","description":"The date when the approval was granted","format":"date-time","title":"ISO Date String"},"updatedAt":{"type":"string","description":"The date when the approval was last updated (any update, not just processing)","format":"date-time","title":"ISO Date String"},"keyCurve":{"type":"string","enum":["secp256k1","ed25519","bls12_381"],"description":"The key curve of the coin attached to this pending approval"},"info":{"allOf":[{"$ref":"#/components/schemas/PendingApprovalInfo"}],"description":"Information about the pending approval"},"state":{"allOf":[{"$ref":"#/components/schemas/PendingApprovalState"}],"description":"The state of the pending approval"},"scope":{"type":"string","enum":["enterprise","wallet","organization","global"],"description":"What kind of entity the Pending Approval is tied to"},"userIds":{"type":"array","items":{"type":"string","description":"All the Users who should see this Pending Approval"}},"approvalsRequired":{"type":"number","example":1,"minimum":1},"walletLabel":{"type":"string","description":"Label for the wallet"},"addressLabels":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/AddressString"},"label":{"type":"string","description":"The label"},"walletLabel":{"type":"string","description":"The wallet label"}},"required":["address","label"],"description":"Address labels of recipients in this Pending Approval"}},"resolvers":{"type":"array","items":{"type":"object","description":"Resolvers for the pending approval","properties":{"autoApproved":{"type":"boolean","description":"Whether the resolution was auto approved"},"date":{"type":"string","description":"The date of resolution","format":"date-time","title":"ISO Date String"},"resolutionAction":{"type":"string","enum":["approve","reject","skip","fail"],"description":"Action taken during resolution"},"resolutionMemo":{"type":"string","description":"Memo regarding the resolution"},"resolutionType":{"allOf":[{"$ref":"#/components/schemas/PendingApprovalStatePending"}],"description":"The type of resolution"},"user":{"type":"string","description":"The user who resolved the approval"},"videoApprover":{"type":"string","description":"The approver of the video resolution"},"videoException":{"type":"string","description":"Exception details for the video"},"videoLink":{"type":"string","description":"Link to the resolution video"}},"required":["resolutionType"]}},"approvers":{"type":"array","items":{"type":"string","description":"List of approvers"}},"singleRunResults":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string","description":"The rule ID"},"triggered":{"type":"boolean","description":"Whether the rule was triggered"}},"description":"Results from single run checks"}},"txRequestId":{"type":"string","description":"Transaction request ID","example":"123e4567-e89b-12d3-a456-426614174000","format":"uuid"},"videoId":{"type":"object","description":"ID for the video related to the approval","properties":{"date":{"type":"string","description":"The date of the video ID","format":"date-time","title":"ISO Date String"},"user":{"type":"string","description":"The user associated with the video ID"},"videoApprover":{"type":"string","description":"The approver of the video"},"videoException":{"type":"string","description":"The exception related to the video"},"videoLink":{"type":"string","description":"The link to the video"}}},"version":{"type":"number","description":"Version of the pending approval"},"policyEvaluationId":{"type":"string","description":"ID for the policy evaluation"},"actions":{"type":"array","items":{"type":"object","properties":{"approvers":{"type":"array","items":{"type":"string","description":"The approvers of the action"}},"excludedApprovers":{"type":"array","items":{"type":"string","description":"Users that are eligible approvers but cannot approve (e.g. already approved or the initiator)"}},"id":{"type":"string","description":"The ID of the action"},"name":{"type":"string","description":"The name of the action"},"operator":{"type":"string","enum":["AND","OR"],"description":"The operator of the action"},"parameters":{"allOf":[{"$ref":"#/components/schemas/PolicyActionParameters"}],"description":"The parameters of the action"},"resolvers":{"type":"array","items":{"type":"object","description":"The resolvers of the action","properties":{"autoApproved":{"type":"boolean","description":"Whether the resolution was auto approved"},"date":{"type":"string","description":"The date of resolution","format":"date-time","title":"ISO Date String"},"resolutionAction":{"type":"string","enum":["approve","reject","skip","fail"],"description":"Action taken during resolution"},"resolutionMemo":{"type":"string","description":"Memo regarding the resolution"},"resolutionType":{"allOf":[{"$ref":"#/components/schemas/PendingApprovalStatePending"}],"description":"The type of resolution"},"user":{"type":"string","description":"The user who resolved the approval"},"videoApprover":{"type":"string","description":"The approver of the video resolution"},"videoException":{"type":"string","description":"Exception details for the video"},"videoLink":{"type":"string","description":"Link to the resolution video"}},"required":["resolutionType"]}},"status":{"allOf":[{"$ref":"#/components/schemas/EvaluatedPolicyActionStatus"}],"description":"The status of the action"}},"required":["id","name","parameters","status"],"description":"List of actions taken"}},"resolutionOrder":{"type":"array","items":{"type":"object","properties":{"actions":{"type":"array","items":{"type":"string","minLength":1}}},"required":["actions"],"description":"Order of resolution"}},"useLegacyPolicyEngine":{"type":"boolean","description":"Flag to use legacy policy engine"},"videoCallId":{"type":"string","description":"ID for the video call"},"lastUpdated":{"type":"string","description":"The last date the approval was processing","format":"date-time","title":"ISO Date String"},"freeze":{"type":"object","description":"The freeze state","properties":{"actions":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"state":{"type":"string","enum":["frozen","unFrozen"]},"time":{"type":"string","format":"date-time","title":"ISO Date String"},"userId":{"type":"string"},"username":{"type":"string"}}}},"state":{"type":"string","enum":["frozen","unFrozen"]}}},"memo":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","description":"The text of the memo"},"time":{"type":"string","description":"The time the memo was created","format":"date-time","title":"ISO Date String"},"userId":{"type":"string","description":"The user ID of the admin who created the memo"},"username":{"type":"string","description":"The username of the admin who created the memo"}},"required":["text","time","userId","username"],"description":"Admin memos attached to this pending approval"}},"associatedInquiries":{"type":"array","items":{"type":"object","properties":{"inquiryId":{"type":"string"},"inquiryStatus":{"$ref":"#/components/schemas/InquiryStatus"},"inquirySubType":{"$ref":"#/components/schemas/InquirySubType"},"inquiryType":{"$ref":"#/components/schemas/InquiryType"}},"required":["inquiryId","inquiryStatus","inquirySubType","inquiryType"],"description":"Associated inquiries"}}},"required":["id","creator","createDate","info","state","scope"],"description":"Pending approvals on the wallet"}},"allowBackupKeySigning":{"type":"boolean","example":false},"userKeySigningRequired":{"type":"boolean"},"coinSpecific":{"allOf":[{"$ref":"#/components/schemas/ExpressWalletCoinSpecific"}],"description":"Coin-specific data"},"clientFlags":{"type":"array","items":{"type":"string"}},"recoverable":{"type":"boolean"},"startDate":{"type":"string"},"hasLargeNumberOfAddresses":{"type":"boolean"},"config":{"allOf":[{"$ref":"#/components/schemas/ExpressWalletConfig"}],"description":"Custom configuration options for this wallet"}}},"ExpressWalletAdmin":{"title":"ExpressWalletAdmin","type":"object","additionalProperties":{},"description":"Admin data (wallet policies) (`ExpressWallet.admin` in platform.yaml)."},"ExpressWalletCoinSpecific":{"title":"ExpressWalletCoinSpecific","type":"object","additionalProperties":{},"description":"Coin-specific data (`ExpressWallet.coinSpecific` in platform.yaml)."},"ExpressWalletConfig":{"title":"ExpressWalletConfig","type":"object","additionalProperties":{},"description":"Custom configuration options for this wallet (`ExpressWallet.config` in platform.yaml)."},"ExpressWalletDirectResponse":{"title":"ExpressWalletDirectResponse","allOf":[{"type":"object","properties":{"id":{"type":"string","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"}},"required":["id"]},{"$ref":"#/components/schemas/ExpressWallet1"}],"description":"Generated wallet returned directly when includeKeychains is false."},"ExpressWalletFreeze":{"title":"ExpressWalletFreeze","type":"object","description":"Freeze state on an express wallet (`ExpressWallet.freeze` in platform.yaml).","properties":{"time":{"type":"string","description":"Time when the wallet becomes frozen"},"expires":{"type":"string","description":"Time when the wallet is unfrozen and allowed to spend"}}},"ExpressWalletRecoverTokenRequest":{"type":"object","properties":{"tokenContractAddress":{"type":"string","description":"Contract address of the unsupported token"},"recipient":{"type":"string","description":"Destination address recovered tokens should be sent to"},"walletPassphrase":{"type":"string","description":"Wallet passphrase"},"prv":{"type":"string","description":"User private key"},"broadcast":{"type":"boolean","description":"Whether to send to BitGo for cosigning and broadcast the transaction. If false, a half-siged transaction will be returned."}}},"ExpressWalletRecoverTokenResponse":{"type":"object","properties":{"halfSigned":{"type":"object","properties":{"contractSequenceId":{"type":"integer","example":1101},"expireTime":{"type":"integer","example":1550088020},"gasLimit":{"type":"integer","example":500000},"gasPrice":{"type":"integer","example":20000000000},"operationHash":{"type":"string","example":9.44792020725999e+76},"recipient":{"type":"object","properties":{"address":{"type":"string","example":4.7261295088313645e+47},"amount":{"type":"string","example":"2400"}}},"signature":{"type":"string","example":1.9519588812712557e+156},"tokenContractAddress":{"type":"string","example":3.8941146273864216e+46},"walletId":{"$ref":"#/components/schemas/Id"}}}}},"ExpressWalletSignTxRequest":{"type":"object","properties":{"keychain":{"type":"object","properties":{"encryptedPrv":{"type":"string","description":"Encrypted user private key"}},"description":"The user's keychain object with an `encryptedPrv` property. The `walletPassphrase` parameter is required when using `keychain`. Any request must include either `keychain` or `prv`.\n"},"prv":{"type":"string","description":"User private key\n\nNote: The request must include either `prv` or `keychain`\n","example":"xprv9s21ZrQH143K3xQwj4yx3fHjDieEdqFDweBvFxn28qGvfQGvweUWuUuDRpepDu6opq3jiWHU9h3yYTKk5vvu4ykRuGA4i4Kz1vmFMPLTsoC"},"txPrebuild":{"type":"object","properties":{"wallet":{"$ref":"#/components/schemas/Id"},"txHex":{"type":"string","description":"Serialized transaction hex"},"txBase64":{"type":"string","description":"Serialized transaction base64 (applies to XLM only). The request must include this or a txHex"},"txInfo":{"oneOf":[{"$ref":"#/components/schemas/UtxoTxInfo"},{"$ref":"#/components/schemas/XlmTxInfo"}]},"feeInfo":{"oneOf":[{"$ref":"#/components/schemas/UtxoFeeInfo"},{"$ref":"#/components/schemas/XlmFeeInfo"}]}},"description":"The transaction description object as created by 'Build Transaction'"},"coldDerivationSeed":{"type":"string","description":"A seed used to create a deterministic BIP-32 path which is then used to derive a private key. This is useful when one wants to create multiple BitGo cold wallets but only protect a single master private key. Using the seed one can create a child key for a specific wallet, for instance an Ethereum wallet could use the \"eth\" seed while an XRP wallet could use \"xrp\" as a seed. Both of these child keys would be derived from a single master key and so only the master key needs to be stored and protected.\n"},"walletPassphrase":{"type":"string","description":"Passphrase to decrypt the user keychain. `walletPassphrase` is a required parameter when the parameter `keychain` is provided.\n"},"recipients":{"type":"array","items":{"type":"object"},"description":"Array of objects describing the recipients. See buildTransaction for more detail. Required on ETH."}}},"FeeAddressTransferIntent":{"title":"Fee Address Transfer Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["feeAddressTransfer"]},"recipients":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"amount":{"$ref":"#/components/schemas/Amount"},"data":{"$ref":"#/components/schemas/optionalString"}},"required":["address","amount"]}}},"required":["intentType","recipients"]},{"$ref":"#/components/schemas/BaseIntent"}]},"FeeOption":{"title":"FeeOption","type":"object","properties":{"unit":{"type":"string","enum":["baseUnit","cpu","ram"]},"formula":{"type":"string","enum":["fixed","feeRate","perKB","custom","perVKB"]},"feeType":{"type":"string","enum":["base","max","tip"]},"gasLimit":{"$ref":"#/components/schemas/optionalNumber"},"gasPrice":{"$ref":"#/components/schemas/optionalNumber"}}},"FillNonceIntent":{"title":"FillNonceIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["fillNonce"],"description":"Must be \"fillNonce\"."},"nonce":{"oneOf":[{"type":"string"},{"type":"number"}],"description":"The nonce value to fill. The transaction will be a self-send that consumes this nonce."},"senderAddress":{"type":"string","description":"Sender address with the stuck nonce. Defaults to the wallet's base address."}},"required":["intentType","nonce"]},{"$ref":"#/components/schemas/BaseIntentWithoutNonce"}],"description":"Base codec for fill-nonce intents. Submits a zero-value self-send to consume\na specific nonce on EVM-compatible chains. Used to unblock transaction queues\nwhen 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"}]},"GeneralError":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"status":{"type":"integer"}}},"GoUnstakeIntent":{"title":"GoUnstakeIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["goUnstake"],"description":"Must be \"goUnstake\"."},"recipients":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"amount":{"$ref":"#/components/schemas/Amount"},"data":{"$ref":"#/components/schemas/optionalString"}},"required":["address","amount"],"description":"The recipients to send unstaked funds to."}}},"required":["intentType","recipients"]},{"$ref":"#/components/schemas/BaseIntent"}],"description":"Base intent for GO wallet unstaking operations. Chain-specific go-unstake\nintents (e.g. Sol, Sui) compose this and declare `goStakingRequestId`\naccording to their own requirements (optional for Sol, required for Sui)."},"HbarUpdateAccountIntent":{"title":"HBAR Update Account Intent","allOf":[{"type":"object","properties":{"stakedNodeId":{"$ref":"#/components/schemas/optionalNumber"},"stakedAccountId":{"$ref":"#/components/schemas/optionalString"},"declineStakingReward":{"$ref":"#/components/schemas/optionalBoolean"}}},{"$ref":"#/components/schemas/AccountBaseUpdateAccountIntent"}]},"HypeevmBridgeFundsIntent":{"title":"Hypeevm Bridge Funds Intent","allOf":[{"type":"object","properties":{"feeOptions":{"oneOf":[{"$ref":"#/components/schemas/FeeOption"},{"$ref":"#/components/schemas/EIP1559FeeOptions"}],"description":"Override gas estimation for the bridge transaction."}}},{"$ref":"#/components/schemas/BaseBridgeFundsIntent"}],"description":"Bridge funds between HypeEVM L2 and L1. Specify the amount and asset via\nthe amount field. Used exclusively on the HypeEVM chain."},"HypeevmEnableBridgingIntent":{"title":"Hypeevm Enable Bridging Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["enableBridging"]},"asset":{"type":"string"},"network":{"$ref":"#/components/schemas/optionalString"}},"required":["intentType","asset"]},{"$ref":"#/components/schemas/BaseIntent"}]},"HypeevmSpotTransferIntent":{"title":"Hypeevm Spot Transfer Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["spotTransfer"],"description":"Must be \"spotTransfer\"."}},"required":["intentType"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/BaseIntentWithRecipients"}],"description":"Transfer assets via the HypeEVM spot trading mechanism. Provide recipients\nwith their address and amount. Used exclusively on the HypeEVM chain."},"IcpPaymentIntent":{"title":"ICP Payment Intent","allOf":[{"type":"object","properties":{"memo":{"$ref":"#/components/schemas/optionalString"}}},{"$ref":"#/components/schemas/PaymentIntent"}]},"Id":{"title":"ID","type":"string","pattern":"^[0-9a-f]{32}$","example":"59cd72485007a239fb00282ed480da1f"},"IdArray":{"type":"array","items":{"$ref":"#/components/schemas/Id"},"example":["585951a5df8380e0e3063e9f","585951a5df8380e0e304a553"]},"InquiryStatus":{"title":"InquiryStatus","type":"string","enum":["completed","failed"]},"InquirySubType":{"title":"InquirySubType","type":"string","enum":["withdrawalLivenessCheck","managePolicyLivenessCheck"]},"InquiryType":{"title":"InquiryType","type":"string","enum":["livenessCheck"]},"IntegerOrIntegerString":{"oneOf":[{"type":"string","pattern":"^-?\\d+$","example":"2000000"},{"type":"integer"}]},"IntegerOrString":{"oneOf":[{"type":"string","example":"2000000"},{"type":"integer"}]},"IntegerString":{"type":"string","pattern":"^-?\\d+$","example":"2000000"},"IntentType":{"title":"IntentType","type":"string","enum":["payment","transferToken","consolidate","consolidateToken","fanout","stake","unstake","delegate","undelegate","switchValidator","claim","stakeClaimRewards","pledge","voteDelegation","vote","createAccount","updateAccount","addTrustLine","removeTrustLine","signMessage","signTypedStructuredData","enableToken","authorize","acceleration","fillNonce","walletRecovery","contractCall","deactivate","customTx","closeAssociatedTokenAccount","stakeWithCallData","unstakeWithCallData","switchValidatorWithCallData","feeAddressTransfer","tokenApproval","transferStake","validatorRegistration","increaseStake","decreaseStake","signalExit","withdrawStake","spotTransfer","bridgeFunds","enableBridging","goUnstake","createBtcDelegation","transferAccept","transferReject","transferAcknowledge","transferOfferWithdrawn","cosignDelegationProposal","cosignDelegationAccept","allocationRequest","cantonCommand","allocationAllocate","allocationOfferWithdrawn","allocationReject","cantonEndInvestorOnboardingOffer","cantonEndInvestorOnboardingAccept","cantonEndInvestorOnboardingReject","cantonParticipantOnboardingRequest","defi-deposit","defi-redeem","defi-approve","delegateResource","undelegateResource","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"]},"InvalidId":{"title":"InvalidId","allOf":[{"type":"object","properties":{"context":{"type":"object","properties":{"id":{"type":"string","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"}},"required":["id"]}},"required":["context"]},{"$ref":"#/components/schemas/PlatformErrorNoName"}]},"InvalidId1":{"allOf":[{"$ref":"#/components/schemas/PlatformErrorNoName3"},{"properties":{"context":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/Id"}}}},"required":["context"]}]},"InvalidWalletId":{"title":"Invalid wallet id","allOf":[{"$ref":"#/components/schemas/InvalidId1"},{"properties":{"name":{"type":"string","description":"Error code","enum":["InvalidWalletId"]}},"required":["name"]}]},"InvalidWalletId1":{"title":"Invalid Wallet ID","allOf":[{"type":"object","properties":{"name":{"type":"string","enum":["InvalidWalletId"]}},"required":["name"]},{"$ref":"#/components/schemas/InvalidId"}]},"IotaBuildOptions":{"title":"IOTA Build Options","allOf":[{"type":"object","properties":{"feeOptions":{"$ref":"#/components/schemas/IotaFeeOptions"},"lockedAmount":{"$ref":"#/components/schemas/optionalString"}},"required":["feeOptions","lockedAmount"]},{"$ref":"#/components/schemas/BaseIntent"}]},"IotaConsolidateIntent":{"title":"IOTA Consolidate Intent","allOf":[{"$ref":"#/components/schemas/AccountBaseConsolidateIntent"},{"$ref":"#/components/schemas/IotaBuildOptions"}]},"IotaFeeOptions":{"title":"IOTA Fee Options","type":"object","properties":{"gasLimit":{"type":"number"}},"required":["gasLimit"]},"IotaPaymentIntent":{"title":"IOTA Payment Intent","allOf":[{"type":"object","properties":{"unspents":{"$ref":"#/components/schemas/optionalStringArray"}},"required":["unspents"]},{"$ref":"#/components/schemas/PaymentIntent"},{"$ref":"#/components/schemas/IotaBuildOptions"}]},"KeyShareSource":{"type":"string","enum":["user","backup","bitgo"],"example":"user"},"Keys":{"type":"array","items":{"$ref":"#/components/schemas/Id"},"example":["585951a5df8380e0e304a553","585951a5df8380e0e30d645c","585951a5df8380e0e30b6147"]},"LightningCoin":{"title":"Coin","description":"A lightning coin name.","type":"string","example":"lnbtc"},"LightningOnchainRequest":{"title":"LightningOnchainRequest","type":"object","properties":{"recipients":{"type":"array","items":{"type":"object","properties":{"amountSat":{"type":"string","format":"number"},"address":{"type":"string"}},"required":["amountSat","address"]}},"satsPerVbyte":{"type":"string","format":"number"},"numBlocks":{"type":"number"}},"required":["recipients"]},"LightningPaymentFailureReason":{"type":"string","enum":["TIMEOUT","NO_ROUTE","ERROR","INCORRECT_PAYMENT_DETAILS","INSUFFICIENT_BALANCE","INSUFFICIENT_WALLET_BALANCE","EXCESS_WALLET_BALANCE","INVOICE_EXPIRED","CANCELED"],"description":"Reason for payment failure:\n* TIMEOUT - Payment timed out\n* NO_ROUTE - No route found\n* ERROR - Non-recoverable error\n* INCORRECT_PAYMENT_DETAILS - Payment details are incorrect\n* INSUFFICIENT_BALANCE - Insufficient channel outbound capacity\n* INSUFFICIENT_WALLET_BALANCE - Insufficient custodial lightning balance\n* EXCESS_WALLET_BALANCE - Excess custodial lightning balance\n* INVOICE_EXPIRED - Invoice has expired\n* CANCELED - Payment was canceled\n"},"LightningPaymentIntent":{"title":"Lightning Payment Intent","oneOf":[{"allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["payment"]}},"required":["intentType"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/LightningPaymentRequestWithSig"}]},{"allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["payment"]},"onchainRequest":{"$ref":"#/components/schemas/LightningOnchainRequest"}},"required":["intentType","onchainRequest"]},{"$ref":"#/components/schemas/BaseIntent"}]}]},"LightningPaymentRequest":{"title":"LightningPaymentRequest","type":"object","properties":{"invoice":{"type":"string"},"amountMsat":{"type":"string","format":"number"},"feeLimitMsat":{"type":"string","format":"number"},"feeLimitRatio":{"type":"number"}},"required":["invoice"]},"LightningPaymentRequestWithSig":{"title":"LightningPaymentRequestWithSig","type":"object","properties":{"signedRequest":{"$ref":"#/components/schemas/LightningPaymentRequest"},"signature":{"type":"string"}},"required":["signedRequest","signature"]},"LimitRuleCondition":{"title":"LimitRuleCondition","type":"object","properties":{"amountString":{"type":"string","example":"2000000","pattern":"^-?\\d+$"},"timeWindow":{"type":"number","description":"Time window in seconds for a velocity limit, between 1 and 30 days","minimum":0,"maximum":2678400},"groupTags":{"type":"array","items":{"type":"string"}},"startDate":{"type":"string","format":"date-time","title":"ISO Date String"}},"required":["amountString","timeWindow"]},"ListRuleEntryType":{"type":"string","enum":["address","walletId","enterpriseId","linkAccountId"],"description":"the kind of resource a list rule entry refers to"},"LivenessVerificationParameter":{"title":"LivenessVerificationParameter","type":"string","enum":["transactionInitiator","walletAdmins","videoIdUsers","enterpriseAdmin"]},"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"]},"Message1":{"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/SignatureShare"}},"state":{"$ref":"#/components/schemas/TransactionRequestState1"},"txHash":{"type":"string","description":"The signed hex of the message."},"updatedDate":{"description":"The date when the message state was updated.","type":"string","format":"date-time"}},"required":["messageRaw","state"]},"MmiSignMessageIntent":{"title":"MMI Sign Message Intent","allOf":[{"type":"object","properties":{"custodianMessageId":{"type":"string"}},"required":["custodianMessageId"]},{"$ref":"#/components/schemas/SignMessageIntent"}]},"MmiSignTransactionIntent":{"title":"MMI Sign Transaction Intent","allOf":[{"type":"object","properties":{"custodianTransactionId":{"type":"string"}},"required":["custodianTransactionId"]},{"$ref":"#/components/schemas/PaymentIntent"}]},"MultisigTypeVersion1":{"type":"string","enum":["MPCv2"]},"MutabilityConstraint1":{"type":"string","description":"Specifies whether a BitGo admin can change `lockDate`\n* `managed` - Not locked, but requires approval from a BitGo admin to change\n* `permanent` - `lockDate` cannot be changed\n","enum":["managed","permanent"]},"NearStakeIntent":{"title":"Near Stake Intent","allOf":[{"type":"object","properties":{"recipients":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"amount":{"$ref":"#/components/schemas/Amount"},"data":{"$ref":"#/components/schemas/optionalString"}},"required":["address","amount"]}}},"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"]}]},"NearUnstakeIntent":{"title":"Near Unstake Intent","allOf":[{"type":"object","properties":{"recipients":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"amount":{"$ref":"#/components/schemas/Amount"},"data":{"$ref":"#/components/schemas/optionalString"}},"required":["address","amount"]}}},"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"]}]},"NearWithdrawIntent":{"title":"Near Withdraw Intent","allOf":[{"type":"object","properties":{"recipients":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"amount":{"$ref":"#/components/schemas/Amount"},"data":{"$ref":"#/components/schemas/optionalString"}},"required":["address","amount"]}}},"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"]}]},"NumKeychains":{"description":"Number of keys provided.  This value must be 3 for hot wallets,\n1 for **ofc** wallets, and not specified for custodial wallets.\n","type":"integer","example":3},"NumSignatures":{"description":"Number of signatures required.  This value must be 2 for\nhot wallets, 1 for **ofc** wallets, and not specified for custodial\nwallets.\n","type":"integer","example":2},"NumberOrString":{"oneOf":[{"type":"string","pattern":"^-?[\\d\\.]+$","example":"1.5"},{"type":"number"}]},"Otp":{"type":"string","example":"123456","description":"Second factor authentication token"},"ParsedTx":{"title":"ParsedTx","type":"object","properties":{"inputs":{"type":"array","items":{"type":"object","properties":{"valueString":{"type":"string"},"_id":{"type":"string"},"address":{"type":"string"},"chain":{"type":"number"},"derivationIndex":{"type":"number"},"index":{"type":"number"},"value":{"oneOf":[{"type":"number"},{"type":"number"}]}},"required":["valueString"]}},"minerFee":{"oneOf":[{"type":"string"},{"type":"number"}]},"outputs":{"type":"array","items":{"type":"object","properties":{"valueString":{"type":"string"},"address":{"type":"string"},"change":{"type":"boolean"},"coinName":{"type":"string"},"data":{"type":"string"},"isPayGo":{"type":"boolean"},"value":{"oneOf":[{"type":"number"},{"type":"number"}]},"wallet":{"type":"string"},"walletV1":{"type":"string"},"baseAddress":{"type":"string"},"enterprise":{"type":"string"}},"required":["valueString"]}},"spendAmount":{"oneOf":[{"type":"string"},{"type":"number"}]},"gasPrice":{"type":"number"},"hasUnvalidatedData":{"type":"boolean"},"payGoFee":{"oneOf":[{"type":"string"},{"type":"number"}]},"spendAmounts":{"type":"array","items":{"type":"object","additionalProperties":{}}},"type":{"type":"string"}},"required":["inputs","minerFee","outputs","spendAmount"]},"PaymentIntent":{"title":"PaymentIntent","allOf":[{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/BaseIntentWithRecipients"},{"oneOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["payment"],"description":"Must be \"payment\"."}},"required":["intentType"]},{"type":"object","properties":{"intentType":{"type":"string","enum":["payment"],"description":"Must be \"payment\"."},"isTestTransaction":{"type":"boolean","description":"When true, marks this as a test transaction (not broadcast to the network)."}},"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"}]},"PendingApproval1":{"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/PendingApprovalTransactionRequestFull1"},{"$ref":"#/components/schemas/PendingApprovalUserChangeRequest"},{"$ref":"#/components/schemas/PendingApprovalPolicyRuleRequest"},{"$ref":"#/components/schemas/PendingApprovalUpdateApprovalsRequiredRequest"},{"$ref":"#/components/schemas/PendingApprovalEnterpriseModificationResponse1"},{"$ref":"#/components/schemas/PendingApprovalEnterpriseInviteRequest"}]},"state":{"$ref":"#/components/schemas/PendingApprovalState1"},"scope":{"description":"What kind of entity the Pending Approval is tied to","type":"string","enum":["enterprise","wallet"]},"userIds":{"description":"All the Users who should see this Pending Approval","type":"array","items":{"$ref":"#/components/schemas/Id"}},"approvalsRequired":{"$ref":"#/components/schemas/ApprovalsRequired"},"walletLabel":{"type":"string"},"resolvers":{"type":"array","items":{"type":"object","properties":{"user":{"type":"string"},"date":{"type":"string"},"resolutionType":{"type":"string","enum":["approved","awaitingSignature","pending","pendingBitGoAdminApproval","pendingCryptographicApproval","pendingCustodianApproval","pendingFinalApproval","pendingIdVerification","pendingVideoApproval","processing","rejected"]},"signatures":{"type":"array","items":{"type":"string"}},"videoApprover":{"type":"string"},"videoLink":{"type":"string"},"videoException":{"type":"string"}},"required":["user","date","resolutionType","signatures"]}},"addressLabels":{"type":"array","items":{"$ref":"#/components/schemas/PendingApprovalAddressLabel"}}}},"PendingApprovalAddressLabel":{"description":"Address labels of recipients in this Pending Approval","type":"object","properties":{"address":{"$ref":"#/components/schemas/AddressString3"},"label":{"$ref":"#/components/schemas/AddressLabel"},"walletLabel":{"$ref":"#/components/schemas/WalletLabel"}},"required":["address","label"]},"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"]}}},"PendingApprovalEnterpriseModificationResponse1":{"title":"Enterprise modification request","type":"object","properties":{"policyRuleRequest":{"type":"object","properties":{"action":{"type":"string"},"updateEnterpriseRequest":{"type":"object","properties":{"type":{"type":"string","enum":["updateEnterpriseRequest"]},"action":{"type":"string","enum":["add","remove"]},"permission":{"type":"string","enum":["admin"]},"userId":{"type":"string"},"email":{"allOf":[{"$ref":"#/components/schemas/Email"}],"description":"E-Mail address of newly added users"}}}}},"type":{"type":"string","enum":["policyRuleRequest"]}}},"PendingApprovalInfo":{"title":"PendingApprovalInfo","type":"object","properties":{"type":{"$ref":"#/components/schemas/PendingApprovalType"},"userChangeRequest":{"type":"object","properties":{"action":{"type":"string","description":"The action taken"},"permissions":{"type":"array","items":{"type":"string","description":"The permissions associated with the change"}},"userChanged":{"type":"string","description":"The user that changed"}}},"transactionRequest":{"type":"object","properties":{"buildParams":{"description":"The build parameters for the transaction"},"coinSpecific":{"description":"Coin-specific details"},"comment":{"nullable":true,"type":"string","description":"The comment for the transaction request"},"fee":{"description":"The fee for the transaction"},"isUnsigned":{"nullable":true,"type":"boolean","description":"Indicates if the transaction is unsigned"},"policyUniqueId":{"description":"The unique ID for the policy"},"recipients":{"type":"array","items":{"type":"object","properties":{"address":{"type":"string","description":"The address of the recipient","example":"2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZS","maxLength":250},"amount":{"description":"The amount to be transferred","example":"100000"},"data":{"type":"string","description":"Additional data for the transaction"}},"description":"The recipients of the transaction"}},"requestedAmount":{"description":"The requested amount"},"sourceWallet":{"description":"The source wallet"},"triggeredPolicy":{"description":"The triggered policy for the transaction"},"validTransaction":{"type":"string","description":"Indicates if the transaction is valid"},"validTransactionHash":{"type":"string","description":"The hash of the valid transaction"},"verificationItems":{"nullable":true,"type":"array","items":{"type":"string"},"description":"The verification items for the transaction"},"verificationRuleId":{"nullable":true,"type":"string","description":"The ID of the verification rule"},"videoApprovers":{"type":"array","items":{"description":"The video approvers for the transaction"}}}},"transactionRequestFull":{"type":"object","properties":{"intent":{"allOf":[{"$ref":"#/components/schemas/PaymentIntent"}],"description":"The intent of the transaction request"},"policyUniqueId":{"type":"string","description":"The unique ID for the policy"},"txRequest":{"oneOf":[{"$ref":"#/components/schemas/TransactionRequestLite"},{"$ref":"#/components/schemas/TransactionRequestFull"}],"description":"The transaction request details"},"txRequestId":{"allOf":[{"$ref":"#/components/schemas/TransactionRequestId"}],"description":"The ID of the transaction request"},"verificationItems":{"type":"array","items":{"type":"string","description":"The verification items for the transaction"}},"verificationRuleId":{"type":"string","description":"The ID of the verification rule"},"videoApprovers":{"type":"array","items":{"type":"string","description":"The video approvers for the transaction"}},"walletRebalanceEventId":{"type":"string","description":"The ID of the wallet rebalance event"}},"required":["txRequestId"]},"policyRuleRequest":{"type":"object","properties":{"action":{"type":"string","description":"The action of the policy rule request"},"update":{"type":"object","description":"The update details of the policy rule request (single-wallet)","properties":{"action":{"allOf":[{"$ref":"#/components/schemas/PolicyRuleAction"}],"description":"The action of the policy rule"},"coin":{"$ref":"#/components/schemas/CoinString"},"condition":{"allOf":[{"$ref":"#/components/schemas/PolicyRuleUpdateCondition"}],"description":"The condition of the policy rule"},"generatePolicy":{"type":"boolean","description":"Should generate new whitelist policy when generatePolicy is undefined *"},"id":{"type":"string","description":"The ID of the policy rule"},"lockDate":{"type":"string","format":"date","title":"Date String"},"type":{"allOf":[{"$ref":"#/components/schemas/ApiRuleType"}],"description":"The type of the API rule"},"walletId":{"type":"string","description":"Optional walletId field for multi-wallet updates"}}},"updates":{"type":"array","items":{"type":"object","properties":{"action":{"allOf":[{"$ref":"#/components/schemas/PolicyRuleAction"}],"description":"The action of the policy rule"},"coin":{"$ref":"#/components/schemas/CoinString"},"condition":{"allOf":[{"$ref":"#/components/schemas/PolicyRuleUpdateCondition"}],"description":"The condition of the policy rule"},"generatePolicy":{"type":"boolean","description":"Should generate new whitelist policy when generatePolicy is undefined *"},"id":{"type":"string","description":"The ID of the policy rule"},"lockDate":{"type":"string","format":"date","title":"Date String"},"type":{"allOf":[{"$ref":"#/components/schemas/ApiRuleType"}],"description":"The type of the API rule"},"walletId":{"type":"string","description":"Optional walletId field for multi-wallet updates"}},"description":"The update details for multi-wallet operations (bulk whitelist)"}}}},"updateApprovalsRequiredRequest":{"type":"object","properties":{"requestedApprovalsRequired":{"type":"number","description":"The number of requested approvals required"}}},"updateEnterpriseRequest":{"type":"object","properties":{"action":{"type":"string","enum":["add","update","remove"]},"email":{"type":"string","description":"The email of the user"},"isVideoIdUser":{"type":"boolean","description":"Indicates if the user is a video ID user"},"permissions":{"type":"string","enum":["admin","auditor"],"description":"The permissions associated with the update"},"userId":{"type":"string","description":"The ID of the user"}}},"updateOrganizationRequest":{"type":"object","properties":{"action":{"type":"string","enum":["add","update","remove"]},"email":{"type":"string","description":"The email of the user"},"inviterInfo":{"type":"object","description":"CaaS org add-invite only (`POST /api/v2/organization/{orgId}/user`); UMS org user changes use `genericRequest`.","properties":{"email":{"type":"string"},"fullName":{"type":"string"},"id":{"type":"string"}},"required":["email","fullName","id"]},"role":{"type":"string","enum":["serviceUser","admin","member","customer"],"description":"The role of the user in the organization","example":"admin"},"userId":{"type":"string","description":"The ID of the user"}}},"genericRequest":{"type":"object","properties":{"anchors":{"type":"array","items":{"type":"object","properties":{"anchorType":{"allOf":[{"$ref":"#/components/schemas/AnchorType"}],"description":"The type of the anchor"},"key":{"type":"string","description":"The key of the anchor"},"value":{"type":"string","description":"The value of the anchor"}},"required":["anchorType","key","value"],"description":"The anchors associated with the request"}},"changeType":{"allOf":[{"$ref":"#/components/schemas/ChangeType"}],"description":"The type of change requested"},"currentId":{"type":"string","description":"The current ID associated with the request"},"description":{"type":"string","description":"The description of the request"},"metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"description":"The metadata of the request"},"proposedId":{"type":"string","description":"The proposed ID associated with the request"},"resources":{"type":"array","items":{"type":"object","properties":{"currentId":{"type":"string"},"metadata":{"type":"object","additionalProperties":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]}},"proposedId":{"type":"string"}},"description":"The resources associated with the request"}},"resourceType":{"type":"string","description":"The resource type of the request"}}},"enterpriseInviteRequest":{"type":"object","properties":{"action":{"type":"string","enum":["add","update","remove"]},"email":{"type":"string","description":"The email of the user"},"enterpriseInfo":{"type":"object","description":"Additional info used by the client accepting the invite","properties":{"id":{"type":"string"},"invitedBy":{"$ref":"#/components/schemas/CaasOrganizationInviteInviterInfo"},"name":{"type":"string"},"requiredVerificationStep":{"type":"string"},"userKycState":{"type":"string"}},"required":["id","invitedBy","name","requiredVerificationStep"]},"isVideoIdUser":{"type":"boolean","description":"Indicates if the user is a video ID user"},"permissions":{"type":"string","enum":["admin","auditor"],"description":"The permissions associated with the invite"},"userId":{"type":"string","description":"The ID of the user"}}},"updateWalletSettingRequest":{"type":"object","properties":{"userKeySigningRequired":{"type":"object","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":[{"$ref":"#/components/schemas/PendingApprovalStatePending"},{"$ref":"#/components/schemas/PendingApprovalStateResolved"},{"$ref":"#/components/schemas/PendingApprovalStateTrust"},{"$ref":"#/components/schemas/PendingApprovalStateProtected"}]},"PendingApprovalState1":{"anyOf":[{"$ref":"#/components/schemas/PendingApprovalStatePending1"},{"$ref":"#/components/schemas/PendingApprovalStateResolved"}]},"PendingApprovalStatePending":{"title":"Pending","type":"string","enum":["pending","awaitingSignature","pendingFinalApproval","pendingCustodianApproval","pendingVideoApproval","pendingIdVerification","pendingLivenessVerification","pendingManualTrustReview","pendingManualSupportReview","pendingVideoApprovalFromSupport"]},"PendingApprovalStatePending1":{"title":"Pending","type":"string","enum":["pending","awaitingSignature","pendingFinalApproval","pendingCustodianApproval","pendingVideoApproval","pendingIdVerification"]},"PendingApprovalStateProtected":{"title":"Pending Protected","type":"string","enum":["pendingVideoApproval","pendingIdVerification","awaitingSignature","pendingCustodianApproval","pendingManualTrustReview"]},"PendingApprovalStateResolved":{"title":"Resolved","type":"string","enum":["approved","processing","rejected"]},"PendingApprovalStateTrust":{"title":"Pending Trust","type":"string","enum":["pendingVideoApproval","pendingIdVerification","awaitingSignature","pendingCustodianApproval","pendingManualTrustReview"]},"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/AddressString3"},"amount":{"$ref":"#/components/schemas/IntegerOrIntegerString"},"data":{"type":"string"}}}},"requestedAmount":{"$ref":"#/components/schemas/IntegerOrIntegerString"},"sourceWallet":{"$ref":"#/components/schemas/Id"},"triggeredPolicy":{"$ref":"#/components/schemas/Id"},"validTransaction":{"type":"string"},"validTransactionHash":{"type":"string"}}},"type":{"type":"string","enum":["transactionRequest"]}}},"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"]}}},"PendingApprovalTransactionRequestFull1":{"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/TransactionRequest"}},"required":["txRequestId"]},"type":{"type":"string","enum":["transactionRequestFull"]}}},"PendingApprovalType":{"title":"PendingApprovalType","type":"string","enum":["userChangeRequest","transactionRequest","transactionRequestFull","policyRuleRequest","updateApprovalsRequiredRequest","updateEnterpriseRequest","updateOrganizationRequest","genericRequest","enterpriseInviteRequest","updateWalletSettingRequest"]},"PendingApprovalUpdateApprovalsRequiredRequest":{"title":"Update approvals required request","type":"object","properties":{"type":{"type":"string","enum":["updateApprovalsRequiredRequest"]},"updateApprovalsRequiredRequest":{"type":"object","properties":{"requestedApprovalsRequired":{"type":"number"}}}}},"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"}}}}},"PingResponseType":{"title":"PingResponseType","type":"object","properties":{"status":{"type":"string"},"timestamp":{"type":"string"}},"required":["status","timestamp"]},"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"},"PlatformPendingApproval":{"title":"Pending approval","type":"object","properties":{"id":{"$ref":"#/components/schemas/Id"},"coin":{"$ref":"#/components/schemas/Coin"},"wallet":{"$ref":"#/components/schemas/Id"},"enterprise":{"$ref":"#/components/schemas/Id"},"organization":{"$ref":"#/components/schemas/Id"},"creator":{"$ref":"#/components/schemas/Id"},"createDate":{"type":"string","format":"date-time"},"info":{"anyOf":[{"$ref":"#/components/schemas/PendingApprovalTransactionRequest"},{"$ref":"#/components/schemas/PendingApprovalTransactionRequestFull"},{"$ref":"#/components/schemas/PendingApprovalUserChangeRequest"},{"$ref":"#/components/schemas/PendingApprovalPolicyRuleRequest"},{"$ref":"#/components/schemas/PendingApprovalUpdateApprovalsRequiredRequest"},{"$ref":"#/components/schemas/PendingApprovalEnterpriseModificationResponse"},{"$ref":"#/components/schemas/PendingApprovalEnterpriseInviteRequest"}]},"state":{"$ref":"#/components/schemas/PlatformPendingApprovalState"},"scope":{"description":"What kind of entity the Pending Approval is tied to","type":"string","enum":["enterprise","wallet"]},"userIds":{"description":"All the Users who should see this Pending Approval","type":"array","items":{"$ref":"#/components/schemas/Id"}},"approvalsRequired":{"$ref":"#/components/schemas/ApprovalsRequired"},"walletLabel":{"type":"string"},"resolvers":{"type":"array","items":{"type":"object","properties":{"user":{"type":"string"},"date":{"type":"string"},"resolutionType":{"type":"string","enum":["approved","awaitingSignature","pending","pendingBitGoAdminApproval","pendingCryptographicApproval","pendingCustodianApproval","pendingFinalApproval","pendingIdVerification","pendingVideoApproval","processing","rejected"]},"signatures":{"type":"array","items":{"type":"string"}},"videoApprover":{"type":"string"},"videoLink":{"type":"string"},"videoException":{"type":"string"}},"required":["user","date","resolutionType","signatures"]}},"addressLabels":{"type":"array","items":{"$ref":"#/components/schemas/PendingApprovalAddressLabel"}}}},"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"]},"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":["initialized","pendingApproval","pendingUserCommitment","pendingUserRShare","pendingUserGShare","readyToSend","pendingUserSignature","pendingDelivery","signed","delivered","canceled","rejected","failed"]},"PlatformTransactionState":{"type":"string","enum":["initialized","pendingSignature","eddsaPendingCommitment","eddsaPendingRShare","eddsaPendingGShare","readyToCombineShares","signed","held","delivered","invalidSignature","rejected","ecdsaMPCv2Round1","ecdsaMPCv2Round2","ecdsaMPCv2Round3"]},"Policy1":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/Id"},"date":{"type":"string","format":"date-time"},"label":{"type":"string"},"latest":{"type":"boolean"},"rules":{"type":"array","items":{"$ref":"#/components/schemas/PolicyRule"}},"version":{"type":"integer"}},"required":["id","latest","rules","version"]},"PolicyActionParameters":{"title":"PolicyActionParameters","type":"object","properties":{"minRequired":{"oneOf":[{"type":"string","minLength":1},{"type":"number"}]},"userIds":{"type":"array","items":{"type":"string","minLength":1}},"initiatorIsAllowedToApprove":{"type":"boolean"},"webhookURL":{"type":"string","minLength":1},"livenessCheckUser":{"$ref":"#/components/schemas/LivenessVerificationParameter"},"isFallback":{"type":"boolean"},"walletSubtype":{"$ref":"#/components/schemas/CustodialWalletSubType"},"userRoleIds":{"type":"array","items":{"type":"string","minLength":1}}}},"PolicyRule":{"type":"object","properties":{"id":{"type":"string"},"lockDate":{"type":"string","description":"The time at which this rule becomes immutable","format":"date-time"},"mutabilityConstraint":{"$ref":"#/components/schemas/MutabilityConstraint1"},"coin":{"$ref":"#/components/schemas/Coin"},"type":{"$ref":"#/components/schemas/PolicyRuleTriggers"},"condition":{"$ref":"#/components/schemas/PolicyRuleConditions"},"action":{"$ref":"#/components/schemas/PolicyRuleActions"}},"required":["id","lockDate","type","action"]},"PolicyRuleAction":{"title":"PolicyRuleAction","type":"object","properties":{"type":{"allOf":[{"$ref":"#/components/schemas/ActionType"}],"description":"The type of the action"},"userIds":{"type":"array","items":{"type":"string","description":"The user IDs associated with the action"}}},"required":["type"]},"PolicyRuleActions":{"description":"What happens when this rule is triggered","type":"object","properties":{"type":{"type":"string","enum":["deny","getApproval","getFinalApproval","getCustodianApproval","getIdVerification"]},"userIds":{"description":"For a final approver action, who can approve","type":"array","items":{"$ref":"#/components/schemas/Id"}}},"required":["type"]},"PolicyRuleConditions":{"title":"Type","description":"Parameters for the type","oneOf":[{"title":"Velocity limit","type":"object","properties":{"amountString":{"$ref":"#/components/schemas/IntegerString"},"timeWindow":{"type":"integer","minimum":0,"maximum":2678400,"description":"Time window in seconds for a velocity limit, between 1 and a month"}}},{"title":"USD velocity limit","type":"object","properties":{"amountString":{"$ref":"#/components/schemas/IntegerString"},"timeWindow":{"type":"integer","minimum":0,"maximum":2678400,"description":"Time window in seconds for a velocity limit, between 1 and 30 days"}}},{"title":"Whitelist","type":"object","properties":{"addresses":{"description":"Addresses allowed/restricted for a whitelist/blacklist","type":"array","items":{"oneOf":[{"type":"string"},{"$ref":"#/components/schemas/Id"}]}}}},{"title":"Advanced whitelist","type":"object","properties":{"entries":{"description":"Entries specifying which addresses/ wallets/ enterprises are on the whitelist","type":"array","items":{"$ref":"#/components/schemas/AdvancedListRuleEntry1"}}}},{"title":"Webhook","type":"object","properties":{"url":{"type":"string","description":"the url to query for the webhook"}}}]},"PolicyRuleTriggers":{"type":"string","enum":["advancedWhitelist","allTx","bitcoinAddressWhitelist","coinAddressWhitelist","coinAddressBlacklist","transactionLimit","velocityLimit","webhook"],"description":"What causes this rule to trigger"},"PolicyRuleUpdateCondition":{"title":"PolicyRuleUpdateCondition","oneOf":[{"$ref":"#/components/schemas/AddressListRuleUpdateCondition"},{"$ref":"#/components/schemas/AdvancedListRuleUpdateCondition"},{"$ref":"#/components/schemas/TxUsdThresholdRuleCondition"},{"$ref":"#/components/schemas/LimitRuleCondition"},{"$ref":"#/components/schemas/WebhookRuleCondition"}]},"PolyxBaseIntent":{"title":"POLYX Base Intent","allOf":[{"type":"object","properties":{"recipients":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"amount":{"$ref":"#/components/schemas/Amount"},"data":{"$ref":"#/components/schemas/optionalString"}},"required":["address","amount"]}}},"required":["recipients"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/SubstrateAccountBaseBuildOptions"}]},"PolyxCreateAccountIntent":{"title":"POLYX Create Account Intent","allOf":[{"type":"object","properties":{"memo":{"$ref":"#/components/schemas/optionalString"},"index":{"$ref":"#/components/schemas/optionalNumber"},"recipients":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"amount":{"$ref":"#/components/schemas/Amount"},"data":{"$ref":"#/components/schemas/optionalString"}},"required":["address","amount"]}}}},{"$ref":"#/components/schemas/AccountBaseCreateAccountIntent"},{"$ref":"#/components/schemas/SubstrateAccountBaseBuildOptions"}]},"PolyxPreApproveAssetIntent":{"title":"POLYX Pre-Approve Asset Intent","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"]}},"memo":{"$ref":"#/components/schemas/optionalString"}},"required":["intentType","enableTokens"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/SubstrateAccountBaseBuildOptions"}]},"PolyxStakeIntent":{"title":"POLYX Stake Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["stake"]},"addToStake":{"$ref":"#/components/schemas/optionalBoolean"},"validators":{"type":"array","items":{"type":"string"}}},"required":["intentType"]},{"$ref":"#/components/schemas/PolyxBaseIntent"}]},"PolyxSwitchValidatorIntent":{"title":"POLYX Switch Validator Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["switchValidator"]},"validators":{"type":"array","items":{"type":"string"}}},"required":["intentType","validators"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/SubstrateAccountBaseBuildOptions"}]},"PolyxUnstakeIntent":{"title":"POLYX Unstake Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["unstake"]},"stopStaking":{"$ref":"#/components/schemas/optionalBoolean"}},"required":["intentType"]},{"$ref":"#/components/schemas/PolyxBaseIntent"}]},"PolyxWithdrawIntent":{"title":"POLYX Withdraw Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["claim"]}},"required":["intentType"]},{"$ref":"#/components/schemas/PolyxBaseIntent"}]},"PsbtHex":{"type":"string","description":"BIP174 serialization of a PSBT","example":"70736274ff0100530100000001ccf3d1b853dcff06a939afef91d8b178d74028516bb831d77fcfd5b1ce6715f00000000000ffffffff01f0b9f5050000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf24387000000004f010488b21e0000000000000000003a922e29f0c8eb0db2a60484cbdcb631f6b107c9caae3ffdcf3e7d2ec1f6bcd00312148715f361dab685a669d42431e5d6d3f973404dab9c9fd1b950b279ad763404cc18ae084f010488b21e0000000000000000006d1d656d3ddd91c194c04565a3603702a21016ced14a265f38982d6275e67b6403d3bac2313a7c6b21cbb11b14b0d10341f922c0a403a8bd8c87f0dc820f35af6e04f65cd8694f010488b21e000000000000000000cb04fd63ab34d90fe6466b880e2a02ccf8a863374312991af8911b1aaab443340336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b62909504f2ef0389000100c00100000000010101010101010101010101010101010101010101010101010101010101010101010000000000ffffffff0100e1f5050000000017a914d909474404c124a3d04c3fbff61faa49cf43c58b87024730440220360d495738071ed6930084713724262ef55d710e06d85f90b56727ab83c91b5702200ae452a812717ef0ac8866989ffc963d88c14f9694fa57ef046dd699bea1d5da01210247496797efe8b56780cd9bee19ac3d916624829cacd3f1236fa608000193e54d0000000001012000e1f5050000000017a914d909474404c124a3d04c3fbff61faa49cf43c58b87010469522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae220602cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b420914f2ef038900000000000000000000000000000000220602d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab14cc18ae080000000000000000000000000000000022060344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f114f65cd8690000000000000000000000000000000000010069522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae2202035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf214cc18ae0800000000000000000100000000000000220203e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b14f65cd86900000000000000000100000000000000220203f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f14f2ef03890000000000000000010000000000000000"},"Pub":{"type":"string","description":"public part of a key pair","example":"xpub661MyMwAqRbcGMVhmc7wqQRYMtcX9LAvSj1pjB213y5TsrkV2uuzJjWnjBrT1FUeNWGPjaVm5p7o6jdNcQJrV1cy3a1R8NQ9m7LuYKA8RpH"},"RecipientEntry":{"title":"RecipientEntry","type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"amount":{"$ref":"#/components/schemas/Amount"},"data":{"$ref":"#/components/schemas/optionalString"}},"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"]},"RecipientTokenData":{"type":"object","properties":{"tokenName":{"type":"string","description":"Name of token, as represented in BitGoJS Statics package."},"tokenContractAddress":{"type":"string","description":"Address of token or smart contract. Required if token is unsupported by BitGo. Not required if passing \"tokenName\"."},"decimalPlaces":{"type":"integer","description":"Relevant for fungible tokens. Not required if passing \"tokenName\". Defaults to smallest base unit."},"tokenType":{"type":"string","description":"Token standard","enum":["ERC20","ERC721","ERC1155"]},"tokenId":{"type":"string","description":"ID of token to use when constructing transaction or calldata. Required for NFTs."},"tokenQuantity":{"type":"string","description":"Quantity of token to use when constructing calldata (amount to transfer)."}}},"STXStakingOptions":{"title":"STX","type":"object","properties":{"contractName":{"type":"string","description":"The STX staking contract name. Use pox-3.","default":"pox-3"},"functionName":{"type":"string","description":"STX staking contract function.","oneOf":[{"type":"string","description":"Function name used to delegate funds.","default":"delegate-stx"},{"type":"string","description":"Function name used to revoke delegated funds.","default":"revoke-delegate-stx"}]},"functionArgs":{"type":"array","description":"The 4 Objects are required and in the order expressed.","items":{"anyOf":[{"title":"uint128","type":"object","properties":{"type":{"type":"string","default":"uint128","description":"Type of argument. Use the default."},"val":{"type":"string","description":"Amount in micro-stx"}}},{"title":"principal","type":"object","properties":{"type":{"type":"string","default":"principal","description":"Type of argument. Use the default."},"val":{"type":"string","description":"Address of the validator"}}},{"title":"optional","type":"object","properties":{"type":{"type":"string","default":"optional","description":"Type of argument. Use the default."},"val":{"type":"string","description":"The number of cycles that the delegation will last. This is a mandatory field that must be greater than 1."}}},{"title":"optional","type":"object","properties":{"type":{"type":"string","default":"optional","description":"Type of argument. Use the default."},"val":{"type":"object","properties":{"type":{"type":"string","default":"tuple","description":"Type of argument. Use the default."},"val":{"type":"array","description":"The 2 objects are required and in the order expressed.","items":{"anyOf":[{"title":"hash","type":"object","properties":{"key":{"type":"string","default":"hashbytes","description":"Type of argument. Use the default."},"type":{"type":"string","default":"buffer","description":"Type of argument. Use the default."},"val":{"type":"string","description":"The BTC Address hash."}}},{"title":"version","type":"object","properties":{"key":{"type":"string","default":"version","description":"Type of argument. Use the default."},"type":{"type":"string","default":"buffer","description":"Type of argument. Use the default."},"val":{"type":"string","description":"The BTC Address version."}}}]}}}}}}]}}}},"ShareType":{"title":"ShareType","type":"string","enum":["encryptedSignerShare","encryptedRShare"]},"ShareWalletResponse":{"type":"object","description":"Wallet share object","properties":{"id":{"allOf":[{"$ref":"#/components/schemas/Id"}],"description":"Wallet share id"},"coin":{"allOf":[{"$ref":"#/components/schemas/Coin"}],"description":"Coin of the wallet"},"wallet":{"allOf":[{"$ref":"#/components/schemas/Id"}],"description":"Wallet id"},"walletLabel":{"$ref":"#/components/schemas/WalletLabel"},"fromUser":{"allOf":[{"$ref":"#/components/schemas/Id"}],"description":"Id of the user sharing the wallet"},"toUser":{"allOf":[{"$ref":"#/components/schemas/Id"}],"description":"Id of the user receiving the share"},"permissions":{"type":"string","allOf":[{"$ref":"#/components/schemas/WalletPermission"}]},"message":{"type":"string","description":"Message for the user receiving the share"},"state":{"type":"string","allOf":[{"$ref":"#/components/schemas/WalletShareState1"}],"description":"State of the share"},"enterprise":{"allOf":[{"$ref":"#/components/schemas/Id"}],"description":"If the wallet belongs to an enterprise, the id of that enterprise"},"pendingApprovalId":{"allOf":[{"$ref":"#/components/schemas/Id"}],"description":"If the share generated a pending approval, the id of that pending approval"},"keychain":{"$ref":"#/components/schemas/WalletShareKeychain"}}},"SignMessageIntent":{"title":"SignMessageIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["signMessage"]},"messageRaw":{"type":"string","description":"A plain text message","example":"for EVM: test message"},"messageEncoded":{"allOf":[{"$ref":"#/components/schemas/optionalString"}],"description":"An encoded string","example":"for EVM: \\x19Ethereum Signed Message:\\n12test message"},"messageStandardType":{"allOf":[{"$ref":"#/components/schemas/optionalString"}],"description":"The type of message standard, e.g. 'EIP191', 'EIP712', 'CIP8' etc.","example":"for EVM: EIP191"},"signerAddress":{"allOf":[{"$ref":"#/components/schemas/optionalString"}],"description":"The address of the signer, could be the root address or a receive address of the wallet"}},"required":["intentType","messageRaw","messageEncoded","messageStandardType","signerAddress"]},{"$ref":"#/components/schemas/BaseIntent"}]},"SignatureShare":{"type":"object","properties":{"from":{"allOf":[{"$ref":"#/components/schemas/KeyShareSource"}],"description":"The source of the signature share."},"to":{"allOf":[{"$ref":"#/components/schemas/KeyShareSource"}],"description":"The recipient of the signature share."},"share":{"type":"string","description":"The signature share."}},"required":["from","to","share"]},"SignatureShareType":{"title":"SignatureShareType","type":"string","enum":["user","backup","bitgo"]},"SignatureShareWithoutVssProof":{"title":"SignatureShareWithoutVssProof","type":"object","properties":{"from":{"allOf":[{"$ref":"#/components/schemas/SignatureShareType"}],"description":"The source of the signature share."},"to":{"allOf":[{"$ref":"#/components/schemas/SignatureShareType"}],"description":"The recipient of the signature share."},"share":{"type":"string","description":"The signature share"}},"required":["from","to","share"]},"SimpleCreateResponse":{"title":"SimpleCreateResponse","type":"object","properties":{"wallet":{"type":"object","additionalProperties":{},"description":"Newly created wallet model object with balance, label, keychains array, and other wallet properties"},"userKeychain":{"type":"object","additionalProperties":{},"description":"User keychain with xpub and encryptedXprv (encrypted with passphrase, stored on BitGo)"},"backupKeychain":{"type":"object","additionalProperties":{},"description":"Backup keychain with xpub (and xprv if created locally - must be backed up immediately)"},"bitgoKeychain":{"type":"object","additionalProperties":{},"description":"BitGo-managed keychain with xpub (BitGo holds this key)"},"warning":{"type":"string","description":"Warning message present only when backup keychain was created locally (has xprv) - reminds you to back it up"}},"required":["wallet","userKeychain","backupKeychain","bitgoKeychain"]},"SolAuthorizeIntent":{"title":"SOL Authorize Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["authorize"],"description":"Must be \"authorize\"."},"transactionMessage":{"type":"string","description":"The pre-signed serialized transaction message, validated by the platform against the provided address fields."},"stakeAccount":{"type":"string","description":"The on-chain stake account whose authority is being transferred."},"oldWithdrawPublicKey":{"type":"string","description":"The current withdrawal authority public key."},"newWithdrawPublicKey":{"type":"string","description":"The new withdrawal authority public key."},"lockupPublicKey":{"type":"string","description":"The lockup authority public key."},"nonceAccount":{"type":"string","description":"The durable nonce account used for this transaction."},"nonceAuthority":{"type":"string","description":"The authority of the nonce account."},"blockhash":{"type":"string","description":"The recent blockhash used in the transaction message."}},"required":["intentType","transactionMessage","stakeAccount","oldWithdrawPublicKey","newWithdrawPublicKey","lockupPublicKey","nonceAccount","nonceAuthority","blockhash"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/SolBuildOptions"}],"description":"Transfer the withdrawal and lockup authority of a SOL stake account to new public keys on Solana. The transactionMessage must be a pre-signed serialized transaction validated by the platform against all provided address fields. Spending policy is not evaluated for this intent. Requires the solStakingAuthorize enterprise feature flag."},"SolBuildOptions":{"title":"SolBuildOptions","allOf":[{"type":"object","properties":{"memo":{"allOf":[{"$ref":"#/components/schemas/optionalString"}],"description":"Memo string for the transaction. The key must be present; pass an empty string (or omit the value) if unused."}},"required":["memo"]},{"$ref":"#/components/schemas/AccountBaseBuildOptions"}],"description":"Solana build fragment intersected by **every** Sol intent codec that composes\n`SolBuildOptions` (e.g. payment, stake, consolidate, close-ATA, etc.).\n\n**`memo` is part of the legacy wire contract:** `t.type({ memo: optionalString })`\nkeeps the **`memo` key structurally present** for `.is()` / `decode` (value may\nbe a string or `undefined` per `optionalString`). Payloads that omit `memo`\nentirely are not accepted by this codec.\n\nUpstream services (for example wallet-platform when persisting\n`closeAssociatedTokenAccount` intents) may normalize a missing `memo` to\n`\"\"` before validation so stored objects match this shape. Other Sol flows\nshould 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":[{"type":"object","properties":{"stakingAddress":{"type":"string","description":"The on-chain stake account address to withdraw from."}},"required":["stakingAddress"]},{"$ref":"#/components/schemas/WithdrawIntent"},{"$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"}]},"SolCloseAssociatedTokenAccountIntent":{"title":"SOL Close Associated Token Account Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["closeAssociatedTokenAccount"],"description":"Must be \"closeAssociatedTokenAccount\"."},"recipients":{"allOf":[{"$ref":"#/components/schemas/solCloseAssociatedTokenAccountRecipients"}],"description":"One or more zero-balance ATAs to close. Each entry must have amount.value === \"0\", must not carry tokenName or tokenData, and all entries must share the same on-chain owner. Maximum 27 ATAs per transaction."}},"required":["intentType","recipients"]},{"$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":[{"$ref":"#/components/schemas/AccountBaseConsolidateIntent"}],"description":"Sweep native SOL and SPL token balances from a receive address into the wallet's root address on Solana. The platform automatically calculates transferable amounts, reserving rent-exempt minimums and transaction fees."},"SolCreateAssociatedTokenAccountIntent":{"title":"SOL Create Associated Token Account Intent","allOf":[{"$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. 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":[{"type":"object","properties":{"intentType":{"type":"string","enum":["customTx"],"description":"Must be \"customTx\". For legacy (non-versioned) transactions only; use SolVersionedCustomTxIntent for versioned transactions."},"solInstructions":{"type":"array","items":{"type":"object","properties":{"programId":{"type":"string","description":"The program ID to invoke."},"keys":{"type":"array","items":{"type":"object","properties":{"pubkey":{"type":"string","description":"The account public key."},"isSigner":{"type":"boolean","description":"Whether this account is a signer."},"isWritable":{"type":"boolean","description":"Whether this account is writable."}},"required":["pubkey","isSigner","isWritable"],"description":"Account keys referenced by this instruction."}},"data":{"type":"string","description":"Instruction data encoded as base58 or hex."}},"required":["programId","keys","data"],"description":"Array of raw Solana program instructions to include in the transaction. Use for legacy (non-versioned) transactions only."}}},"required":["intentType","solInstructions"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/SolBuildOptions"}],"description":"Submit a custom Solana transaction using raw legacy program instructions. Use this intent for legacy (non-versioned) transactions; for versioned transactions (address lookup tables, v0 messages) use the customTx intent with solVersionedTransactionData instead. Wallets without the enableSolCustomTx flag require a second admin approval before the transaction is processed."},"SolDeactivateIntent":{"title":"SOL Deactivate Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["deactivate"],"description":"Must be \"deactivate\"."},"stakingAddresses":{"allOf":[{"$ref":"#/components/schemas/optionalStringArray"}],"description":"Batch of stake account addresses to deactivate. Provide either this or stakingAddress."},"stakingAddress":{"allOf":[{"$ref":"#/components/schemas/optionalString"}],"description":"A single stake account address to deactivate. Provide either this or stakingAddresses."}},"required":["intentType"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/SolBuildOptions"}],"description":"Deactivate one or more SOL stake accounts on Solana to begin the cooldown period before funds can be claimed. No value is transferred. Provide either stakingAddress (single account) or stakingAddresses (batch). After cooldown completes, use the claim intent to withdraw. Spending policy is not evaluated for this intent. Requires the solStakingAuthorize enterprise feature flag."},"SolDelegateIntent":{"title":"SOL Delegate Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["delegate"],"description":"Must be \"delegate\"."},"validatorAddress":{"type":"string","description":"The validator vote account address to delegate to."},"stakingAddresses":{"allOf":[{"$ref":"#/components/schemas/optionalStringArray"}],"description":"Batch of stake account addresses to delegate. Provide either this or stakingAddress."},"stakingAddress":{"allOf":[{"$ref":"#/components/schemas/optionalString"}],"description":"A single stake account address to delegate. Provide either this or stakingAddresses."}},"required":["intentType","validatorAddress"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/SolBuildOptions"}],"description":"Delegate one or more deactivated SOL stake accounts to a validator on Solana. No value is transferred; this intent re-activates an existing stake account under a new or the same validator. Provide either stakingAddress (single account) or stakingAddresses (batch). Spending policy is not evaluated for this intent. Requires the solStakingAuthorize enterprise feature flag."},"SolGoUnstakeIntent":{"title":"SOL Go Unstake Intent","allOf":[{"type":"object","properties":{"goStakingRequestId":{"allOf":[{"$ref":"#/components/schemas/optionalString"}],"description":"Internal coordination identifier for the GO staking request. Accepted by the schema but only processed on admin/internal routes — external API consumers should omit this field."}}},{"$ref":"#/components/schemas/GoUnstakeIntent"},{"$ref":"#/components/schemas/SolBuildOptions"}],"description":"Unstake SOL via the GO wallet program on Solana and transfer the proceeds to the specified recipients. This intent uses the same transfer path as the payment intent."},"SolPaymentIntent":{"title":"SOL Payment Intent","allOf":[{"$ref":"#/components/schemas/PaymentIntent"},{"$ref":"#/components/schemas/SolBuildOptions"}],"description":"Transfer native SOL or SPL tokens to one or more recipients on Solana. For token transfers, the recipient amount symbol must use the \"sol:tokenName\" format (e.g. \"sol:usdc\"). Native SOL recipients must not be Associated Token Account (ATA) addresses."},"SolStakeIntent":{"title":"SOL Stake Intent","allOf":[{"type":"object","properties":{"validatorAddress":{"type":"string","description":"The validator vote account address to stake SOL with."},"isMarinade":{"type":"boolean","deprecated":true},"stakingType":{"type":"string","enum":["NATIVE","MARINADE","JITO"],"description":"The staking provider type. Accepted values: \"NATIVE\", \"MARINADE\", \"JITO\". Supersedes the deprecated isMarinade field."}},"required":["validatorAddress"]},{"$ref":"#/components/schemas/StakeIntent"},{"$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"}]},"SolUnstakeIntent":{"title":"SOL Unstake Intent","allOf":[{"type":"object","properties":{"stakingAddress":{"type":"string","description":"The stake account address to deactivate."},"amount":{"type":"object","description":"For partial unstake: the amount to remove from the stake account. Must be provided together with remainingStakingAmount.","properties":{"symbol":{"type":"string"},"value":{"type":"string"}},"required":["symbol","value"]},"remainingStakingAmount":{"type":"object","description":"For partial unstake: the amount to keep in the existing stake account after the split. Must be provided together with amount.","properties":{"symbol":{"type":"string"},"value":{"type":"string"}},"required":["symbol","value"]},"isMarinade":{"type":"boolean","deprecated":true},"stakingType":{"type":"string","enum":["NATIVE","MARINADE","JITO"],"description":"The staking provider type. Accepted values: \"NATIVE\", \"MARINADE\", \"JITO\". Supersedes the deprecated isMarinade field."},"recipients":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"amount":{"$ref":"#/components/schemas/Amount"},"data":{"$ref":"#/components/schemas/optionalString"}},"required":["address","amount"],"description":"Required for Marinade unstaking: the recipient address to receive the unstaked SOL."}}},"required":["stakingAddress"]},{"$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"}]},"SolVersionedCustomTxIntent":{"title":"SOL Versioned Custom Transaction Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["customTx"],"description":"Must be \"customTx\". Presence of solVersionedTransactionData distinguishes this from legacy SolCustomTxIntent at runtime."},"solVersionedTransactionData":{"type":"object","description":"Versioned transaction data in Solana v0 message format. Presence of this field indicates a versioned transaction.","properties":{"versionedInstructions":{"type":"array","items":{"type":"object","properties":{"programIdIndex":{"type":"number","description":"Index into the staticAccountKeys array identifying the program to invoke."},"accountKeyIndexes":{"type":"array","items":{"type":"number","description":"Indexes into the combined account keys (static + lookup) for this instruction."}},"data":{"type":"string","description":"Instruction data encoded as base58 or hex."}},"required":["programIdIndex","accountKeyIndexes","data"],"description":"The program instructions for this versioned transaction."}},"addressLookupTables":{"type":"array","items":{"type":"object","properties":{"accountKey":{"type":"string","description":"The on-chain address of the lookup table account."},"writableIndexes":{"type":"array","items":{"type":"number","description":"Indexes of writable accounts in the lookup table."}},"readonlyIndexes":{"type":"array","items":{"type":"number","description":"Indexes of read-only accounts in the lookup table."}}},"required":["accountKey","writableIndexes","readonlyIndexes"],"description":"Address lookup tables to extend the number of accounts beyond the static limit. Required when using account lookup tables in a v0 transaction."}},"staticAccountKeys":{"type":"array","items":{"type":"string","description":"The static account keys referenced by this transaction."}},"messageHeader":{"type":"object","description":"Solana message header specifying the number of required signers and read-only accounts.","properties":{"numRequiredSignatures":{"type":"number","description":"Number of signatures required for this transaction."},"numReadonlySignedAccounts":{"type":"number","description":"Number of read-only accounts that require signatures."},"numReadonlyUnsignedAccounts":{"type":"number","description":"Number of read-only accounts that do not require signatures."}},"required":["numRequiredSignatures","numReadonlySignedAccounts","numReadonlyUnsignedAccounts"]},"recentBlockhash":{"type":"string","description":"Optional recent blockhash; when provided the platform uses it instead of fetching a durable nonce."}},"required":["versionedInstructions","addressLookupTables","staticAccountKeys","messageHeader"]}},"required":["intentType","solVersionedTransactionData"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/SolBuildOptions"}],"description":"Submit a custom Solana versioned (v0) transaction with optional address lookup tables. Use this intent for versioned transactions; for legacy instruction-based transactions use the customTx intent with solInstructions instead. When recentBlockhash is provided, the platform uses it directly without fetching a durable nonce. Wallets without the enableSolCustomTx flag require a second admin approval before the transaction is processed."},"StakeClaimRewardsIntent":{"title":"StakeClaimRewardsIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["stakeClaimRewards"],"description":"Must be \"stakeClaimRewards\"."}},"required":["intentType"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}],"description":"Claim accumulated staking rewards on EVM-compatible chains. Specify the\namount of rewards to claim. Requires a staking request ID from the BitGo\nstaking service."},"StakeIntent":{"title":"StakeIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["stake"],"description":"Must be \"stake\"."}},"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"]}]},"StakeSwitchValidatorIntent":{"title":"StakeSwitchValidatorIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["switchValidator"]},"validatorAddress":{"type":"string","description":"Bech32 source validator address to redelegate from (e.g. cosmosvaloper1...)."},"destValidatorAddress":{"type":"string","description":"Bech32 destination validator address to redelegate to (e.g. cosmosvaloper1...)."}},"required":["intentType","validatorAddress","destValidatorAddress"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}]},"StakeWithCallDataIntent":{"title":"Stake With CallData Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["stakeWithCallData"],"description":"Must be \"stakeWithCallData\"."}},"required":["intentType"]},{"$ref":"#/components/schemas/BaseStakeIntentWithCalldata"}],"description":"Submit an EVM staking transaction using pre-computed calldata provided by\nthe BitGo staking service. Used when the staking protocol requires custom\ncalldata that cannot be derived from standard deposit parameters."},"StakingError":{"title":"Staking Error","type":"object","properties":{"error":{"type":"string"},"errorName":{"type":"string"},"reqId":{"type":"string"},"context":{"type":"object"}}},"StakingRequestSource":{"title":"StakingRequestSource","type":"string","enum":["MANUAL","AUTO_STAKE","EXTERNAL"]},"SubstrateAccountBaseBuildOptions":{"title":"SubstrateAccountBaseBuildOptions","allOf":[{"type":"object","properties":{"fee":{"type":"object","properties":{"amount":{"oneOf":[{"type":"string"},{"type":"number"}]},"formula":{"type":"string","enum":["fixed","feeRate","perKB","custom"]},"type":{"type":"string","enum":["base","max","tip"]},"unit":{"type":"string","enum":["baseUnit","cpu","ram"]}},"required":["amount"]}}},{"$ref":"#/components/schemas/AccountBaseBuildOptions"}]},"SubstrateConsolidateIntent":{"title":"Substrate Consolidate Intent","allOf":[{"$ref":"#/components/schemas/AccountBaseConsolidateIntent"}]},"SubstratePaymentIntent":{"title":"Substrate Payment Intent","allOf":[{"type":"object","properties":{"memo":{"$ref":"#/components/schemas/optionalString"}}},{"$ref":"#/components/schemas/PaymentIntent"},{"$ref":"#/components/schemas/SubstrateAccountBaseBuildOptions"}]},"SuiBuildOptions":{"title":"SuiBuildOptions","allOf":[{"type":"object","properties":{"feeOptions":{"$ref":"#/components/schemas/SuiFeeOptions"},"lockedAmount":{"$ref":"#/components/schemas/optionalString"}},"required":["feeOptions","lockedAmount"]},{"$ref":"#/components/schemas/BaseIntent"}]},"SuiConsolidateIntent":{"title":"SUI Consolidate Intent","allOf":[{"$ref":"#/components/schemas/AccountBaseConsolidateIntent"},{"$ref":"#/components/schemas/SuiBuildOptions"}]},"SuiCustomTxIntent":{"title":"SUI Custom Tx Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["customTx"]},"rawTx":{"type":"string"}},"required":["intentType","rawTx"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/SuiBuildOptions"}]},"SuiFeeOptions":{"title":"SuiFeeOptions","type":"object","properties":{"gasLimit":{"type":"number"}},"required":["gasLimit"]},"SuiGoUnstakeIntent":{"title":"SuiGoUnstakeIntent","allOf":[{"$ref":"#/components/schemas/GoUnstakeIntent"},{"$ref":"#/components/schemas/BaseGoStakeIntent"},{"$ref":"#/components/schemas/SuiBuildOptions"}]},"SuiPaymentIntent":{"title":"SUI Payment Intent","allOf":[{"$ref":"#/components/schemas/PaymentIntent"},{"$ref":"#/components/schemas/SuiBuildOptions"}]},"SuiStakingIntent":{"title":"SUI Stake Intent","allOf":[{"type":"object","properties":{"validatorAddress":{"$ref":"#/components/schemas/optionalString"},"amount":{"type":"object","properties":{"symbol":{"type":"string"},"value":{"type":"string"}},"required":["symbol","value"]},"recipients":{"type":"array","items":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/Address"},"amount":{"$ref":"#/components/schemas/Amount"},"data":{"$ref":"#/components/schemas/optionalString"}},"required":["address","amount"]}}}},{"$ref":"#/components/schemas/StakeIntent"}]},"SuiUnstakingIntent":{"title":"SUI Unstaking Intent","allOf":[{"type":"object","properties":{"stakedSuiObjectId":{"type":"string"},"amount":{"type":"object","properties":{"symbol":{"type":"string"},"value":{"type":"string"}},"required":["symbol","value"]}},"required":["stakedSuiObjectId"]},{"$ref":"#/components/schemas/WithdrawIntent"}]},"SupportedTokenRecipientEntryItem":{"title":"SupportedTokenRecipientEntryItem","type":"object","properties":{"tokenName":{"type":"string"}},"required":["tokenName"]},"SwitchValidatorWithCallDataIntent":{"title":"Switch Validator With CallData Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["switchValidatorWithCallData"],"description":"Must be \"switchValidatorWithCallData\"."}},"required":["intentType"]},{"$ref":"#/components/schemas/BaseStakeIntentWithCalldata"}],"description":"Switch validators on EVM-compatible chains using pre-computed calldata.\nSupply the staking service's stakingRequestId and the pre-computed calldata\nfor the validator switch."},"TaoStakeIntent":{"title":"Tao Stake Intent","allOf":[{"type":"object","properties":{"amountStaked":{"type":"string"}},"required":["amountStaked"]},{"$ref":"#/components/schemas/StakeIntent"},{"$ref":"#/components/schemas/TaoStakingBaseIntent"}]},"TaoStakingBaseIntent":{"title":"Tao Staking Base Intent","allOf":[{"type":"object","properties":{"hotkey":{"type":"string"},"netuid":{"type":"string"}},"required":["hotkey","netuid"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/SubstrateAccountBaseBuildOptions"}]},"TaoSwitchValidatorIntent":{"title":"Tao Switch Validator Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["switchValidator"]},"originHotkey":{"type":"string"},"destinationHotkey":{"type":"string"},"originNetuid":{"type":"string"},"destinationNetuid":{"type":"string"},"alphaAmount":{"type":"string"}},"required":["intentType","originHotkey","destinationHotkey","originNetuid","destinationNetuid","alphaAmount"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/SubstrateAccountBaseBuildOptions"}]},"TaoTransferStakeIntent":{"title":"Tao Transfer Stake Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["transferStake"]},"originColdkey":{"$ref":"#/components/schemas/optionalString"},"destinationColdkey":{"type":"string"},"hotkey":{"type":"string"},"originNetuid":{"type":"string"},"destinationNetuid":{"type":"string"},"alphaAmount":{"type":"string"}},"required":["intentType","originColdkey","destinationColdkey","hotkey","originNetuid","destinationNetuid","alphaAmount"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/SubstrateAccountBaseBuildOptions"}]},"TaoUnstakeIntent":{"title":"Tao Unstake Intent","allOf":[{"type":"object","properties":{"amountUnstaked":{"type":"string"}},"required":["amountUnstaked"]},{"$ref":"#/components/schemas/WithdrawIntent"},{"$ref":"#/components/schemas/TaoStakingBaseIntent"}]},"TokenApprovalIntent":{"title":"Intent for approving tokens for spending by a batcher contract","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["tokenApproval"],"description":"Must be \"tokenApproval\"."}},"required":["intentType"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/BaseIntentWithTokenName"}],"description":"Approve an ERC-20 token for spending by the BitGo batcher contract on\nEVM-compatible chains. Required before sending a token that has not been\npreviously approved. Provide tokenName to identify the token."},"TokenData":{"title":"TokenData","allOf":[{"$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}}},"TokenRecipientEntryItem":{"title":"TokenRecipientEntryItem","type":"object","properties":{"tokenQuantity":{"type":"string"},"tokenType":{"type":"string"},"tokenId":{"$ref":"#/components/schemas/optionalString"}},"required":["tokenQuantity","tokenType"]},"TonConsolidateIntent":{"title":"TON Consolidate Intent","allOf":[{"$ref":"#/components/schemas/AccountBaseConsolidateIntent"}]},"TonDelegateIntent":{"title":"TON Delegate Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["delegate"]},"validatorAddress":{"type":"string"},"useSingleNominator":{"type":"boolean"},"ownerAddress":{"$ref":"#/components/schemas/optionalString"},"tonStakingType":{"$ref":"#/components/schemas/TonStakingType"}},"required":["intentType","validatorAddress","useSingleNominator"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}]},"TonMultiNominatorDelegateIntent":{"title":"TON Multi Nominator Delegate Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["delegate"]},"validatorAddress":{"type":"string"},"tonStakingType":{"type":"string","enum":["MULTI_NOMINATOR"]}},"required":["intentType","validatorAddress","tonStakingType"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}]},"TonMultiNominatorUndelegateIntent":{"title":"TON Multi Nominator Undelegate Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["undelegate"]},"validatorAddress":{"type":"string"},"tonStakingType":{"type":"string","enum":["MULTI_NOMINATOR"]}},"required":["intentType","validatorAddress","tonStakingType"]},{"$ref":"#/components/schemas/BaseIntent"}]},"TonPaymentIntent":{"title":"TON Payment Intent","allOf":[{"type":"object","properties":{"memo":{"$ref":"#/components/schemas/optionalString"}}},{"$ref":"#/components/schemas/PaymentIntent"}]},"TonSingleNominatorDelegateIntent":{"title":"TON Single Nominator Delegate Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["delegate"]},"validatorAddress":{"type":"string"},"ownerAddress":{"type":"string"},"tonStakingType":{"type":"string","enum":["SINGLE_NOMINATOR"]}},"required":["intentType","validatorAddress","ownerAddress","tonStakingType"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}]},"TonSingleNominatorUndelegateIntent":{"title":"TON Single Nominator Undelegate Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["undelegate"]},"validatorAddress":{"type":"string"},"tonStakingType":{"type":"string","enum":["SINGLE_NOMINATOR"]}},"required":["intentType","validatorAddress","tonStakingType"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}]},"TonStakingType":{"title":"TonStakingType","type":"string","enum":["SINGLE_NOMINATOR","MULTI_NOMINATOR","TON_WHALES"]},"TonUndelegateIntent":{"title":"TON Undelegate Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["undelegate"]},"validatorAddress":{"type":"string"},"useSingleNominator":{"type":"boolean"},"singleNominatorAmount":{"$ref":"#/components/schemas/Amount"},"tonStakingType":{"$ref":"#/components/schemas/TonStakingType"}},"required":["intentType","validatorAddress","useSingleNominator","singleNominatorAmount"]},{"$ref":"#/components/schemas/BaseIntent"}]},"TonWhalesDelegateIntent":{"title":"TON Whales Delegate Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["delegate"]},"validatorAddress":{"type":"string"},"tonStakingType":{"type":"string","enum":["TON_WHALES"]}},"required":["intentType","validatorAddress","tonStakingType"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}]},"TonWhalesUndelegateIntent":{"title":"TON Whales Undelegate Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["undelegate"]},"validatorAddress":{"type":"string"},"withdrawalAmount":{"$ref":"#/components/schemas/Amount"},"tonStakingType":{"type":"string","enum":["TON_WHALES"]}},"required":["intentType","validatorAddress","withdrawalAmount","tonStakingType"]},{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}]},"Transaction":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/TransactionState1"},"unsignedTx":{"allOf":[{"$ref":"#/components/schemas/TransactionRequestUnsignedTransaction"}],"description":"Holds the unsigned transaction for this transaction in a tx-request."},"signatureShares":{"type":"array","description":"Only used for MPC coins. This is used to collect signature shares from and exchange them with the user. Holds the signature shares for this transaction in a tx-request.","items":{"$ref":"#/components/schemas/SignatureShare"}},"commitmentShares":{"type":"array","description":"Only used for MPC coins on EdDSA curve. This is used to collect commitment shares from and exchange them with the user. Holds the commitment shares for this transaction in a tx-request.","items":{"$ref":"#/components/schemas/CommitmentShare"}},"txHash":{"type":"string","description":"The hash of the transaction from the TxRequest that has been signed and is pending broadcast."},"bitgoPaillierChallenge":{"description":"BitGo-to-user paillier challenge. Required when signing with ECDSA MPC wallets.","type":"object","properties":{"p":{"type":"array","items":{"type":"string"}}}}},"required":["state","unsignedTx"]},"TransactionIntent":{"title":"TransactionIntent","oneOf":[{"$ref":"#/components/schemas/AdaConsolidateIntent"},{"$ref":"#/components/schemas/AdaPaymentIntent"},{"$ref":"#/components/schemas/AdaStakeClaimRewardsIntent"},{"$ref":"#/components/schemas/AdaStakeIntent"},{"$ref":"#/components/schemas/AdaUnstakeIntent"},{"$ref":"#/components/schemas/AdaVoteDelegationIntent"},{"$ref":"#/components/schemas/AptCustomTxIntent"},{"$ref":"#/components/schemas/AtomPaymentIntent"},{"$ref":"#/components/schemas/AtomStakeIntent"},{"$ref":"#/components/schemas/AtomUnstakeIntent"},{"$ref":"#/components/schemas/BabyCreateBtcDelegationIntent"},{"$ref":"#/components/schemas/BabyWithdrawRewardIntent"},{"$ref":"#/components/schemas/BscDelegateIntent"},{"$ref":"#/components/schemas/BscUnDelegateIntent"},{"$ref":"#/components/schemas/BscWithdrawUndelegateIntent"},{"$ref":"#/components/schemas/CantonAllocationAllocateIntent"},{"$ref":"#/components/schemas/CantonAllocationOfferWithdrawnIntent"},{"$ref":"#/components/schemas/CantonAllocationRejectIntent"},{"$ref":"#/components/schemas/CantonAllocationRequestIntent"},{"$ref":"#/components/schemas/CantonCosignDelegationAcceptIntent"},{"$ref":"#/components/schemas/CantonCosignDelegationProposalIntent"},{"$ref":"#/components/schemas/CantonCommandIntent"},{"$ref":"#/components/schemas/CantonPaymentIntent"},{"$ref":"#/components/schemas/CantonTransferAcceptIntent"},{"$ref":"#/components/schemas/CantonTransferAcknowledgeIntent"},{"$ref":"#/components/schemas/CantonTransferOfferWithdrawnIntent"},{"$ref":"#/components/schemas/CantonTransferRejectIntent"},{"$ref":"#/components/schemas/CantonEndInvestorOnboardingOfferIntent"},{"$ref":"#/components/schemas/CantonEndInvestorOnboardingAcceptIntent"},{"$ref":"#/components/schemas/CantonEndInvestorOnboardingRejectIntent"},{"$ref":"#/components/schemas/CantonParticipantOnboardingRequestIntent"},{"$ref":"#/components/schemas/ClaimIntent"},{"$ref":"#/components/schemas/CosmosContractCallIntent"},{"$ref":"#/components/schemas/CosmosPaymentIntent"},{"$ref":"#/components/schemas/CosmosStakeClaimRewardsIntent"},{"$ref":"#/components/schemas/CosmosStakeIntent"},{"$ref":"#/components/schemas/CosmosSwitchValidatorIntent"},{"$ref":"#/components/schemas/CosmosUnstakeIntent"},{"$ref":"#/components/schemas/DefiDepositIntent"},{"$ref":"#/components/schemas/DefiRedeemIntent"},{"$ref":"#/components/schemas/DotConsolidateIntent"},{"$ref":"#/components/schemas/DotCreateAccountIntent"},{"$ref":"#/components/schemas/DotPaymentIntent"},{"$ref":"#/components/schemas/DotStakingIntent"},{"$ref":"#/components/schemas/DotUnstakingIntent"},{"$ref":"#/components/schemas/DotWithdrawStakeIntent"},{"$ref":"#/components/schemas/DelegateIntent"},{"$ref":"#/components/schemas/EthAccelerationIntent"},{"$ref":"#/components/schemas/EthConsolidateIntent"},{"$ref":"#/components/schemas/EthConsolidateTokenIntent"},{"$ref":"#/components/schemas/EthFillNonceIntent"},{"$ref":"#/components/schemas/FillNonceIntent"},{"$ref":"#/components/schemas/EthPaymentIntent"},{"$ref":"#/components/schemas/EthStakingIntent"},{"$ref":"#/components/schemas/EthTransferTokenIntent"},{"$ref":"#/components/schemas/StakeClaimRewardsIntent"},{"$ref":"#/components/schemas/UndelegateIntent"},{"$ref":"#/components/schemas/FeeAddressTransferIntent"},{"$ref":"#/components/schemas/HbarUpdateAccountIntent"},{"$ref":"#/components/schemas/HypeevmBridgeFundsIntent"},{"$ref":"#/components/schemas/HypeevmSpotTransferIntent"},{"$ref":"#/components/schemas/HypeevmEnableBridgingIntent"},{"$ref":"#/components/schemas/IcpPaymentIntent"},{"$ref":"#/components/schemas/IotaConsolidateIntent"},{"$ref":"#/components/schemas/IotaPaymentIntent"},{"$ref":"#/components/schemas/LightningPaymentIntent"},{"$ref":"#/components/schemas/MmiSignMessageIntent"},{"$ref":"#/components/schemas/MmiSignTransactionIntent"},{"$ref":"#/components/schemas/NearStakeIntent"},{"$ref":"#/components/schemas/NearUnstakeIntent"},{"$ref":"#/components/schemas/NearWithdrawIntent"},{"$ref":"#/components/schemas/PolyxCreateAccountIntent"},{"$ref":"#/components/schemas/PolyxPreApproveAssetIntent"},{"$ref":"#/components/schemas/PolyxStakeIntent"},{"$ref":"#/components/schemas/PolyxSwitchValidatorIntent"},{"$ref":"#/components/schemas/PolyxUnstakeIntent"},{"$ref":"#/components/schemas/PolyxWithdrawIntent"},{"$ref":"#/components/schemas/SolAuthorizeIntent"},{"$ref":"#/components/schemas/SolClaimIntent"},{"$ref":"#/components/schemas/SolCloseAssociatedTokenAccountIntent"},{"$ref":"#/components/schemas/SolConsolidateIntent"},{"$ref":"#/components/schemas/SolCreateAssociatedTokenAccountIntent"},{"$ref":"#/components/schemas/SolCustomTxIntent"},{"$ref":"#/components/schemas/SolDeactivateIntent"},{"$ref":"#/components/schemas/SolDelegateIntent"},{"$ref":"#/components/schemas/SolGoUnstakeIntent"},{"$ref":"#/components/schemas/SolPaymentIntent"},{"$ref":"#/components/schemas/SolStakeIntent"},{"$ref":"#/components/schemas/SolUnstakeIntent"},{"$ref":"#/components/schemas/SolVersionedCustomTxIntent"},{"$ref":"#/components/schemas/SubstrateConsolidateIntent"},{"$ref":"#/components/schemas/SubstratePaymentIntent"},{"$ref":"#/components/schemas/SuiConsolidateIntent"},{"$ref":"#/components/schemas/SuiCustomTxIntent"},{"$ref":"#/components/schemas/SuiGoUnstakeIntent"},{"$ref":"#/components/schemas/SuiPaymentIntent"},{"$ref":"#/components/schemas/SuiStakingIntent"},{"$ref":"#/components/schemas/SuiUnstakingIntent"},{"$ref":"#/components/schemas/TaoStakeIntent"},{"$ref":"#/components/schemas/TaoSwitchValidatorIntent"},{"$ref":"#/components/schemas/TaoTransferStakeIntent"},{"$ref":"#/components/schemas/TaoUnstakeIntent"},{"$ref":"#/components/schemas/TokenApprovalIntent"},{"$ref":"#/components/schemas/TonConsolidateIntent"},{"$ref":"#/components/schemas/TonDelegateIntent"},{"$ref":"#/components/schemas/TonMultiNominatorDelegateIntent"},{"$ref":"#/components/schemas/TonMultiNominatorUndelegateIntent"},{"$ref":"#/components/schemas/TonPaymentIntent"},{"$ref":"#/components/schemas/TonSingleNominatorDelegateIntent"},{"$ref":"#/components/schemas/TonSingleNominatorUndelegateIntent"},{"$ref":"#/components/schemas/TonUndelegateIntent"},{"$ref":"#/components/schemas/TonWhalesDelegateIntent"},{"$ref":"#/components/schemas/TonWhalesUndelegateIntent"},{"$ref":"#/components/schemas/TrxClaimRewardsIntent"},{"$ref":"#/components/schemas/TrxDelegateResourceIntent"},{"$ref":"#/components/schemas/TrxFreezeIntent"},{"$ref":"#/components/schemas/TrxUndelegateResourceIntent"},{"$ref":"#/components/schemas/TrxUnfreezeIntent"},{"$ref":"#/components/schemas/TrxVoteIntent"},{"$ref":"#/components/schemas/TrxWithdrawExpireUnfreezeIntent"},{"$ref":"#/components/schemas/VetStakingIntent"},{"$ref":"#/components/schemas/VetDelegateIntent"},{"$ref":"#/components/schemas/VetExitDelegationIntent"},{"$ref":"#/components/schemas/VetBurnNFTIntent"},{"$ref":"#/components/schemas/VetStakeClaimRewardsIntent"},{"$ref":"#/components/schemas/VetValidatorRegistrationIntent"},{"$ref":"#/components/schemas/VetIncreaseStakeIntent"},{"$ref":"#/components/schemas/VetDecreaseStakeIntent"},{"$ref":"#/components/schemas/VetSignalExitIntent"},{"$ref":"#/components/schemas/VetWithdrawStakeIntent"},{"$ref":"#/components/schemas/WalletRecoveryIntent"},{"$ref":"#/components/schemas/BaseStakeIntentWithCalldata"},{"$ref":"#/components/schemas/StakeWithCallDataIntent"},{"$ref":"#/components/schemas/SwitchValidatorWithCallDataIntent"},{"$ref":"#/components/schemas/CoreDaoDelegateIntent"},{"$ref":"#/components/schemas/CoreDaoUndelegateIntent"},{"$ref":"#/components/schemas/CoreDaoClaimIntent"},{"$ref":"#/components/schemas/EthLikeStakeIntent"},{"$ref":"#/components/schemas/BeraDelegateIntent"},{"$ref":"#/components/schemas/WalrusStakingIntent"},{"$ref":"#/components/schemas/WalrusUndelegateIntent"},{"$ref":"#/components/schemas/WalrusWithdrawIntent"},{"$ref":"#/components/schemas/XdcUploadKycIntent"},{"$ref":"#/components/schemas/XdcProposeIntent"},{"$ref":"#/components/schemas/XdcResignIntent"},{"$ref":"#/components/schemas/XdcWithdrawIntent"},{"$ref":"#/components/schemas/BaseIntent"}]},"TransactionRequest":{"anyOf":[{"$ref":"#/components/schemas/TransactionRequestLite1"},{"$ref":"#/components/schemas/TransactionRequestFull1"}],"required":["txRequestId","version","latest","walletId","state","date","userId","intent"]},"TransactionRequestBase":{"title":"TransactionRequestBase","type":"object","properties":{"apiVersion":{"type":"string","enum":["lite","full"],"description":"The API version of the transaction request"},"txRequestId":{"allOf":[{"$ref":"#/components/schemas/TransactionRequestId"}],"description":"A unique ID for the TxRequest document across all wallets. The combination of the txRequestId and version will always be unique."},"idempotencyKey":{"type":"string","description":"The idempotency key of the transaction request"},"walletId":{"allOf":[{"$ref":"#/components/schemas/WalletIdString"}],"description":"The id of the Wallet the TxRequest is for."},"walletType":{"type":"string","enum":["backing","cold","custodial","custodialPaired","hot","advanced","trading"],"description":"The type describes who owns the keys to the wallet associated to the TxRequest."},"version":{"type":"number","description":"The version of the transaction request"},"enterpriseId":{"type":"string","description":"If the wallet that owns the TxRequest is owned by an enterprise then this is the Id of said enterprise.","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"state":{"$ref":"#/components/schemas/TransactionRequestState"},"date":{"type":"string","description":"The date and time this version of the TxRequest document was created.","example":"2021-01-01T00:00:00.000Z","format":"date-time","title":"ISO Date String"},"createdDate":{"type":"string","description":"The date and time the version 1 TxRequest document was created.","example":"2021-01-01T00:00:00.000Z","format":"date-time","title":"ISO Date String"},"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":{"description":"The intent of the transaction request"},"intents":{"type":"array","items":{}},"pendingApprovalId":{"type":"string","description":"The id of the Pending Approval that was created for the TxRequest if one was required."},"policiesChecked":{"type":"boolean"},"latest":{"type":"boolean","description":"Indicates if this is the latest transaction request"},"isCanceled":{"type":"boolean","description":"True, if the transaction request is canceled."}},"required":["txRequestId","walletId","version","state","date","createdDate","userId","initiatedBy","updatedBy","intents","latest"]},"TransactionRequestBase1":{"type":"object","properties":{"txRequestId":{"type":"string","description":"A unique ID for the TxRequest document across all wallets. The combination of the txRequestId and version will always be unique."},"version":{"type":"number","description":"The version of the document. Data changes are done only with inserts and incrementing the version."},"latest":{"type":"boolean","description":"A boolean flag that indicates whether the document is the latest version of the TxRequest."},"walletId":{"type":"string","description":"The id of the Wallet the TxRequest is for."},"walletType":{"allOf":[{"$ref":"#/components/schemas/WalletTypePublic"}],"description":"The type describes who owns the keys to the wallet associated to the TxRequest."},"enterpriseId":{"type":"string","description":"If the wallet that owns the TxRequest is owned by an enterprise then this is the Id of said enterprise."},"state":{"$ref":"#/components/schemas/TransactionRequestState1"},"date":{"allOf":[{"$ref":"#/components/schemas/DateTime"}],"description":"The date and time this version of the TxRequest document was created."},"createdDate":{"allOf":[{"$ref":"#/components/schemas/DateTime"}],"description":"The date and time the version 1 TxRequest document was created."},"userId":{"type":"string","description":"The Id of the User that produced this version of the TxRequest document. Could have created a new document or updated an existing document."},"initiatedBy":{"type":"string","description":"The Id of the User that originally created the TxRequest document (initiated the TxRequest)."},"updatedBy":{"type":"string","description":"The Id of the User that last updated the TxRequest document. This is an alias for the userId field."},"intent":{"$ref":"#/components/schemas/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"]},"TransactionRequestFull":{"title":"TransactionRequestFull","allOf":[{"type":"object","properties":{"transactions":{"type":"array","items":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/TransactionState"},"unsignedTx":{"$ref":"#/components/schemas/UnsignedTransaction"},"signatureShares":{"type":"array","items":{"allOf":[{"type":"object","properties":{"privateShareProof":{"type":"string","description":"The private share proof"},"publicShare":{"type":"string","description":"The public share"},"vssProof":{"type":"string","description":"The VSS proof of the signature share"}}},{"$ref":"#/components/schemas/SignatureShareWithoutVssProof"}]}},"commitmentShares":{"type":"array","items":{"allOf":[{"type":"object","properties":{"type":{"type":"string","enum":["commitment"],"description":"The type of the commitment share"}},"required":["type"]},{"$ref":"#/components/schemas/BaseShare"}]}},"txHash":{"type":"string"},"updatedDate":{"type":"string","format":"date-time","title":"ISO Date String"},"createdDate":{"type":"string","format":"date-time","title":"ISO Date String"}},"required":["state","unsignedTx"],"description":"The transactions associated with the transaction request"}},"messages":{"type":"array","items":{"type":"object","description":"The messages associated with the transaction request","properties":{"state":{"allOf":[{"$ref":"#/components/schemas/TransactionState"}],"description":"The current state of the message"},"signatureShares":{"type":"array","items":{"allOf":[{"type":"object","properties":{"privateShareProof":{"type":"string","description":"The private share proof"},"publicShare":{"type":"string","description":"The public share"},"vssProof":{"type":"string","description":"The VSS proof of the signature share"}}},{"$ref":"#/components/schemas/SignatureShareWithoutVssProof"}],"description":"Signature shares for the message"}},"privateSignatureShares":{"type":"array","items":{"allOf":[{"type":"object","properties":{"privateShareProof":{"type":"string","description":"The private share proof"},"publicShare":{"type":"string","description":"The public share"},"vssProof":{"type":"string","description":"The VSS proof of the signature share"}}},{"$ref":"#/components/schemas/SignatureShareWithoutVssProof"}],"description":"Private signature shares for the message"}},"commitmentShares":{"type":"array","items":{"allOf":[{"type":"object","properties":{"type":{"type":"string","enum":["commitment"],"description":"The type of the commitment share"}},"required":["type"]},{"$ref":"#/components/schemas/BaseShare"}],"description":"Commitment shares for the message (used for EdDSA)"}},"encryptedShares":{"type":"array","items":{"allOf":[{"type":"object","properties":{"type":{"$ref":"#/components/schemas/ShareType"}},"required":["type"]},{"$ref":"#/components/schemas/BaseShare"}],"description":"Encrypted shares for the message"}},"txHash":{"type":"string","description":"Transaction hash"},"updatedDate":{"type":"string","description":"Date when the message was last updated","format":"date-time","title":"ISO Date String"},"createdDate":{"type":"string","description":"Date when the message was created","format":"date-time","title":"ISO Date String"},"messageRaw":{"type":"string","description":"The raw message to be signed"},"messageEncoded":{"type":"string","description":"The encoded message"},"messageBroadcastable":{"type":"string","description":"The broadcastable message"},"messageStandardType":{"type":"string","description":"The encoded message"},"derivationPath":{"type":"string","description":"Derivation path for the message"},"combineSigShare":{"type":"string","description":"Combined signature share"},"coin":{"type":"string","description":"Coin type for the message"},"bitgoPaillierChallenge":{"description":"BitGo's Paillier challenge for ECDSA"},"encryptedChallenge":{"type":"string","description":"BitGo's encrypted challenge for ECDSA with Range Proofs"}},"required":["state","messageRaw"]}}}},{"$ref":"#/components/schemas/TransactionRequestBase"}]},"TransactionRequestFull1":{"title":"Full","allOf":[{"$ref":"#/components/schemas/TransactionRequestBase1"},{"type":"object","properties":{"transactions":{"description":"Transaction information.","type":"array","items":{"$ref":"#/components/schemas/Transaction"}},"messages":{"description":"Messages for the transaction request.","type":"array","items":{"$ref":"#/components/schemas/Message1"}}}}],"required":["txRequestId","version","latest","walletId","state","date","userId","intent","transactions"]},"TransactionRequestId":{"title":"TransactionRequestId","type":"string","example":"123e4567-e89b-12d3-a456-426614174000","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":[{"type":"object","properties":{"intent":{"allOf":[{"$ref":"#/components/schemas/TransactionIntent"}],"description":"The intent of the transaction request"},"unsignedTxs":{"type":"array","items":{"type":"object","properties":{"parsedTx":{"$ref":"#/components/schemas/ParsedTx"},"serializedTxHex":{"type":"string","description":"The unsigned transaction as a hex string."},"signableHex":{"type":"string","description":"The portion of a transaction used to generate a signature (may or may not be the same as serializedTxHex) as a hex string."},"derivationPath":{"type":"string","description":"A bip32 path."},"coinSpecific":{"allOf":[{"type":"object","properties":{"nonceAddress":{"type":"string"},"stakingAddress":{"type":"string"},"signature":{"type":"string"}}},{"type":"object","additionalProperties":{}}],"description":"Coin specific information."},"feeInfo":{"type":"object","properties":{"fee":{"oneOf":[{"type":"string"},{"type":"number"}]},"feeString":{"type":"string"}},"required":["fee","feeString"]}},"required":["parsedTx","serializedTxHex","signableHex"],"description":"Holds all unsigned transactions that will be used to fulfill the TxRequest for MPC wallets."}},"signatureShares":{"type":"array","items":{"allOf":[{"type":"object","properties":{"vssProof":{"type":"string","description":"The VSS proof of the signature share"},"privateShareProof":{"type":"string","description":"The private share proof"},"publicShare":{"type":"string","description":"The public share"}}},{"$ref":"#/components/schemas/SignatureShareWithoutVssProof"}],"description":"Only used for MPC coins. This is used to collect signature shares from and exchange them with the user."}},"commitmentShares":{"type":"array","items":{"allOf":[{"type":"object","properties":{"type":{"type":"string","enum":["commitment"],"description":"The type of the commitment share"}},"required":["type"]},{"$ref":"#/components/schemas/BaseShare"}],"description":"Only used for MPC coins on EdDSA curve. This is used to collect commitment shares from and exchange them with the user."}},"txHashes":{"type":"array","items":{"type":"string","description":"The hashes of all transactions from the TxRequest that have been signed and are pending broadcast."}}}},{"$ref":"#/components/schemas/TransactionRequestBase"}]},"TransactionRequestLite1":{"title":"Lite","allOf":[{"$ref":"#/components/schemas/TransactionRequestBase1"},{"type":"object","properties":{"unsignedTxs":{"type":"array","description":"Holds all unsigned transactions that will be used to fulfill the TxRequest for MPC wallets.","items":{"$ref":"#/components/schemas/TransactionRequestUnsignedTransaction"}},"signatureShares":{"type":"array","description":"Only used for MPC coins. This is used to collect signature shares from and exchange them with the user.","items":{"$ref":"#/components/schemas/SignatureShare"}},"commitmentShares":{"type":"array","description":"Only used for MPC coins on EdDSA curve. This is used to collect commitment shares from and exchange them with the user.","items":{"$ref":"#/components/schemas/CommitmentShare"}},"txHashes":{"type":"array","items":{"type":"string","description":"The hashes of all transactions from the TxRequest that have been signed and are pending broadcast."}}}}],"required":["txRequestId","version","latest","walletId","state","date","userId","intent"]},"TransactionRequestState":{"title":"TransactionRequestState","type":"string","enum":["pendingApproval","canceled","rejected","initialized","pendingDelivery","delivered","pendingUserSignature","pendingUserCommitment","pendingUserRShare","pendingUserGShare","readyToSend","signed","failed"]},"TransactionRequestState1":{"type":"string","enum":["initialized","pendingApproval","pendingUserCommitment","pendingUserRShare","pendingUserGShare","readyToSend","pendingUserSignature","pendingDelivery","signed","delivered","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"]},"TransactionState":{"title":"TransactionState","type":"string","enum":["initialized","pendingSignature","eddsaPendingCommitment","eddsaPendingRShare","eddsaPendingGShare","ecdsaMPCv2Round1","ecdsaMPCv2Round2","ecdsaMPCv2Round3","eddsaMPCv2Round1","eddsaMPCv2Round2","eddsaMPCv2Round3","readyToCombineShares","signed","held","delivered","invalidSignature","rejected"],"description":"If supplied, only transaction request transaction state changes from the provided\nlist will trigger notifications. If not provided, all transaction request\ntransaction state changes will trigger notifications."},"TransactionState1":{"type":"string","enum":["initialized","pendingSignature","eddsaPendingCommitment","eddsaPendingRShare","eddsaPendingGShare","readyToCombineShares","signed","held","delivered","invalidSignature","rejected","ecdsaMPCv2Round1","ecdsaMPCv2Round2","ecdsaMPCv2Round3"]},"Transfer":{"type":"object","properties":{"coin":{"$ref":"#/components/schemas/Coin"},"id":{"$ref":"#/components/schemas/Id"},"wallet":{"$ref":"#/components/schemas/Id"},"enterprise":{"$ref":"#/components/schemas/Id"},"txid":{"$ref":"#/components/schemas/TxId"},"normalizedTxHash":{"type":"string","description":"A normalized form of `txid` used for deduplication. For most coins this is\nidentical to `txid`. For account-model coins (e.g. ETH and its tokens) it may\ndiffer from `txid` when the transaction is regenerated. For lightning\ntransfers, `normalizedTxHash` is identical to `txid` (no transformation is\napplied).\n\n**Go Account / OFC withdrawals:** Like `txid`, this field holds the internal\nfront-transfer hash, not the on-chain hash. Use `metadata[].onChainTxId` for\nthe on-chain transaction hash.\n","example":"b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26"},"txidType":{"type":"string","description":"The type of the transaction id","enum":["transactionHash","blockHash"]},"height":{"type":"integer","description":"The height of the block this Transfer was confirmed in (999999999 if unconfirmed)"},"heightId":{"type":"string","description":"The unique height id of the block"},"date":{"type":"string","format":"date-time","description":"The date this Transfer was last updated"},"confirmations":{"type":"integer","description":"The number of blocks that have been confirmed since this Transfer's block was confirmed"},"type":{"type":"string","description":"Defines whether or not this Transfer was sent or received by the user","enum":["send","receive"]},"value":{"type":"integer","description":"The total value (in base units) sent by this Transfer (may be approximate for ETH and other coins where amounts in base units can exceed 2^53 - 1)"},"valueString":{"allOf":[{"$ref":"#/components/schemas/IntegerString"}],"description":"The total value (in base units) sent by this Transfer represented as a String"},"intendedValueString":{"description":"A string representation (in base units) of the initial value for the transfer. This is present because when a transaction fails on chain, its value is mutated to be zero. This string is immutable and will always be the intended value of the initial transfer regardless of the final state of the transaction.","allOf":[{"$ref":"#/components/schemas/IntegerString"}]},"baseValue":{"type":"integer","description":"The value (in base units) sent by this transfer, excluding network fees. BitGo is deprecating this field in the future. Instead, use baseValueWithoutFees."},"baseValueString":{"allOf":[{"$ref":"#/components/schemas/IntegerString"}],"description":"The value (in base units) sent by this transfer, excluding network fees represented as a string. BitGo is deprecating this field in the future. Instead, use baseValueWithoutFees."},"baseValueWithoutFees":{"type":"integer","description":"The value (in base units) sent by this transfer excluding network fees."},"baseValueWithoutFeesString":{"allOf":[{"$ref":"#/components/schemas/IntegerString"}],"description":"The value (in base units) sent by this transfer, excluding network fees, represented as a string"},"feeString":{"type":"string","description":"The Transfer's fee (in base units) represented as a String"},"payGoFee":{"type":"integer","description":"The Transfer's BitGo fee (in base units)"},"payGoFeeString":{"type":"string","description":"The Transfer's BitGo fee (in base units) represented as a String"},"usd":{"type":"number","description":"The amount of USD of this Transfer (will be negative if it's a send)"},"usdRate":{"type":"number","description":"The USD price at the time this Transfer was created"},"state":{"$ref":"#/components/schemas/TransferState"},"tags":{"type":"array","description":"The tags to be used on this Transfer (used in Policies)","items":{"$ref":"#/components/schemas/Id"}},"history":{"type":"array","description":"An audit log of events that have happened to the Transfer during its lifecycle","items":{"type":"object","properties":{"date":{"type":"string","format":"date-time","description":"The date of this history object"},"user":{"$ref":"#/components/schemas/Id"},"action":{"type":"string","enum":["created","signed","unconfirmed","confirmed","approved","commented","removed","failed","rejected"]},"comment":{"type":"string","description":"If this history object is of action `commented`, this is the comment from the user"}}}},"comment":{"type":"string","description":"A comment from the user"},"vSize":{"type":"integer","description":"The size of the transaction"},"coinSpecific":{"type":"object","description":"Transfer fields specific to each coin type"},"sequenceId":{"type":"string","description":"A `sequenceId` is a unique and arbitrary wallet identifier applied to transfers and transactions at creation. It is optional but highly recommended. With a `sequenceId` you can easily reference transfers and transactions&mdash;for example, to safely retry sending. Because the system only confirms one send request per `sequenceId` (and fails all subsequent attempts), you can retry sending without the risk of double spending. The `sequenceId` is only visible to users on the wallet and is not shared publicly.\n"},"consolidateId":{"$ref":"#/components/schemas/Id","description":"Consolidation ID if this transfer is part of a consolidation"},"txRequestId":{"type":"string","description":"Associated transaction request ID"},"goStakingRequestId":{"type":"string","description":"Associated GO staking request ID"},"subType":{"type":"string","description":"Transfer subtype","enum":["ofc_withdrawal","ofc_deposit","ofc_unstake","ofc_stake","ofc_book_transfer"]},"feeCoin":{"type":"string","description":"The coin used to pay the fee (for cross-chain transactions)"},"instant":{"type":"boolean","description":"Whether this is an instant transaction"},"instantId":{"type":"string","description":"The instant transaction ID if applicable"},"isFee":{"type":"boolean","description":"Whether this transfer represents a fee"},"isReward":{"type":"boolean","description":"Whether this transfer represents a staking reward"},"isUnlock":{"type":"boolean","description":"Whether this transfer represents an unlock operation"},"metadata":{"type":"array","description":"Key-value pairs carrying additional metadata about the transfer. The same key\nmay appear more than once.\n\nKnown keys (alphabetical). This list reflects all keys defined in\nthe current server release; additional keys may be added in future\nreleases without a breaking-change notice.\n\n- `backingTransferBroadcastTimestamp` — Timestamp (ISO 8601) at which\n  the backing on-chain transaction was broadcast to the network.\n- `lightningPaymentHash` — **(OFC lightning transfers only)** The\n  Lightning Network payment hash for the transfer. Present on both\n  `ofc_withdrawal` and `ofc_deposit` lightning transfers; for\n  `ofc_deposit` lightning transfers this key is used instead of\n  `onChainTxId`.\n- `onChainTxId` — **(Go Account / OFC non-lightning transfers only)**\n  The on-chain transaction hash of the backing transfer. For\n  `ofc_withdrawal` transfers this key is absent while the transfer is\n  in state `signed`; it is populated once the transfer reaches state\n  `confirmed` (i.e. once the backing on-chain transaction is\n  confirmed). Poll until `state === 'confirmed'` before reading this\n  field. Use this value — not the top-level `txid` — when reconciling\n  against a block explorer or external ledger. For standard\n  `ofc_deposit` transfers (non-lightning) this value equals the\n  top-level `txid`.\n- `replacedBy` — Transfer ID of the transfer that replaced this entry.\n- `replaces` — Transfer ID of the transfer this entry replaces.\n- `reversedBy` — Transfer ID of the transfer that reversed this entry.\n- `reverses` — Transfer ID of the transfer this entry reverses.\n- `rtId` — Internal routed-transaction ID linking a front transfer to its\n  backing Go Account routed transaction.\n- `stablecoinTxType` — Transaction type for stablecoin transfers (e.g.\n  `mint`, `reward`, `burn`).\n- `tokenizationUniquenessId` — **(Tokenization withdrawals only)**\n  Internal identifier used to prevent double-spends on a tokenization\n  withdrawal. Derived from the tokenization order ID; not guaranteed to\n  equal the order ID in rare same-merchant/same-amount/same-instant\n  collisions.\n","items":{"type":"object","properties":{"key":{"type":"string","description":"The metadata key name. See the `metadata` array description for documented values. Additional keys may be present.","x-extensible-enum":["backingTransferBroadcastTimestamp","lightningPaymentHash","onChainTxId","replacedBy","replaces","reversedBy","reverses","rtId","stablecoinTxType","tokenizationUniquenessId"]},"value":{"type":"string"}}}},"sendAccounting":{"type":"array","description":"Accounting breakdown for send transactions","items":{"type":"object","properties":{"type":{"type":"string"},"amountString":{"type":"string"},"nOuts":{"type":"integer"},"amount":{"type":"integer"},"id":{"type":"string"}}}},"createdTime":{"type":"string","format":"date-time","description":"The time this transfer was created"},"approvedTime":{"type":"string","format":"date-time","description":"The time this transfer was approved"},"rejectedTime":{"type":"string","format":"date-time","description":"The time this transfer was rejected"},"signedTime":{"type":"string","format":"date-time","description":"The time this transfer was signed"},"unconfirmedTime":{"type":"string","format":"date-time","description":"The time this transfer became unconfirmed"},"confirmedTime":{"type":"string","format":"date-time","description":"The time this transfer was confirmed"},"removedTime":{"type":"string","format":"date-time","description":"The time this transfer was removed"},"commentedTime":{"type":"string","format":"date-time","description":"The time this transfer was commented on"},"failedTime":{"type":"string","format":"date-time","description":"The time this transfer failed"},"regeneratedTime":{"type":"string","format":"date-time","description":"The time this transfer was regenerated"},"replacedTime":{"type":"string","format":"date-time","description":"The time this transfer was replaced"},"replacingTime":{"type":"string","format":"date-time","description":"The time this transfer started replacing another"},"abandonedTime":{"type":"string","format":"date-time","description":"The time this transfer was abandoned"},"signedDate":{"type":"string","format":"date-time","description":"The date this transfer was signed (legacy field)"},"customerApprovedTime":{"type":"string","format":"date-time","description":"The time this transfer was approved by the customer (trust transfers)"},"idVerificationTime":{"type":"string","format":"date-time","description":"The time identity verification was completed (trust transfers)"},"trustSignedTime":{"type":"string","format":"date-time","description":"The time this transfer was signed by trust (trust transfers)"},"trustFinalApprovalTime":{"type":"string","format":"date-time","description":"The time this transfer received final trust approval (trust transfers)"},"walletLabel":{"type":"string","description":"Label of the wallet associated with this transfer"},"enterpriseName":{"type":"string","description":"Name of the enterprise associated with this transfer"},"elliptic":{"type":"string","description":"Elliptic risk score information (trust transfers)"},"senderInformationVerified":{"type":"boolean","description":"Whether sender information has been verified (trust transfers)"},"buildParams":{"type":"object","description":"Parameters used to build the transaction","additionalProperties":true},"entries":{"type":"array","description":"An array of objects describing the change in address balances made as a result of this Transfer","items":{"type":"object","properties":{"address":{"type":"string","description":"An address affected by this Transfer","example":"2NAUwNgXaoFj2VVnSEvNLGuez8CfdU2UCMZ"},"wallet":{"allOf":[{"$ref":"#/components/schemas/Id"}],"description":"Only visible when the user has access to the wallet"},"value":{"type":"integer","description":"The change (in base units) in the address's balance"},"valueString":{"allOf":[{"$ref":"#/components/schemas/IntegerString"}],"description":"The change (in base units) in the address's balance represented as a String"},"isChange":{"type":"boolean","description":"True if this address is a change address (only exists for UTXO coins) and if this is a `sent` Transfer"},"isPayGo":{"type":"boolean","description":"True if this address is the BitGo PayGo wallet"},"token":{"type":"string","description":"If this is a token entry, the token's symbol","example":"omg"},"label":{"type":"string","description":"Names of addresses given by the user."},"failed":{"type":"boolean","description":"true if this entry is failed."},"associatedNativeCoinAddress":{"type":"string","description":"The native coin receive address associated with the solana ATA address. This is currently present only for BitGo addresses."},"memo":{"type":"string","description":"Memo associated with this entry. Only available for STX, EOS, SOL, NEAR, and POLYX. For other coins (XLM, XRP, Cosmos-based, TON, Tempo), memo is stored at the transaction level or appended to the address."},"type":{"type":"string","description":"The type of this entry (e.g., transfer, fee, contract_call)."},"nftId":{"type":"string","description":"NFT ID associated with this entry. Only present for NFT transfers."},"nftSymbol":{"type":"string","description":"NFT symbol associated with this entry. Only present for NFT transfers."}}},"required":["address","valueString"]},"usersNotified":{"type":"boolean","description":"Whether BitGo already sent notifications to the users of the transfer wallet"},"label":{"type":"string","description":"Address labels (if any) from entries concatenated."},"replaces":{"type":"array","description":"Transaction IDs that this transfer replaces.","items":{"type":"string"}},"replacedBy":{"type":"array","description":"Transaction IDs that replace this transfer.","items":{"type":"string"}},"riskIndicators":{"type":"array","description":"Risk indicators detected on this transfer (e.g. SELFDESTRUCT opcode). Transfers with risk indicators will not trigger webhook or email notifications.","items":{"type":"string","enum":["SELFDESTRUCT"]}}},"required":["id","coin","wallet","txid","height","date","confirmations","type","valueString","usd","usdRate","state","tags","history","comment","coinSpecific"]},"TransferState":{"type":"string","description":"The state of the transfer. Includes the following:\n- `confirmed`: The transfer is confirmed on chain.\n- `failed`: BitGo failed to confirm the transfer on chain. You must retry the transaction.\n- `initialized`: The initial state when creating a transfer.\n- `pendingApproval`: The transfer requires admin approval to proceed.\n- `rejected`: The transfer was rejected by an admin.\n- `removed`: A network re-org occurred, causing the confirmed transfer to be removed from the blockchain.\n- `replaced`: The transfer was stuck due to having a low fee and was replaced by a new transfer with a higher fee.\n- `signed`: The transfer was approved by an admin (if required) and then signed by BitGo.\n- `unconfirmed`: The signed transaction was sent to the network, and is pending on-chain validation.\n","example":"confirmed","enum":["confirmed","failed","initialized","pendingApproval","rejected","removed","replaced","signed","unconfirmed"]},"TransferTokenIntent":{"title":"TransferTokenIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["transferToken"],"description":"Must be \"transferToken\"."}},"required":["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"}}}}]},"Trustline":{"type":"object","properties":{"token":{"type":"string","description":"One of the supported coin types for Stellar tokens listed in [Coin-specific-implementation](#tag/Coin-specific-implementation)","example":"txlm:BST-GBQTIOS3XGHB7LVYGBKQVJGCZ3R4JL5E4CBSWJ5ALIJUHBKS6263644L"},"action":{"enum":["add","remove"]},"limit":{"allOf":[{"$ref":"#/components/schemas/IntegerString"}],"description":"String representation of the amount to limit in base units (stroops)"}}},"TrxClaimRewardsIntent":{"title":"TRX Claim Rewards Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["stakeClaimRewards"],"description":"Must be `\"stakeClaimRewards\"`."},"ownerAddress":{"type":"string","description":"Tron address of the wallet owner; must match the wallet's root address."}},"required":["intentType","ownerAddress"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}],"description":"Claim accumulated Tron staking rewards (WithdrawBalance) to the owner's\naddress. The reward balance must be non-zero; the handler does not verify\nthe amount before submitting the transaction. Valid on TRX and TTRX."},"TrxDelegateResourceIntent":{"title":"TRX Delegate Resource Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["delegateResource"],"description":"Must be `\"delegateResource\"`."},"ownerAddress":{"type":"string","description":"Tron address of the resource owner delegating their staked resources."},"receiverAddress":{"type":"string","description":"Tron address of the account receiving the delegated resources; must be an active Tron account."},"resource":{"type":"string","enum":["BANDWIDTH","ENERGY"],"description":"The resource type to delegate: `BANDWIDTH` or `ENERGY`."}},"required":["intentType","ownerAddress","receiverAddress","resource"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}],"description":"Delegate staked BANDWIDTH or ENERGY resources to another Tron address\n(DelegateResourceContract). The owner must have sufficient staked\nresources; the receiver address must be an active Tron account; and the\namount 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.\nFor TRX (`trx`, `ttrx`) MPC (TSS) wallets only — use with [Create transaction request](/reference/v2wallettxrequestcreate).\nMinimum delegation amount is 1 TRX (1,000,000 sun).\n","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"}]},"TrxFreezeIntent":{"title":"TRX Freeze Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["stake"],"description":"Must be `\"stake\"`."},"validatorAddress":{"type":"string","description":"Tron address of the Super Representative the user intends to vote for after freezing. Stored by the staking service to auto-construct the subsequent vote intent; not consumed by wallet-platform's freeze transaction builder."},"ownerAddress":{"type":"string","description":"Tron address of the wallet owner staking the TRX."},"resource":{"type":"string","enum":["BANDWIDTH","ENERGY"],"description":"The resource type to obtain by staking: `BANDWIDTH` or `ENERGY`."}},"required":["intentType","validatorAddress","ownerAddress","resource"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}],"description":"Stake (freeze) TRX to obtain BANDWIDTH or ENERGY using the Tron Stake V2\nprotocol (FreezeBalanceV2). The spendable balance must be greater than or\nequal to the freeze amount plus the transaction fee.\nValid on TRX and TTRX."},"TrxUndelegateResourceIntent":{"title":"TRX Undelegate Resource Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["undelegateResource"],"description":"Must be `\"undelegateResource\"`."},"ownerAddress":{"type":"string","description":"Tron address of the resource owner reclaiming the delegated resources."},"receiverAddress":{"type":"string","description":"Tron address of the account from which the resources are being reclaimed."},"resource":{"type":"string","enum":["BANDWIDTH","ENERGY"],"description":"The resource type to reclaim: `BANDWIDTH` or `ENERGY`."}},"required":["intentType","ownerAddress","receiverAddress","resource"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}],"description":"Reclaim previously delegated BANDWIDTH or ENERGY resources from a\nreceiver address (UnDelegateResourceContract). The undelegatable balance\nmust be sufficient to cover the requested amount.\nValid on TRX and TTRX."},"TrxUndelegateResourceIntent1":{"title":"TRX Undelegate Resource Intent","description":"Undelegates previously delegated TRON ENERGY or BANDWIDTH from the wallet root address.\nFor TRX (`trx`, `ttrx`) MPC (TSS) wallets only — use with [Create transaction request](/reference/v2wallettxrequestcreate).\n","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":[{"type":"object","properties":{"intentType":{"type":"string","enum":["unstake"],"description":"Must be `\"unstake\"`."},"ownerAddress":{"type":"string","description":"Tron address of the wallet owner unstaking the TRX."},"resource":{"type":"string","enum":["BANDWIDTH","ENERGY"],"description":"The resource type to unstake: `BANDWIDTH` or `ENERGY`."}},"required":["intentType","ownerAddress","resource"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}],"description":"Unstake (unfreeze) previously staked TRX using the Tron Stake V2\nprotocol (UnfreezeBalanceV2). Initiates the unstaking waiting period;\nuse the `claim` intent to withdraw the TRX after the waiting period\nhas elapsed. Valid on TRX and TTRX."},"TrxVoteIntent":{"title":"TRX Vote Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["voteDelegation"],"description":"Must be `\"voteDelegation\"`."},"validatorAddress":{"type":"string","description":"Tron address of the Super Representative selected during the freeze step. Carried forward by the staking service so the user does not need to re-select a validator; not consumed by wallet-platform's vote transaction builder (which reads the `votes` array instead)."},"ownerAddress":{"type":"string","description":"Tron address of the wallet owner casting the votes."},"votes":{"type":"array","items":{"type":"object","properties":{"vote_address":{"type":"string","description":"Tron address of the Super Representative (SR) receiving the votes."},"vote_count":{"type":"string","description":"Number of votes to allocate to this SR, as a decimal string."}},"required":["vote_address","vote_count"],"description":"List of vote allocations. Each entry specifies a Super Representative address and the number of votes to assign. Total votes must not exceed available Tron Power."}}},"required":["intentType","validatorAddress","ownerAddress","votes"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}],"description":"Cast votes for Tron Super Representatives (SR) using accumulated Tron\nPower (VoteWitnessContract). The total vote count across all entries must\nnot exceed the available Tron Power. Each staked TRX provides 1 unit of\nTron Power. Valid on TRX and TTRX."},"TrxWithdrawExpireUnfreezeIntent":{"title":"TRX Withdraw Expire Unfreeze Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["claim"],"description":"Must be `\"claim\"`."},"ownerAddress":{"type":"string","description":"Tron address of the wallet owner withdrawing the unstaked TRX."}},"required":["intentType","ownerAddress"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}],"description":"Withdraw previously unstaked TRX after the Tron unstaking waiting period\nhas elapsed (WithdrawExpireUnfreeze). The handler does not verify that\nthe waiting period has passed before submitting the transaction. Use the\n`unstake` intent to begin the unstaking process. Valid on TRX and TTRX."},"TxAddress":{"type":"object","properties":{"address":{"type":"string"},"options":{"type":"object"}},"required":["address"]},"TxBase64":{"type":"string","description":"Serialized transaction base64 (applies to XLM only)","example":"AAAAAGRnXg19FteG/7zPd+jDC7LDvRlzgfFC+JrPhRep0kYiAAAAZAB/4cUAAAACAAAAAAAAAAAAAAABAAAAAQAAAABkZ14NfRbXhv+8z3fowwuyw70Zc4HxQviaz4UXqdJGIgAAAAEAAAAAmljT/+FedddnAHwo95dOC4RNy6eVLSehaJY34b9GxuYAAAAAAAAAAAehIAAAAAAAAAAAAUrgwAkAAABAOExcvVJIUJv9HuVfbV0y7lRPRARv4wDtcdhHG7QN40h5wQ2uwPF52OGQ8KY+66a1A/8lNKB75sgj2xj44s8lDQ=="},"TxHex":{"type":"string","description":"Serialized transaction hex","example":"01000000000101d58f82d996dd872012675adadf4606734906b25a413f6e2ee535c0c10aef96020000000000ffffffff028de888000000000017a914c91aa24f65827eecec775037d886f2952b73cbe48740420f000000000017a9149304d18497b9bfe9532778a0f06d9fff3b3befaf870500473044022023d7210ba6d8bbd7a28b8af226f40f7235caab79156f93f9c9969fc459ea7f73022050fbdca788fba3de686b66b3501853695ff9d6f375867470207d233b099576e001000069522103d4788cda52f91c1f6c82eb91491ca76108c9c5f0839bc4f02eccc55fedb3311c210391bcef9dcc89570a79ba3c7514e65cd48e766a8868eca2769fa9242fdcc796662102ef3c5ebac4b54df70dea1bb2655126368be10ca0462382fcb730e55cddd2dd6a53aec8b11400"},"TxId":{"type":"string","description":"The on-chain transaction id.\n\n**Go Account / OFC wallets:** For `ofc_withdrawal` transfers the top-level `txid`\n(and `normalizedTxHash`) is the internal front-transfer hash, not the on-chain\ntransaction hash. The on-chain hash is available in `metadata[].onChainTxId` once\nthe transfer reaches state `confirmed`. For standard `ofc_deposit` transfers\n(non-lightning) all three values are identical. For OFC lightning deposits the\npayment hash is in `metadata[].lightningPaymentHash`; `onChainTxId` is absent.\n","example":"b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26"},"TxUsdThresholdRuleCondition":{"title":"TxUsdThresholdRuleCondition","type":"object","properties":{"lowerBound":{"type":"string"},"upperBound":{"type":"string"}},"required":["lowerBound"]},"UndelegateIntent":{"title":"UndelegateIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["undelegate"],"description":"Must be \"undelegate\"."}},"required":["intentType"]},{"$ref":"#/components/schemas/BaseStakeIntent"}],"description":"Remove delegation of staked assets from a validator on EVM-compatible chains.\nInitiates the unbonding period. Requires a staking request ID from the BitGo\nstaking service."},"UnsignedTransaction":{"title":"UnsignedTransaction","type":"object","properties":{"parsedTx":{"$ref":"#/components/schemas/ParsedTx"},"serializedTxHex":{"type":"string","description":"The unsigned transaction as a hex string."},"signableHex":{"type":"string","description":"The portion of a transaction used to generate a signature (may or may not be the same as serializedTxHex) as a hex string."},"derivationPath":{"type":"string","description":"A bip32 path."},"coinSpecific":{"allOf":[{"type":"object","properties":{"nonceAddress":{"type":"string"},"stakingAddress":{"type":"string"},"signature":{"type":"string"}}},{"type":"object","additionalProperties":{}}],"description":"Coin specific information."},"feeInfo":{"type":"object","properties":{"fee":{"oneOf":[{"type":"string"},{"type":"number"}]},"feeString":{"type":"string"}},"required":["fee","feeString"]}},"required":["parsedTx","serializedTxHex","signableHex"]},"Unspent":{"type":"object","properties":{"id":{"$ref":"#/components/schemas/UnspentId"},"address":{"type":"string","description":"The address of this unspent","example":"2MsKxhhkDo5WaLaYRGA9Cr3iSQPyXsu6Fi2"},"value":{"type":"integer"},"valueString":{"$ref":"#/components/schemas/IntegerString"},"blockHeight":{"type":"integer","description":"The block this Unspent was created in"},"date":{"type":"string","format":"date-time","description":"The date this unspent was created","example":"2017-03-25T23:01:40.248Z"},"coinbase":{"type":"boolean","description":"True if this unspent came from the coinbase transaction"},"wallet":{"$ref":"#/components/schemas/Id"},"fromWallet":{"$ref":"#/components/schemas/Id"},"chain":{"type":"integer","description":"The type of this unspent's address (P2SH, P2WSH, etc...)","example":0},"index":{"type":"integer","description":"A monotonic counter used when creating new addresses"},"redeemScript":{"type":"string","description":"The Script program used to cryptographically verify spending this unspent","example":"522102f1e990044d2a8be43d5b500bbdcb36277b97a4b07e01c5101ae8ec1568bfd6532103dab7dc82f2fc8c28200c1bdeca9c4cf181e0ca257395829cbd599395048afb57210205422e711827d8356f2fb75334d863941dd7eb45bd5788fa231dc5fa755135b653ae"},"witnessScript":{"type":"string","description":"The segwit Script program used to cryptographically verify spending this unspent","example":"52210351311cd81144e6cbdba561d24dfc22644cb02d053339d4beace03231b3be4f372103a8d0c1a375b9ee1a2411f9f8e18373be7f228b18260f63bbfca48809170ed08b2103c3bd8bd074657bbe9ee6714b31a4a54b6fd5b5cda0e1030122f9bf46b5034f6b53ae"},"isSegwit":{"type":"boolean"}}},"UnspentId":{"type":"string","description":"The id of the unspent in the form <txid>:<tx_index>","example":"003f688cc349f1fca8ac5ffa21671ca911b6ef351085c60733ed8c2ebf162cb8:2"},"UnstakeIntent":{"title":"UnstakeIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["unstake"],"description":"Must be \"unstake\"."}},"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"]}]},"UnsupportedTokenRecipientEntryItem":{"title":"UnsupportedTokenRecipientEntryItem","type":"object","properties":{"tokenContractAddress":{"$ref":"#/components/schemas/optionalString"},"decimals":{"$ref":"#/components/schemas/optionalNumber"}}},"UserKeychainType":{"title":"UserKeychainType","type":"object","properties":{"id":{"type":"string","description":"Keychain ID","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"source":{"type":"string","description":"Party that created the key","example":"user"},"type":{"type":"string","description":"Keychain type (e.g. \"independent\" for onchain, \"tss\" for MPC)"},"pub":{"type":"string","description":"Public part of a key pair (onchain wallets)","example":"xpub661MyMwAqRbcGMVhmc7wqQRYMtcX9LAvSj1pjB213y5TsrkV2uuzJjWnjBrT1FUeNWGPjaVm5p7o6jdNcQJrV1cy3a1R8NQ9m7LuYKA8RpH"},"ethAddress":{"type":"string","description":"Ethereum address corresponding to this keychain (onchain wallets)","example":"0xf5b7cca8621691f9dde304cb7128b6bb3d409363"},"coin":{"type":"string","description":"Asset ticker for this keychain (onchain wallets)"},"commonKeychain":{"type":"string","description":"Common keychain string (TSS wallets)"}},"required":["id","source","type"]},"UtxoFeeInfo":{"title":"UTXO","type":"object","description":"feeInfo (UTXO)","properties":{"size":{"type":"integer","description":"Estimated size of the transaction in bytes","example":776},"fee":{"type":"integer","description":"Estimated fee in base unit for the transaction","example":38800},"feeRate":{"allOf":[{"$ref":"#/components/schemas/IntegerOrString"},{"example":10000}],"description":"Custom minimum fee rate in a coin's base unit per kilobyte (or virtual kilobyte)--for example, satoshis per kvByte or microAlgos per kByte. If the applied `feeRate` does not meet a coin's required minimum transaction fee amount, the minimum is still applied (for example, 1000 sat/kvByte or a flat 1000 microAlgos).\n"},"payGoFee":{"type":"integer","description":"BitGo fee of the transaction (in base units)","example":0},"payGoFeeString":{"type":"integer","description":"BitGo fee of the transaction (in base units) represented as a String","example":"0"}}},"UtxoTransactionFormat":{"type":"string","description":"[UTXO only] Format of the returned transaction hex serialization.\n`legacy` for serialized transaction in custom bitcoinjs-lib format. `psbt` for BIP174 serialized transaction","enum":["legacy","psbt","psbt-lite"],"default":"legacy","example":"psbt"},"UtxoTxInfo":{"title":"UTXO","type":"object","description":"txInfo (UTXO)","properties":{"changeAddresses":{"type":"array","items":{"$ref":"#/components/schemas/AddressString3"}},"nOutputs":{"type":"integer","description":"Number of outputs","example":2},"nP2SHInputs":{"type":"integer","example":0},"nSegwitInputs":{"type":"integer","example":1},"unspents":{"type":"array","items":{"$ref":"#/components/schemas/Unspent"}},"walletAddressDetails":{"$ref":"#/components/schemas/Address2"}}},"ValidationError":{"allOf":[{"$ref":"#/components/schemas/GeneralError"},{"type":"object","properties":{"failedValidations":{"type":"object"}}}]},"ValidatorRegistrationIntent":{"title":"ValidatorRegistrationIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["validatorRegistration"]}},"required":["intentType"]},{"$ref":"#/components/schemas/BaseStakeIntent"}]},"VersionResponseType":{"title":"VersionResponseType","type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"}},"required":["version","name"]},"VetBurnNFTIntent":{"title":"VetBurnNFTIntent","allOf":[{"$ref":"#/components/schemas/UnstakeIntent"},{"$ref":"#/components/schemas/VetUnstakeCommonFields"}],"description":"Burn a VeChain staking NFT to complete the unstaking withdrawal and reclaim\nstaked VET. This is the second (final) step in the basic unstaking flow —\nmust be preceded by `undelegate`. No VET is spent by the sender; gas is paid\nby the enterprise gas tank (VTHO)."},"VetDecreaseStakeIntent":{"title":"VetDecreaseStakeIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["decreaseStake"],"description":"Must be \"decreaseStake\"."},"validatorAddress":{"type":"string","description":"Address of the validator whose staked position is being reduced.","minLength":1},"stakingContractAddress":{"type":"string","description":"Address of the VeChain staking contract holding the position.","minLength":1}},"required":["intentType","validatorAddress","stakingContractAddress"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}],"description":"Withdraw a portion of VET staked with a VeChain validator, reducing the\nposition size. The specified amount is returned to the sender's wallet. No\nVET is spent — gas is paid by the enterprise gas tank (VTHO)."},"VetDelegateIntent":{"title":"VetDelegateIntent","allOf":[{"type":"object","properties":{"tokenId":{"type":"string","description":"ID of the staking NFT to delegate to the validator.","minLength":1},"stakingContractAddress":{"type":"string","description":"Address of the VeChain staking (Stargate) contract that holds the NFT.","minLength":1},"validatorAddress":{"type":"string","description":"Address of the validator to delegate the staking NFT to.","minLength":1}},"required":["tokenId","stakingContractAddress","validatorAddress"]},{"$ref":"#/components/schemas/DelegateIntent"}],"description":"Delegate a VeChain staking NFT to a validator, granting the validator voting\nand reward rights for that position. No VET is spent — this is an NFT\nassignment operation, not a financial transfer. Gas is paid by the enterprise\ngas tank (VTHO)."},"VetExitDelegationIntent":{"title":"VetExitDelegationIntent","allOf":[{"$ref":"#/components/schemas/UndelegateIntent"},{"$ref":"#/components/schemas/VetUnstakeCommonFields"}],"description":"Remove validator delegation for a VeChain staking NFT, returning it to an\nundelegated state. This is the first step in the full unstaking flow — must\nprecede `unstake` (burn NFT). No VET is spent; gas is paid by the enterprise\ngas tank (VTHO)."},"VetIncreaseStakeIntent":{"title":"VetIncreaseStakeIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["increaseStake"],"description":"Must be \"increaseStake\"."},"validatorAddress":{"type":"string","description":"Address of the validator whose staked position is being increased.","minLength":1},"stakingContractAddress":{"type":"string","description":"Address of the VeChain staking contract holding the existing position.","minLength":1}},"required":["intentType","validatorAddress","stakingContractAddress"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}],"description":"Increase the VET staked with an existing VeChain validator by depositing\nadditional VET into the staking contract. The sender must have sufficient VET\nbalance. Gas is paid by the enterprise gas tank (VTHO)."},"VetSignalExitIntent":{"title":"VetSignalExitIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["signalExit"],"description":"Must be \"signalExit\"."},"validatorAddress":{"type":"string","description":"Address of the validator node whose position is being exited.","minLength":1},"stakingContractAddress":{"type":"string","description":"Address of the VeChain staking contract where the validator position is held.","minLength":1}},"required":["intentType","validatorAddress","stakingContractAddress"]},{"$ref":"#/components/schemas/BaseStakeIntent"}],"description":"Signal the intent to exit a VeChain validator staking position, initiating\nthe cooldown period. This is the first step in the validator unstake flow —\nmust be followed by `withdrawStake` after the cooldown expires. No VET is\nspent; gas is paid by the enterprise gas tank (VTHO)."},"VetStakeClaimRewardsIntent":{"title":"VetStakeClaimRewardsIntent","allOf":[{"type":"object","properties":{"tokenId":{"type":"string","description":"ID of the staking NFT whose accumulated VTHO rewards will be claimed.","minLength":1},"stakingContractAddress":{"type":"string","description":"Address of the VeChain staking (Stargate) contract that holds the NFT.","minLength":1}},"required":["tokenId","stakingContractAddress"]},{"$ref":"#/components/schemas/StakeClaimRewardsIntent"}],"description":"Claim VTHO rewards accumulated by a VeChain staking NFT position. Rewards\naccrue in VTHO (VeChain's energy token) for each NFT held in the Stargate\ncontract. Supply the NFT's token ID and the staking contract address. Gas is\npaid by the enterprise gas tank (VTHO)."},"VetStakingIntent":{"title":"VetStakingIntent","allOf":[{"type":"object","properties":{"stakingContractAddress":{"type":"string","description":"Address of the VeChain staking contract that will hold the staked VET.","minLength":1},"levelId":{"type":"string","description":"Staking tier level in the VeChain contract. Determines reward rate and lock parameters.","minLength":1}},"required":["stakingContractAddress","levelId"]},{"$ref":"#/components/schemas/StakeIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}],"description":"Activate a new VeChain staking position by depositing VET into the staking\ncontract. Use `levelId` to select the staking tier. To add to an existing\nposition, use `increaseStake` instead. All VeChain gas fees are paid by the\nenterprise gas tank (VTHO); the sender pays no gas."},"VetUnstakeCommonFields":{"title":"VetUnstakeCommonFields","type":"object","properties":{"tokenId":{"type":"string","description":"ID of the staking NFT to operate on.","minLength":1},"stakingContractAddress":{"type":"string","description":"Address of the VeChain staking (Stargate) contract that holds the NFT.","minLength":1}},"required":["tokenId","stakingContractAddress"]},"VetValidatorRegistrationIntent":{"title":"VetValidatorRegistrationIntent","allOf":[{"type":"object","properties":{"validatorAddress":{"type":"string","description":"Address of the validator node being registered. Must be a valid VeChain address.","minLength":1},"stakingPeriod":{"type":"number","enum":[60480,129600,259200],"description":"Duration of the staking lock period in blocks. Valid values: 60480 (~7 days), 129600 (~15 days), 259200 (~30 days)."},"stakingContractAddress":{"type":"string","description":"Address of the VeChain staking contract to register the validator with.","minLength":1}},"required":["validatorAddress","stakingPeriod","stakingContractAddress"]},{"$ref":"#/components/schemas/ValidatorRegistrationIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}],"description":"Register a new validator node in VeChain's staking contract by depositing a\nVET bond. The staking period determines the lock duration (60480, 129600, or\n259200 blocks). Gas is paid by the enterprise gas tank (VTHO)."},"VetWithdrawStakeIntent":{"title":"VetWithdrawStakeIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["withdrawStake"],"description":"Must be \"withdrawStake\"."},"validatorAddress":{"type":"string","description":"Address of the validator node whose staked VET is being withdrawn.","minLength":1},"stakingContractAddress":{"type":"string","description":"Address of the VeChain staking contract holding the exited position.","minLength":1}},"required":["intentType","validatorAddress","stakingContractAddress"]},{"$ref":"#/components/schemas/BaseStakeIntent"}],"description":"Withdraw a VeChain validator's staked VET after the cooldown period from a\n`signalExit` has completed. This is the second (final) step in the validator\nunstake flow. No VET is spent — staked VET is returned to the sender; gas is\npaid by the enterprise gas tank (VTHO)."},"VoteDelegationIntent":{"title":"Vote Delegation Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["voteDelegation"]}},"required":["intentType"]},{"$ref":"#/components/schemas/BaseStakeIntent"}]},"Wallet1":{"type":"object","properties":{"admin":{"type":"object","properties":{"policy":{"$ref":"#/components/schemas/Policy1"}}},"allowBackupKeySigning":{"type":"boolean"},"approvalsRequired":{"$ref":"#/components/schemas/ApprovalsRequired"},"balanceString":{"allOf":[{"$ref":"#/components/schemas/IntegerString"}],"description":"Total balance in base units (e.g. Satoshis)"},"buildDefaults":{"$ref":"#/components/schemas/WalletBuildDefaults"},"coin":{"$ref":"#/components/schemas/Coin"},"coinSpecific":{"$ref":"#/components/schemas/WalletCoinSpecific"},"custodialWallet":{"type":"object","description":"The associated custodial wallet object"},"custodialWalletId":{"$ref":"#/components/schemas/Id"},"deleted":{"type":"boolean"},"disableTransactionNotifications":{"type":"boolean"},"enterprise":{"$ref":"#/components/schemas/Id"},"freeze":{"type":"object","properties":{"time":{"type":"string","format":"dateTime"},"expires":{"type":"string","format":"dateTime"},"reason":{"type":"string","description":"Reason why the wallet was frozen","enum":["TxIntentMismatch","TxIntentMismatchRecipient","TxIntentMismatchContract","TxIntentMismatchApproval","UserRequest","AdminRequest"]},"referenceId":{"type":"string","description":"Optional reference ID for tracking purposes"},"adminOrUserId":{"type":"string","description":"The user who froze the wallet"}}},"id":{"$ref":"#/components/schemas/Id"},"isCold":{"type":"boolean"},"keys":{"$ref":"#/components/schemas/Keys"},"label":{"$ref":"#/components/schemas/WalletLabel"},"m":{"$ref":"#/components/schemas/NumSignatures"},"n":{"$ref":"#/components/schemas/NumKeychains"},"nodeId":{"$ref":"#/components/schemas/Id"},"receiveAddress":{"$ref":"#/components/schemas/Address2"},"recoverable":{"type":"boolean"},"tags":{"type":"array","items":{"$ref":"#/components/schemas/Id"}},"spendableBalanceString":{"allOf":[{"$ref":"#/components/schemas/IntegerString"}],"description":"Spendable balance in base units (e.g. Satoshis)"},"unspentCount":{"type":"number","example":100,"description":"Number of unspent outputs present in the wallet"},"startDate":{"allOf":[{"$ref":"#/components/schemas/DateTime"}],"description":"Wallet creation time"},"type":{"$ref":"#/components/schemas/WalletTypePublic"},"users":{"type":"array","items":{"$ref":"#/components/schemas/WalletUser"}},"customChangeKeySignatures":{"$ref":"#/components/schemas/CustomChangeKeySignatures"},"multisigType":{"$ref":"#/components/schemas/WalletMultisigType"},"multisigTypeVersion":{"$ref":"#/components/schemas/MultisigTypeVersion1"}},"required":["approvalsRequired","coin","deleted","disableTransactionNotifications","id","label"]},"WalletBuildDefaults":{"type":"object","properties":{"minFeeRate":{"type":"integer","minimum":1000,"nullable":true,"example":12000,"description":"(BTC only) The minimum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. Must be greater than or equal to the default of 1000 satoshis/kvByte.\n\nNote: The you can override `minFeeRate` on a per transaction basis with the `feeRate` parameter.\n"},"maxFeeRate":{"type":"integer","minimum":1000,"nullable":true,"example":18000,"description":"(BTC only) The maximum fee rate (in base units) per kilobyte (or virtual kilobyte). For example, satoshis per kvByte. The `maxFeeRate` limits the fee rate generated by both `feeMultiplier` and `numBlocks`.\n\nNote: The you can override `maxFeeRate` on a per transaction basis with the `feeRate` parameter.\n"},"feeMultiplier":{"type":"number","minimum":1,"nullable":true,"example":1.2,"description":"(UTXO only) Custom multiplier to the `feeRate`. The resulting fee rate is limited by the `maxFeeRate`. For replace-by-fee (RBF) transactions (that include `rbfTxIds`), the `feeMultiplier` must be greater than 1, since it's an absolute fee multiplier to the transaction being replaced.\n\nNote: The `maxFeeRate` limits the fee rate generated by `feeMultiplier`.\n"},"changeAddressType":{"$ref":"#/components/schemas/DefaultChangeAddressType"},"txFormat":{"type":"string","example":"psbt","enum":["legacy","psbt","psbt-lite"],"description":"(UTXO only) The default transaction format to use for this wallet. Per transaction, you can override the default with the `txFormat` parameter.\n"},"autoReserveUnspentsOnBuildMins":{"type":"number","minimum":1,"nullable":true,"example":60,"description":"(UTXO only) Automatically reserve unspents when building a transaction.\n"}}},"WalletCoinSpecific":{"oneOf":[{"title":"Wallet","type":"object","properties":{"creationFailure":{"type":"array","items":{"$ref":"#/components/schemas/TxId"},"description":"Includes list of fail initialization txids"},"pendingChainInitialization":{"type":"boolean","description":"Whether the wallet needs to be initialized on the chain"}}},{"$ref":"#/components/schemas/WalletCoinSpecificBtc"},{"$ref":"#/components/schemas/WalletCoinSpecificCosmos"},{"$ref":"#/components/schemas/WalletCoinSpecificOfc"},{"$ref":"#/components/schemas/WalletCoinSpecificXlm"}]},"WalletCoinSpecificBtc":{"title":"BTC","type":"object","properties":{"allowQuantumUnsafeAddresses":{"type":"boolean","description":"If true, the wallet allows creation of addresses which are vulnerable to quantum attacks. Defaults to false."}}},"WalletCoinSpecificCosmos":{"title":"ATOM","type":"object","properties":{"rootAddress":{"type":"string","description":"Wallet address to send or receive assets.","example":"cosmos1uvrgkp82dmeks368d7g2ejzm3axhapzveh5uek"},"lastChainIndex":{"type":"number","description":"Index of last address that was derived.","example":1},"lastMemoId":{"type":"string","description":"A running counter of the last known memo id. The first one is 0.","example":"0"},"pendingEcdsaTssInitialization":{"type":"boolean","description":"If true, this wallet cannot sign transactions or messages as the enterprise has not finished MPC setup.","example":false}},"required":["rootAddress","lastMemoId"]},"WalletCoinSpecificOfc":{"title":"OFC","type":"object","description":"Coin-specific data for OFC (Go Account) wallets.","properties":{"needsKeyReshareAfterPasswordReset":{"type":"boolean","description":"True if all users need to recover the user key. Set to true after a successful\npassword reset with support.\n"},"pendingSystemInitialization":{"type":"boolean","description":"True if the wallet is still pending initialization. While true, users cannot\ncreate addresses or initiate withdrawals.\n"},"userKeySigningRequired":{"type":"boolean","description":"True if the wallet requires user signatures for all transactions and refuses BitGo\nKMS signing. Defaults to true when not explicitly set. Only applicable for OFC wallets.\n"}}},"WalletCoinSpecificXlm":{"title":"XLM","type":"object","properties":{"rootAddress":{"type":"string","description":"Root address of the wallet","example":"GCTTCPH4IIDK7P72FFAEJ3ZFN6WDHJH6GGMRPHPM56ZWGIQ7B3XTIJAM"},"stellarUsername":{"type":"string","description":"Username for the user's Stellar address","example":"foo_bar@baz.com"},"homeDomain":{"type":"string","description":"Home domain of a Stellar account","example":"bitgo.com"},"stellarAddress":{"type":"string","description":"Email-like address associated to a Stellar account","example":"foo_bar@baz.com*bitgo.com"}}},"WalletIdString":{"title":"WalletIdString","type":"string","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"WalletLabel":{"type":"string","example":"My Wallet"},"WalletMultisigType":{"type":"string","enum":["onchain","tss"]},"WalletPermission":{"type":"string","description":"Comma-separated list of privileges for a wallet. Includes:\n\n      - `admin` - Can manage wallet policies and users and approve or reject pending approvals.\n      - `freeze` - Can freeze a wallet, disabling all withdrawals.\n      - `spend` - Can initiate withdrawals and generate new receive addresses.\n      - `trade` - Can initiate trades from a Go Account (`trading` wallet type).\n      - `view` - Can view balances and transactions.\n\nPermissions don't overlap. Required parameter if 'reshare' is false.\n","enum":["admin","spend","trade","view"],"example":"spend,view"},"WalletRecoveryIntent":{"title":"Wallet Recovery Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["walletRecovery"]}},"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&mdash;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.\n","example":"abc123"},"comment":{"type":"string","description":"The `comment` is only visible to users on the wallet and is not shared publicly."}},"required":["intentType"]},"WalletShareKeychain":{"type":"object","description":"Key passed to the receiving user, included if the wallet was shared with spend permission","properties":{"pub":{"description":"One of wallet pub (onchain) or commonKeychain (MPC)","type":"string"},"encryptedPrv":{"description":"Private key of the user sharing the wallet encrypted under their wallet passphrase","type":"string"},"fromPubKey":{"description":"Derived public key of the user sharing the wallet","type":"string"},"toPubKey":{"description":"Derived public key of the user receiving the share","type":"string"},"path":{"description":"BIP32 HD path of the derived public keys (fromPubKey and toPubKey)","example":"m/1234/1/1","type":"string"}}},"WalletShareState1":{"type":"string","example":"active","enum":["pendingapproval","active","accepted","canceled","rejected"]},"WalletType1":{"title":"WalletType","type":"object","properties":{"id":{"type":"string","description":"Wallet ID","example":"59cd72485007a239fb00282ed480da1f","pattern":"^[0-9a-f]{32}$"},"users":{"type":"array","items":{"type":"object","properties":{"user":{"type":"string"},"permissions":{"type":"array","items":{"type":"string"}}},"required":["user","permissions"],"description":"Ids of users with access to the wallet"}},"coin":{"type":"string","description":"Name of the blockchain the wallet is on","example":"tbtc4"},"label":{"type":"string","description":"Name the user assigned to the wallet","example":"My TBTC4 Wallet"},"m":{"type":"number","description":"Number of signatures required for the wallet to send","example":2},"n":{"type":"number","description":"Number of signers on the wallet","example":3},"keys":{"type":"array","example":["59cd72485007a239fb00282ed480da1f"],"items":{"type":"string","description":"Ids of wallet keys"}},"keySignatures":{"type":"object","additionalProperties":{},"description":"Signatures for the backup and BitGo public keys signed by the user key"},"enterprise":{"type":"string"},"organization":{"type":"string"},"bitgoOrg":{"type":"string"},"tags":{"type":"array","example":["59cd72485007a239fb00282ed480da1f"],"items":{"type":"string","description":"Tags set on the wallet"}},"disableTransactionNotifications":{"type":"boolean","description":"Flag for disabling wallet transaction notifications","example":false},"freeze":{"type":"object","additionalProperties":{},"description":"Freeze state (used to stop the wallet from spending)","example":{}},"deleted":{"type":"boolean","description":"Flag which indicates the wallet has been deleted","example":false},"approvalsRequired":{"type":"number","description":"Number of admin approvals required for an action to fire","example":1},"isCold":{"type":"boolean","description":"Flag for identifying cold wallets","example":false},"coinSpecific":{"type":"object","additionalProperties":{},"description":"Coin-specific data"},"admin":{"type":"object","additionalProperties":{},"description":"Admin data (wallet policies)","example":{}},"allowBackupKeySigning":{"type":"boolean","description":"Flag for allowing signing with backup key","example":false},"clientFlags":{"type":"array","items":{"type":"string"}},"recoverable":{"type":"boolean","description":"Flag indicating whether this wallet's user key is recoverable with the passphrase held by the user."},"startDate":{"type":"string","description":"Time when this wallet was created"},"hasLargeNumberOfAddresses":{"type":"boolean","description":"Flag indicating that this wallet is large (more than 100,000 addresses). If this is set, some APIs may omit properties which are expensive to calculate for wallets with many addresses (for example, the total address counts returned by the List Addresses API)."},"config":{"type":"object","additionalProperties":{},"description":"Custom configuration options for this wallet"},"balanceString":{"type":"string","description":"Wallet balance as string","example":"0"},"confirmedBalanceString":{"type":"string","description":"Confirmed wallet balance as string","example":"0"},"spendableBalanceString":{"type":"string","description":"Spendable wallet balance as string","example":"0"},"receiveAddress":{"type":"object","properties":{"id":{"type":"string"},"address":{"type":"string"},"chain":{"type":"number"},"index":{"type":"number"},"coin":{"type":"string"},"wallet":{"type":"string"},"coinSpecific":{"type":"object","additionalProperties":{}}},"required":["id","address","chain","index","coin","wallet","coinSpecific"]},"balance":{"type":"number","description":"Wallet balance as number","example":0},"rbfBalance":{"type":"number"},"rbfBalanceString":{"type":"string"},"reservedBalanceString":{"type":"string"},"lockedBalanceString":{"type":"string"},"stakedBalanceString":{"type":"string"},"unspentCount":{"type":"number"},"pendingChainInitialization":{"type":"boolean"},"pendingEcdsaTssInitialization":{"type":"boolean"},"pendingApprovals":{"type":"array","items":{"type":"object","additionalProperties":{}}},"multisigType":{"type":"string"},"multisigTypeVersion":{"type":"string"},"type":{"type":"string"},"subType":{"type":"string"},"creator":{"type":"string"},"walletFullyCreated":{"type":"boolean"}},"required":["id","users","coin","label","m","n","keys","keySignatures","enterprise","organization","bitgoOrg","tags","disableTransactionNotifications","freeze","deleted","approvalsRequired","isCold","coinSpecific","admin","allowBackupKeySigning","clientFlags","recoverable","startDate","hasLargeNumberOfAddresses","config","balanceString","confirmedBalanceString","spendableBalanceString","receiveAddress"]},"WalletTypePublic":{"type":"string","description":"The type describes who owns the keys to the wallet and how they are stored. `cold` wallets are wallets where the private key of the user key is stored exclusively outside of BitGo's system. `custodial` means that this wallet is a cold wallet where BitGo owns the keys. Only customers of the BitGo Trust can create this kind of wallet. `custodialPaired` means that this is a hot wallet that is owned by the customer but it will be linked to a cold (custodial) wallet where BitGo owns the keys. This option is only available to customers of BitGo Inc. BitGo stores an encrypted private key for the user key of `hot` wallets. `trading` wallets are trading accounts where the coin is `ofc`. `distributedCustody` means You manage one key and another key agent manages the second key. BitGo manages the third key","enum":["cold","custodial","custodialPaired","hot","trading","distributedCustody","advanced"]},"WalletUser":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/Id"},"permissions":{"type":"array","items":{"$ref":"#/components/schemas/WalletPermission"}}},"example":{"user":"55e8a1a5df8380e0e30e20c6","permissions":["admin","view","spend"]}},"WalrusStakingIntent":{"title":"Walrus Stake Intent","allOf":[{"type":"object","properties":{"sharedStakingObjectId":{"type":"string"}},"required":["sharedStakingObjectId"]},{"$ref":"#/components/schemas/SuiStakingIntent"}]},"WalrusUndelegateIntent":{"title":"Walrus Undelegate Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["undelegate"]},"stakedSuiObjectId":{"type":"string"},"sharedStakingObjectId":{"type":"string"},"amount":{"type":"object","properties":{"symbol":{"type":"string"},"value":{"type":"string"}},"required":["symbol","value"]}},"required":["intentType","stakedSuiObjectId","sharedStakingObjectId"]},{"$ref":"#/components/schemas/BaseStakeIntent"}]},"WalrusWithdrawIntent":{"title":"Walrus Withdraw Intent","allOf":[{"type":"object","properties":{"sharedStakingObjectId":{"type":"string"}},"required":["sharedStakingObjectId"]},{"$ref":"#/components/schemas/SuiUnstakingIntent"}]},"WebhookRuleCondition":{"title":"WebhookRuleCondition","type":"object","properties":{"url":{"type":"string","description":"The url to query for the webhook"}},"required":["url"]},"WithdrawIntent":{"title":"WithdrawIntent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["claim"],"description":"Must be \"claim\"."},"amount":{"type":"object","properties":{"symbol":{"type":"string"},"value":{"type":"string"}},"required":["symbol","value"]}},"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"]}]},"WsError":{"type":"object","required":["error","errorName","reqId"],"properties":{"error":{"type":"string"},"errorName":{"type":"string"},"reqId":{"type":"string"}}},"XdcProposeIntent":{"title":"XDC Propose Intent","allOf":[{"type":"object","properties":{"candidateAddress":{"type":"string","minLength":1},"validatorContractAddress":{"type":"string","minLength":1}},"required":["candidateAddress","validatorContractAddress"]},{"$ref":"#/components/schemas/ValidatorRegistrationIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}]},"XdcResignIntent":{"title":"XDC Resign Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["undelegate"]},"candidateAddress":{"type":"string","minLength":1},"validatorContractAddress":{"type":"string","minLength":1}},"required":["intentType","candidateAddress","validatorContractAddress"]},{"$ref":"#/components/schemas/BaseStakeIntent"}]},"XdcUploadKycIntent":{"title":"XDC Upload KYC Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["contractCall"]},"ipfsHash":{"type":"string","minLength":1},"validatorContractAddress":{"type":"string","minLength":1}},"required":["intentType","ipfsHash","validatorContractAddress"]},{"$ref":"#/components/schemas/BaseStakeIntent"}]},"XdcWithdrawIntent":{"title":"XDC Withdraw Intent","allOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["unstake"]},"blockNumber":{"type":"string","minLength":1},"index":{"type":"string","minLength":1},"validatorContractAddress":{"type":"string","minLength":1}},"required":["intentType","blockNumber","index","validatorContractAddress"]},{"$ref":"#/components/schemas/BaseStakeIntent"},{"$ref":"#/components/schemas/BaseIntentWithAmount"}]},"XlmFeeInfo":{"title":"XLM","type":"object","description":"feeInfo (XLM)","properties":{"height":{"type":"integer","description":"Height of the ledger that provided the values","example":123456},"xlmBaseFee":{"type":"string","description":"Base network fee per transaction operation","example":"100"},"xlmBaseReserve":{"type":"string","description":"Base reserve used to calculate the minimum balance required by the network","example":"5000000"}}},"XlmTxInfo":{"title":"XLM","type":"object","description":"txInfo (XLM)","properties":{"fee":{"type":"integer","description":"Network fee","example":100},"operations":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"string","description":"Amount in Lumens as string","example":"10.5"},"asset":{"type":"object","properties":{"code":{"type":"string","example":"XLM"}}},"destination":{"type":"string","example":"GCNFRU774FPHLV3HAB6CR54XJYFYITOLU6KS2J5BNCLDPYN7I3DOMIPY"},"type":{"type":"string","enum":["payment","createAccount"],"example":"payment"}}}},"sequence":{"type":"string","example":"35995558267060226"},"source":{"type":"string","example":"GBSGOXQNPULNPBX7XTHXP2GDBOZMHPIZOOA7CQXYTLHYKF5J2JDCF7LT"}}},"optionalBoolean":{"title":"optionalBoolean","type":"boolean"},"optionalNumber":{"title":"optionalNumber","type":"number"},"optionalString":{"title":"optionalString","type":"string"},"optionalStringArray":{"title":"optionalStringArray","type":"array","items":{"type":"string"}},"optionalUnknownObject":{"title":"optionalUnknownObject","type":"object","additionalProperties":{}},"solCloseAssociatedTokenAccountRecipients":{"title":"solCloseAssociatedTokenAccountRecipients","type":"array","items":{"type":"object","description":"Internal io-ts brand for one close-ATA recipient row (not exported).\n\nUses {@link t.brand} instead of `t.refinement` so OpenAPI generation does not\nemit an unresolvable `#/components/schemas/refinement`. The brand predicate must be\nan inline function expression (not a bare identifier) so `@api-ts/openapi-generator`\ndoes not try to resolve it as a codec. The predicate is cast via `unknown` to\nsatisfy `t.brand`'s `Branded<…>` predicate type because runtime checks match the\nbrand, while `SolCloseAssociatedTokenAccountRecipient` is a plain structural alias.\nFor the\nnarrowed row shape after validation, use {@link SolCloseAssociatedTokenAccountRecipient}\n(see {@link SolCloseAssociatedTokenAccountIntent}’s exported type, which overrides\n`recipients` accordingly).","properties":{"address":{"$ref":"#/components/schemas/Address"},"amount":{"$ref":"#/components/schemas/Amount"},"data":{"$ref":"#/components/schemas/optionalString"}},"required":["address","amount"]}}},"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"BitGo access token"}}},"x-tagGroups":[{"name":"API reference","tags":["Express"]}]}