{"openapi":"3.0.3","info":{"title":"BitGo Express API","version":"1.0.0"},"servers":[{"url":""}],"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}/wallet/generate":{"post":{"tags":["Express"],"summary":"Generate wallet","operationId":"express.wallet.generate","parameters":[{"$ref":"#/components/parameters/pathCoin"},{"name":"includeKeychains","in":"query","schema":{"type":"boolean","default":false,"description":"Include user, backup and bitgo keychains along with generated 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 blockchain (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 a `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 [Fund Gas Tanks](https://developers.bitgo.com/docs/get-started-gas-tanks) to initialize new wallets on chain. Ensure your gas tank has a sufficient balance to cover this cost before generating a new wallet.\n","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressGenerateWalletRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressGenerateWalletResponse"}}}}}}},"/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","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}/signermacaroon":{"post":{"tags":["Express"],"summary":"Lightning - Create signer macaroon","operationId":"express.lightning.signerMacaroon","description":"This is only used for self-custody lightning. Create the signer macaroon for the watch-only Lightning Network Daemon (LND) node. This macaroon derives from the signer node admin macaroon and is used by the watch-only node to request signatures from the signer node for operational tasks. Returns the updated wallet with the encrypted signer macaroon in the `coinSpecific` response field.","parameters":[{"$ref":"#/components/parameters/pathLightningCoin"},{"$ref":"#/components/parameters/pathWalletId"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExpressGenerateSignerMacaroonRequest"}}}},"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}/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/Error"},"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"}}}},"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/Error"},"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/Error"},"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/Error"},"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/Error"},"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":{"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"}]}}},"AccountBaseBuildOptions2":{"type":"object","properties":{"nonce":{"type":"string"}}},"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"]}]},"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/AddressType"}}},"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"}}},"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"}}},"AddressLabel":{"type":"string","nullable":true,"example":"Bob's Hot Wallet Address","maxLength":250,"description":"A human-readable label for the address."},"AddressString3":{"title":"Address","type":"string","example":"2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZS","maxLength":500},"AddressType":{"type":"string","example":"p2sh","enum":["p2sh","p2shP2wsh","p2wsh","p2tr","p2trMusig2"]},"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"]},"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"]},"PlatformError3":{"title":"API error","allOf":[{"$ref":"#/components/schemas/PlatformErrorNoName3"},{"properties":{"context":{"type":"object","description":"Properties that apply to a specific error name"},"name":{"type":"string","description":"Error code"}},"required":["name"]}]},"PlatformErrorNoName3":{"type":"object","properties":{"error":{"type":"string","description":"Human-readable error message"},"requestId":{"type":"string","description":"Client request id"}},"required":["error","requestId"]},"ApprovalsRequired":{"type":"integer","minimum":1,"example":1},"BaseIntent":{"title":"Intent","type":"object","properties":{"intentType":{"$ref":"#/components/schemas/IntentType"},"sequenceId":{"$ref":"#/components/schemas/optionalString"},"comment":{"$ref":"#/components/schemas/optionalString"},"nonce":{"oneOf":[{"type":"string"},{"type":"number"}]}},"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"]},"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"]}}},"required":["recipients"]},"BaseIntentWithoutNonce1":{"title":"BaseIntentWithoutNonce","type":"object","properties":{"intentType":{"$ref":"#/components/schemas/IntentType1"},"sequenceId":{"$ref":"#/components/schemas/optionalString"},"comment":{"$ref":"#/components/schemas/optionalString"}},"required":["intentType"]},"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"]}]},"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"]},"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.\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/AddressType"},{"$ref":"#/components/schemas/ChangeAddressTypes"}],"description":"The address type for the change address. One of `p2sh`, `p2shP2wsh`, `p2wsh`, `p2tr` or `p2trMusig2`."},"startTime":{"type":"string","description":"Unix timestamp in seconds.nanoseconds format, denoting the start of the validity window. Only for HBAR transactions.","example":1714067129.1020603},"consolidateId":{"allOf":[{"$ref":"#/components/schemas/Id"}],"description":"(ALGO/TEZOS only) Consolidation ID of this consolidation transaction."},"lastLedgerSequence":{"type":"integer","description":"(XRP only) Absolute max ledger the transaction should be accepted in, whereafter it will be rejected"},"ledgerSequenceDelta":{"type":"integer","description":"(XRP only) Relative ledger height (in relation to the current ledger) that the transaction should be accepted in, whereafter it will be rejected"},"rbfTxIds":{"type":"array","items":{"type":"string"},"description":"The list of transactions to accelerate using Replace-By-Fee (RBF) for UTXO coins (currently accelerating only one tx is supported)."},"isReplaceableByFee":{"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."}}},"Chain":{"type":"integer","example":1,"enum":[0,1,10,11,20,21,30,31,40,41]},"ChangeAddressTypes":{"type":"array","items":{"$ref":"#/components/schemas/AddressType"},"description":"The address types for the change address. Order by preference and BitGo uses the first available. Any subset of `p2sh`, `p2shP2wsh`, `p2wsh`, `p2tr` or `p2trMusig2`."},"Coin":{"title":"Coin","description":"A cryptocurrency or token ticker symbol.","type":"string","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/EthBuildOptions"},{"type":"object","properties":{"intentType":{"type":"string","enum":["consolidateToken"]},"recipients":{"type":"array","items":{"$ref":"#/components/schemas/RecipientEntry1"}},"consolidateId":{"type":"string","description":"Consolidation ID of this consolidation transaction"},"keepAlive":{"type":"string","description":"True, if excluding the minimum-funding amounts in an address during consolidation."}},"required":["intentType","recipients"]}]},"CosmosContractCallIntent":{"title":"Cosmos Contract Call","allOf":[{"$ref":"#/components/schemas/BaseIntent2"},{"type":"object","properties":{"intentType":{"type":"string","enum":["contractCall"]},"contract":{"type":"string","description":"The address of the contract to call."},"msgHex":{"type":"string","description":"The binary message data to send to the contract in hex format."}},"required":["intentType","contract","msgHex"]}]},"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"},"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"}]},"DotPaymentIntent1":{"title":"DOT Payment Intent","allOf":[{"type":"object","properties":{"proxy":{"$ref":"#/components/schemas/DotProxy"},"owner":{"$ref":"#/components/schemas/optionalString"}},"required":["proxy","owner"]},{"$ref":"#/components/schemas/PaymentIntent1"},{"$ref":"#/components/schemas/DotAccountBaseBuildOptions"}]},"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"}}},"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/DotAccountBaseBuildOptions"}]},"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/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"]},"enableTokens":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"address":{"$ref":"#/components/schemas/optionalString"}},"required":["name"]}}},"required":["intentType","enableTokens"]},{"$ref":"#/components/schemas/BaseIntent"}]},"Error":{"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"]},"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/EthBuildOptionsWithoutFeeOptions"}]},"EthBuildOptions":{"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/AccountBaseBuildOptions"}]},"EthBuildOptionsWithoutFeeOptions":{"title":"EthBuildOptionsWithoutFeeOptions","allOf":[{"type":"object","properties":{"hopParams":{"type":"object","properties":{"gasPriceMax":{"$ref":"#/components/schemas/optionalNumber"},"paymentId":{"$ref":"#/components/schemas/optionalString"},"userReqSig":{"$ref":"#/components/schemas/optionalString"}},"required":["gasPriceMax","paymentId","userReqSig"]},"receiveAddress":{"$ref":"#/components/schemas/optionalString"},"senderAddressIndex":{"$ref":"#/components/schemas/optionalNumber"}}},{"$ref":"#/components/schemas/AccountBaseBuildOptions"}]},"EthFillNonceBuildOptions":{"title":"EthFillNonceBuildOptions","type":"object","properties":{"feeOptions":{"oneOf":[{"$ref":"#/components/schemas/FeeOption"},{"$ref":"#/components/schemas/EIP1559FeeOptions"}]},"receiveAddress":{"$ref":"#/components/schemas/optionalString"},"senderAddressIndex":{"$ref":"#/components/schemas/optionalNumber"}}},"EthFillNonceIntent1":{"title":"ETH Fill Nonce Intent","allOf":[{"type":"object","properties":{}},{"$ref":"#/components/schemas/FillNonceIntent1"},{"$ref":"#/components/schemas/EthFillNonceBuildOptions"}]},"EthPaymentIntent":{"title":"ETH Payment Intent","allOf":[{"type":"object","properties":{"selfSend":{"$ref":"#/components/schemas/optionalBoolean"}},"required":["selfSend"]},{"$ref":"#/components/schemas/PaymentIntent"},{"$ref":"#/components/schemas/EthBuildOptions"}]},"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/EthBuildOptions"}]},"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"}}},"ExpressGenerateSignerMacaroonRequest":{"type":"object","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."}}},"ExpressGenerateWalletRequest":{"type":"object","properties":{"label":{"$ref":"#/components/schemas/WalletLabel"},"multisigType":{"type":"string","enum":["onchain","tss"],"description":"If absent, BitGo uses the default wallet type for the asset. This is relevant only for assets that support both multisignature (`onchain`) and MPC (`tss`) on the BitGo platform. These assets are: `arbeth`, `eth`, `opeth`, `polygon`, and `soneium`. These assets all default to `tss`."},"type":{"type":"string","enum":["hot","cold","custodial","trading"],"description":"The type of wallet, defined by key management and signing protocols. 'hot' and 'cold' are both self-managed wallets. If absent, defaults to 'hot'. 'trading' for Go Account wallets."},"passphrase":{"type":"string","description":"Passphrase to be used to encrypt the user key on the wallet"},"userKey":{"type":"string","description":"User provided public key"},"backupXpub":{"$ref":"#/components/schemas/Pub"},"backupXpubProvider":{"type":"string","enum":["dai"],"description":"Optional key recovery service to provide and store the backup key"},"enterprise":{"allOf":[{"$ref":"#/components/schemas/Id"}],"description":"Enterprise id. This is required for Ethereum wallets since they can only be created as part of an enterprise"},"disableTransactionNotifications":{"type":"boolean","description":"Flag for disabling wallet transaction notifications"},"passcodeEncryptionCode":{"type":"string","description":"The passphrase used for decrypting the encrypted wallet passphrase during wallet recovery"},"coldDerivationSeed":{"type":"string","description":"Seed that derives an extended user key or common keychain for a cold wallet."},"gasPrice":{"type":"integer","description":"Gas price to use when deploying an Ethereum wallet"},"disableKRSEmail":{"type":"boolean","description":"Flag for preventing KRS from sending email after creating backup key"},"walletVersion":{"type":"integer","default":1,"description":"(ETH only) Specify the wallet creation contract version used when creating a wallet contract. Use 0 for the old wallet creation, 1 for the new wallet creation, where it is only deployed upon receiving funds. 2 for wallets with the same functionality as v1 but with NFT support. 3 for MPC wallets. 4 is same as v2 but with some changes related to network identifier and encoding of tx data. v4 is applicable for Arbitrum, Optimism, ZkSync, and other EVM-compatible chains that we will onboard in the future. 5 for MPC MPCv2 wallets. 6 for EVM MPCv2 wallets with receive addresses.","minimum":0,"maximum":6},"isDistributedCustody":{"type":"boolean","description":"True, if the wallet type is a distributed-custodial. If passed, you must also pass the 'enterprise' parameter."},"bitgoKeyId":{"allOf":[{"$ref":"#/components/schemas/Id"}],"description":"BitGo key ID for self-managed cold MPC wallets."},"commonKeychain":{"type":"string","description":"Common keychain for self-managed cold MPC wallets."}},"required":["label","enterprise"]},"ExpressGenerateWalletResponse":{"oneOf":[{"$ref":"#/components/schemas/ExpressWallet"},{"title":"Wallet (including keychains)","type":"object","description":"Wallet with user, bitgo and backup keychains (when `includeKeychains` query param is `true`).","properties":{"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!"}}}]},"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},"userKeySigningRequired":{"type":"boolean","description":"True, if the wallet requires user signatures for all transactions. Only applicable for Go Accounts.","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"}}},"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."}}},"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"}}},"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"}}},"Id":{"title":"ID","type":"string","pattern":"^[0-9a-f]{32}$","example":"59cd72485007a239fb00282ed480da1f"},"IdArray":{"type":"array","items":{"$ref":"#/components/schemas/Id"},"example":["585951a5df8380e0e3063e9f","585951a5df8380e0e304a553"]},"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","goUnstake","createBtcDelegation","transferAccept","transferReject","transferAcknowledge","transferOfferWithdrawn","defi-deposit","defi-redeem"]},"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"]},"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"]}]},"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"},"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"},"ListRuleEntryType":{"type":"string","enum":["address","walletId","enterpriseId"],"description":"the kind of resource a list rule entry refers to"},"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"]},"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"]},"NearStakeIntent1":{"title":"Near Stake","allOf":[{"$ref":"#/components/schemas/StakeIntent2"},{"type":"object","properties":{"recipients":{"type":"array","items":{"$ref":"#/components/schemas/RecipientEntry1"}}},"required":["recipients"]}]},"NearUnstakeIntent1":{"title":"Near Unstake","allOf":[{"$ref":"#/components/schemas/UnstakeIntent2"},{"type":"object","properties":{"recipients":{"type":"array","items":{"$ref":"#/components/schemas/RecipientEntry1"}}},"required":["recipients"]}]},"NearWithdrawIntent1":{"title":"Near Claim Unstake","allOf":[{"$ref":"#/components/schemas/WithdrawIntent2"},{"type":"object","properties":{"recipients":{"type":"array","items":{"$ref":"#/components/schemas/RecipientEntry1"}}},"required":["recipients"]}]},"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"},"PaymentIntent":{"title":"PaymentIntent","allOf":[{"$ref":"#/components/schemas/BaseIntent"},{"$ref":"#/components/schemas/BaseIntentWithRecipients"},{"oneOf":[{"type":"object","properties":{"intentType":{"type":"string","enum":["payment"]}},"required":["intentType"]},{"type":"object","properties":{"intentType":{"type":"string","enum":["payment"]},"isTestTransaction":{"type":"boolean"}},"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"]}}},"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"]}}},"PendingApprovalState1":{"anyOf":[{"$ref":"#/components/schemas/PendingApprovalStatePending1"},{"$ref":"#/components/schemas/PendingApprovalStateResolved"}]},"PendingApprovalStatePending1":{"title":"Pending","type":"string","enum":["pending","awaitingSignature","pendingFinalApproval","pendingCustodianApproval","pendingVideoApproval","pendingIdVerification"]},"PendingApprovalStateResolved":{"title":"Resolved","type":"string","enum":["approved","processing","rejected"]},"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"]}}},"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"]},"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"]},"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"},"PsbtHex":{"type":"string","description":"BIP174 serialization of a PSBT","example":"70736274ff0100530100000001ccf3d1b853dcff06a939afef91d8b178d74028516bb831d77fcfd5b1ce6715f00000000000ffffffff01f0b9f5050000000017a914567cd7b44f9f3a07c3138f37bf984b60fbbaf24387000000004f010488b21e0000000000000000003a922e29f0c8eb0db2a60484cbdcb631f6b107c9caae3ffdcf3e7d2ec1f6bcd00312148715f361dab685a669d42431e5d6d3f973404dab9c9fd1b950b279ad763404cc18ae084f010488b21e0000000000000000006d1d656d3ddd91c194c04565a3603702a21016ced14a265f38982d6275e67b6403d3bac2313a7c6b21cbb11b14b0d10341f922c0a403a8bd8c87f0dc820f35af6e04f65cd8694f010488b21e000000000000000000cb04fd63ab34d90fe6466b880e2a02ccf8a863374312991af8911b1aaab443340336ef228ffe9b8efffba052c32d334660dd1f8366cf8fe44ae5aa672b6b62909504f2ef0389000100c00100000000010101010101010101010101010101010101010101010101010101010101010101010000000000ffffffff0100e1f5050000000017a914d909474404c124a3d04c3fbff61faa49cf43c58b87024730440220360d495738071ed6930084713724262ef55d710e06d85f90b56727ab83c91b5702200ae452a812717ef0ac8866989ffc963d88c14f9694fa57ef046dd699bea1d5da01210247496797efe8b56780cd9bee19ac3d916624829cacd3f1236fa608000193e54d0000000001012000e1f5050000000017a914d909474404c124a3d04c3fbff61faa49cf43c58b87010469522102cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b42092102d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab210344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f153ae220602cc4d0fa411cac244486f8eb2c08e035ff7410f460a359ca7f8810991bd3b420914f2ef038900000000000000000000000000000000220602d72fd0d0d90293434ad5fca160f278e03c614497aa4e425cf454e2c1330f96ab14cc18ae080000000000000000000000000000000022060344d884136df550202865ffbc6218c7f9c88fe6ce39c945798190badb38a752f114f65cd8690000000000000000000000000000000000010069522103f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f21035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf22103e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b53ae2202035ffb7abc70159e0469f4b989a6d5e1785a2904169ff050b2f468fe5d3d5dbbf214cc18ae0800000000000000000100000000000000220203e1524d7f6fc57ab3eacbb659b787106780a475d1db483952c2310b7e9a38975b14f65cd86900000000000000000100000000000000220203f6f40764bd5d63f200a2778883acf75e96f15095c998263c087270d0c97e7e7f14f2ef03890000000000000000010000000000000000"},"Pub":{"type":"string","description":"public part of a key pair","example":"xpub661MyMwAqRbcGMVhmc7wqQRYMtcX9LAvSj1pjB213y5TsrkV2uuzJjWnjBrT1FUeNWGPjaVm5p7o6jdNcQJrV1cy3a1R8NQ9m7LuYKA8RpH"},"RecipientEntry1":{"type":"object","properties":{"address":{"$ref":"#/components/schemas/TxAddress"},"amount":{"$ref":"#/components/schemas/Amount2"},"data":{"type":"string"},"tokenData":{"$ref":"#/components/schemas/TokenData1"}},"required":["address","amount"]},"RecipientTokenData":{"type":"object","properties":{"tokenName":{"type":"string","description":"Name of token, as represented in BitGoJS Statics package."},"tokenContractAddress":{"type":"string","description":"Address of token or smart contract. Required if token is unsupported by BitGo. Not required if passing \"tokenName\"."},"decimalPlaces":{"type":"integer","description":"Relevant for fungible tokens. Not required if passing \"tokenName\". Defaults to smallest base unit."},"tokenType":{"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."}}}]}}}}}}]}}}},"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"}}},"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"]},"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"]},"SolBuildOptions":{"title":"SolBuildOptions","allOf":[{"type":"object","properties":{"memo":{"$ref":"#/components/schemas/optionalString"}},"required":["memo"]},{"$ref":"#/components/schemas/AccountBaseBuildOptions"}]},"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/SolBuildOptions"}]},"SolCreateAssociatedTokenAccountIntent1":{"title":"SOL Create Associated Token Account Intent","allOf":[{"type":"object","properties":{}},{"$ref":"#/components/schemas/EnableTokenIntent"},{"$ref":"#/components/schemas/SolBuildOptions"}]},"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/SolBuildOptions"}]},"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/SolBuildOptions"}]},"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"]}]},"StakingError":{"title":"Staking Error","type":"object","properties":{"error":{"type":"string"},"errorName":{"type":"string"},"reqId":{"type":"string"},"context":{"type":"object"}}},"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}}},"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"]},"TransactionRequest":{"anyOf":[{"$ref":"#/components/schemas/TransactionRequestLite1"},{"$ref":"#/components/schemas/TransactionRequestFull1"}],"required":["txRequestId","version","latest","walletId","state","date","userId","intent"]},"TransactionRequestBase1":{"type":"object","properties":{"txRequestId":{"type":"string","description":"A unique ID for the TxRequest document across all wallets. The combination of the txRequestId and version will always be unique."},"version":{"type":"number","description":"The version of the document. Data changes are done only with inserts and incrementing the version."},"latest":{"type":"boolean","description":"A boolean flag that indicates whether the document is the latest version of the TxRequest."},"walletId":{"type":"string","description":"The id of the Wallet the TxRequest is for."},"walletType":{"allOf":[{"$ref":"#/components/schemas/WalletTypePublic"}],"description":"The type describes who owns the keys to the wallet associated to the TxRequest."},"enterpriseId":{"type":"string","description":"If the wallet that owns the TxRequest is owned by an enterprise then this is the Id of said enterprise."},"state":{"$ref":"#/components/schemas/TransactionRequestState1"},"date":{"allOf":[{"$ref":"#/components/schemas/DateTime"}],"description":"The date and time this version of the TxRequest document was created."},"createdDate":{"allOf":[{"$ref":"#/components/schemas/DateTime"}],"description":"The date and time the version 1 TxRequest document was created."},"userId":{"type":"string","description":"The Id of the User that produced this version of the TxRequest document. Could have created a new document or updated an existing document."},"initiatedBy":{"type":"string","description":"The Id of the User that originally created the TxRequest document (initiated the TxRequest)."},"updatedBy":{"type":"string","description":"The Id of the User that last updated the TxRequest document. This is an alias for the userId field."},"intent":{"$ref":"#/components/schemas/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"]},"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"]},"TransactionRequestIntent":{"anyOf":[{"$ref":"#/components/schemas/AdaStakeIntent1"},{"$ref":"#/components/schemas/ConsolidateTokenIntent1"},{"$ref":"#/components/schemas/CosmosContractCallIntent"},{"$ref":"#/components/schemas/DOTClaimIntent"},{"$ref":"#/components/schemas/DotPaymentIntent1"},{"$ref":"#/components/schemas/DotStakingIntent1"},{"$ref":"#/components/schemas/DotUnstakingIntent1"},{"$ref":"#/components/schemas/EthAccelerationIntent1"},{"$ref":"#/components/schemas/EthFillNonceIntent1"},{"$ref":"#/components/schemas/EthPaymentIntent"},{"$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/SolCreateAssociatedTokenAccountIntent1"},{"$ref":"#/components/schemas/SolStakeIntent1"},{"$ref":"#/components/schemas/SolUnstakeIntent1"},{"$ref":"#/components/schemas/TransferTokenIntent1"},{"$ref":"#/components/schemas/UnstakeIntent2"},{"$ref":"#/components/schemas/WalletRecoveryIntent1"},{"$ref":"#/components/schemas/WithdrawIntent2"}]},"TransactionRequestLite1":{"title":"Lite","allOf":[{"$ref":"#/components/schemas/TransactionRequestBase1"},{"type":"object","properties":{"unsignedTxs":{"type":"array","description":"Holds all unsigned transactions that will be used to fulfill the TxRequest for MPC wallets.","items":{"$ref":"#/components/schemas/TransactionRequestUnsignedTransaction"}},"signatureShares":{"type":"array","description":"Only used for MPC coins. This is used to collect signature shares from and exchange them with the user.","items":{"$ref":"#/components/schemas/SignatureShare"}},"commitmentShares":{"type":"array","description":"Only used for MPC coins on EdDSA curve. This is used to collect commitment shares from and exchange them with the user.","items":{"$ref":"#/components/schemas/CommitmentShare"}},"txHashes":{"type":"array","items":{"type":"string","description":"The hashes of all transactions from the TxRequest that have been signed and are pending broadcast."}}}}],"required":["txRequestId","version","latest","walletId","state","date","userId","intent"]},"TransactionRequestState1":{"type":"string","enum":["initialized","pendingApproval","pendingUserCommitment","pendingUserRShare","pendingUserGShare","readyToSend","pendingUserSignature","pendingDelivery","signed","delivered","canceled","rejected","failed"]},"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"]},"TransactionState1":{"type":"string","enum":["initialized","pendingSignature","eddsaPendingCommitment","eddsaPendingRShare","eddsaPendingGShare","readyToCombineShares","signed","held","delivered","invalidSignature","rejected","ecdsaMPCv2Round1","ecdsaMPCv2Round2","ecdsaMPCv2Round3"]},"Transfer":{"type":"object","properties":{"coin":{"$ref":"#/components/schemas/Coin"},"id":{"$ref":"#/components/schemas/Id"},"wallet":{"$ref":"#/components/schemas/Id"},"enterprise":{"$ref":"#/components/schemas/Id"},"txid":{"$ref":"#/components/schemas/TxId"},"txidType":{"type":"string","description":"The type of the transaction id","enum":["transactionHash","blockHash"]},"height":{"type":"integer","description":"The height of the block this Transfer was confirmed in (999999999 if unconfirmed)"},"heightId":{"type":"string","description":"The unique height id of the block"},"date":{"type":"string","format":"date-time","description":"The date this Transfer was last updated"},"confirmations":{"type":"integer","description":"The number of blocks that have been confirmed since this Transfer's block was confirmed"},"type":{"type":"string","description":"Defines whether or not this Transfer was sent or received by the user","enum":["send","receive"]},"value":{"type":"integer","description":"The total value (in base units) sent by this Transfer (may be approximate for ETH and other coins where amounts in base units can exceed 2^53 - 1)"},"valueString":{"allOf":[{"$ref":"#/components/schemas/IntegerString"}],"description":"The total value (in base units) sent by this Transfer represented as a String"},"intendedValueString":{"description":"A string representation (in base units) of the initial value for the transfer. This is present because when a transaction fails on chain, its value is mutated to be zero. This string is immutable and will always be the intended value of the initial transfer regardless of the final state of the transaction.","allOf":[{"$ref":"#/components/schemas/IntegerString"}]},"baseValue":{"type":"integer","description":"The value (in base units) sent by this transfer, excluding network fees. BitGo is deprecating this field in the future. Instead, use baseValueWithoutFees."},"baseValueString":{"allOf":[{"$ref":"#/components/schemas/IntegerString"}],"description":"The value (in base units) sent by this transfer, excluding network fees represented as a string. BitGo is deprecating this field in the future. Instead, use baseValueWithoutFees."},"baseValueWithoutFees":{"type":"integer","description":"The value (in base units) sent by this transfer excluding network fees."},"baseValueWithoutFeesString":{"allOf":[{"$ref":"#/components/schemas/IntegerString"}],"description":"The value (in base units) sent by this transfer, excluding network fees, represented as a string"},"feeString":{"type":"string","description":"The Transfer's fee (in base units) represented as a String"},"payGoFee":{"type":"integer","description":"The Transfer's BitGo fee (in base units)"},"payGoFeeString":{"type":"string","description":"The Transfer's BitGo fee (in base units) represented as a String"},"usd":{"type":"number","description":"The amount of USD of this Transfer (will be negative if it's a send)"},"usdRate":{"type":"number","description":"The USD price at the time this Transfer was created"},"state":{"$ref":"#/components/schemas/TransferState"},"tags":{"type":"array","description":"The tags to be used on this Transfer (used in Policies)","items":{"$ref":"#/components/schemas/Id"}},"history":{"type":"array","description":"An audit log of events that have happened to the Transfer during its lifecycle","items":{"type":"object","properties":{"date":{"type":"string","format":"date-time","description":"The date of this history object"},"user":{"$ref":"#/components/schemas/Id"},"action":{"type":"string","enum":["created","signed","unconfirmed","confirmed","approved","commented","removed","failed","rejected"]},"comment":{"type":"string","description":"If this history object is of action `commented`, this is the comment from the user"}}}},"comment":{"type":"string","description":"A comment from the user"},"vSize":{"type":"integer","description":"The size of the transaction"},"coinSpecific":{"type":"object","description":"Transfer fields specific to each coin type"},"sequenceId":{"type":"string","description":"A `sequenceId` is a unique and arbitrary wallet identifier applied to transfers and transactions at creation. It is optional but highly recommended. With a `sequenceId` you can easily reference transfers and transactions&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"]},"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":"Additional metadata associated with the transfer","items":{"type":"object","properties":{"key":{"type":"string"},"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), 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"]},"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)"}}},"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","example":"b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26"},"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"},"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"]}]},"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"}}}]},"VersionResponseType":{"title":"VersionResponseType","type":"object","properties":{"version":{"type":"string"},"name":{"type":"string"}},"required":["version","name"]},"Wallet1":{"type":"object","properties":{"admin":{"type":"object","properties":{"policy":{"$ref":"#/components/schemas/Policy1"}}},"allowBackupKeySigning":{"type":"boolean"},"userKeySigningRequired":{"type":"boolean","description":"True, if the wallet requires user signatures for all transactions. Only applicable for Go Accounts."},"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/WalletCoinSpecificCosmos"},{"$ref":"#/components/schemas/WalletCoinSpecificXlm"}]},"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"]},"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"}}},"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"},"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"]}},"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"]}]},"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"},"optionalUnknownObject":{"title":"optionalUnknownObject","type":"object","additionalProperties":{}}}},"x-tagGroups":[{"name":"API reference","tags":["Express"]}]}