Initiate an unsigned transaction to create a pending approval. This is useful to request funds to be sent from custodial wallets. Use only with custodial wallets.
Path Parameters
coinstringRequired
A cryptocurrency or token ticker symbol.
Example: btc
walletIdstringRequired
Example: 59cd72485007a239fb00282ed480da1f
Pattern: ^[0-9a-f]{32}$
Request Body
typestring
Required for transactions from MPC wallets. "acceleration" speeds up transactions with a certain nonce by adjusting the gas setting. "accountSet" is for XRP AccountSet transactions. "enabletoken" is for SOL. "stakingLock" and "stakingUnlock" are for Stacks delegations. "transfer" is for native-asset transfers. "trustline" is for Stellar trustline transactions. Possible types include: [acceleration, accountSet, enabletoken, stakingLock, stakingUnlock, transfer, transfertoken, trustline]
For AVAX, possible types include: 'addValidator', 'export', and 'import'.
For XRP, possible types include: 'payment' and 'accountSet'. The default is 'payment'.
For STX, type is required.
numBlocksinteger
(BTC only) Used to estimate the fee rate by targeting confirmation within the given number of blocks. If neither 'feeRate' nor 'numBlocks' is specified, a block target of 2 is used by default. Can be limited with 'maxFeeRate'.
Minimum: >= 2
Maximum: <= 1000
feeRateOne of
Custom minimum fee rate in a coin's base unit per kilobyte (or virtual kilobyte)--for example, satoshis per kvByte or microAlgos per kByte. For xrp, it refers to the open ledger fee in drops (1 XRP = 1000000 drops) and the actual fee used is usually 4.5 times the open ledger fee. 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 , a flat 1000 microAlgos or a flat 10 drops of xrp).
Example: null
maxFeeRateOne of
Custom upper limit for fee rate in a coin's base unit per kilobyte (or virtual kilobyte)--for example, satoshis per kvByte or microAlgos per kByte. 'maxFeeRate' can be used to limit a fee rate estimate generated with 'numBlocks'.
Example: null
Match pattern: ^-?\d+$
feeMultiplierOne of
Custom multiplier for fee rate. Suggested to be used in conjunction with 'maxFeeRate' for higher priority transactions, or transactions which may not be broadcast for some time after being built. If used together with 'rbfTxIds' (RBF), it acts as an absolute fee multiplier for the transaction to be replaced. Must be greater than 0. Must be a number and greater than 1 if used for RBF.
Example: null
Match pattern: ^-?[\d\.]+$
minConfirmsinteger
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'.
enforceMinConfirmsForChangeboolean
When set to true, will enforce minConfirms for change outputs. Defaults to false.
Default: false
gasPriceOne of
Custom gas price to be used for sending the transaction. Only for ETH and ERC20 tokens.
Example: 2000000
Match pattern: ^-?\d+$
eip1559object
maxPriorityFeePerGasOne of
Example: 2000000
Match pattern: ^-?\d+$
maxFeePerGasOne of
Max total gasPrice for EIP1559 transactions. Only for ETH and ERC20 tokens.
Example: 2000000
Match pattern: ^-?\d+$
gasLimitOne of
Custom gas limit to be used for sending the transaction. Only for ETH and ERC20 tokens.
Example: 2000000
Match pattern: ^-?\d+$
targetWalletUnspentsinteger
Specifies the minimum count of good-sized unspents to maintain in the wallet. Change splitting ceases when the
wallet has 'targetWalletUnspents' good-sized unspents.
**Note**: Wallets that continuously send a high count of transactions will automatically split large change amounts
into multiple good-sized change outputs while they have fewer than 'targetWalletUnspents' good-sized unspents in
their unspent pool. Breaking up large unspents helps to reduce the amount of unconfirmed funds in flight in future
transactions, and helps to avoid long chains of unconfirmed transactions. This is especially useful for newly
funded wallets or recently refilled send-only wallets.
Default: 1000
minValueOne of
Ignore unspents smaller than this amount of base units (e.g. satoshis). For doge, only string is allowed.
Example: 2000000
Match pattern: ^-?\d+$
maxValueOne of
Ignore unspents larger than this amount of base units (e.g. satoshis). For doge, only string is allowed.
Example: 2000000
Match pattern: ^-?\d+$
sequenceIdstring
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.
noncestring
(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.
Example: 2000000
Match pattern: ^-?\d+$
noSplitChangeboolean
Set 'true' to disable automatic change splitting.
Also see: 'targetWalletUnspents'
Default: false
unspentsarray[string]
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'.
Specifies a custom destination address for the transaction's change output(s)
Max length: <= 250 characters
Example: 2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZS
txFormatstring
[UTXO only] Format of the returned transaction hex serialization.
'legacy' for serialized transaction in custom bitcoinjs-lib format. 'psbt' for BIP174 serialized transaction
Allowed values: legacypsbtpsbt-lite
Default: legacy
Example: psbt
instantboolean
(DASH only) Specifies whether or not to use Dash's "InstantSend" feature when sending a transaction.
memoobject
Memo for Stellar or EOS. Type is only required for memos in Stellar transactions. The memo contains optional extra information that can also be used to identify payments in Stellar or EOS.
typestring
valuestring
commentstring
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.
Max length: <= 256 characters
destinationChainstring
(AVAXC and AVAXP only) Destination chain for an AVAX import/export transaction. One of [P, C].
sourceChainstring
(AVAXC and AVAXP only) Source chain for an AVAX import/export transaction. One of [P, C].
addressTypestringdeprecated
DEPRECATED - use 'changeAddressType'.
The type of address to create for change. One of 'p2sh', 'p2shP2wsh', 'p2wsh', or 'p2tr'.
changeAddressTypeAny of
The address type for the change address. One of 'p2sh', 'p2shP2wsh', 'p2wsh', 'p2tr' or 'p2trMusig2'.
Allowed values: p2shp2shP2wshp2wshp2trp2trMusig2
Example: p2sh
startTimestring
Unix timestamp in seconds.nanoseconds format, denoting the start of the validity window. Only for HBAR transactions.
Example: 1714067129.1020603
consolidateIdstring
(ALGO/TEZOS only) Consolidation ID of this consolidation transaction.
Example: 59cd72485007a239fb00282ed480da1f
Match pattern: ^[0-9a-f]{32}$
lastLedgerSequenceinteger
(XRP only) Absolute max ledger the transaction should be accepted in, whereafter it will be rejected
ledgerSequenceDeltainteger
(XRP only) Relative ledger height (in relation to the current ledger) that the transaction should be accepted in, whereafter it will be rejected
rbfTxIdsarray[string]
The list of transactions to accelerate using Replace-By-Fee (RBF) for UTXO coins (currently accelerating only one tx is supported).
isReplaceableByFeeboolean
It is used to mark an UTXO transaction eligible for Replace-By-Fee (RBF) later.
validFromBlockinteger
Optional block this transaction is valid from
validToBlockinteger
Optional block this transaction is valid until
trustlinesarray[object]
List of trustlines to manage on the account. Available for Stellar.
tokenstring
One of the supported coin types for Stellar tokens listed in [Coin-specific-implementation](#tag/Coin-specific-implementation)
String representation of the amount to limit in base units (stroops)
Example: 2000000
Match pattern: ^-?\d+$
stakingOptionsAny of
Required object for staking. Only for CSPR and STX.
amountOne of
Required for CSPR. String representation of the amount to stake or unstake in base units (motes).
Example: 2000000
Match pattern: ^-?\d+$
validatorstring
Required for CSPR. The validator address used to delegate or undelegate.
Max length: <= 250 characters
Example: 2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZS
messageKeystring
Optional parameter that takes a hexadecimal value to set 'messagekey' for an XRP 'accountSet' transaction. Recipients field should be empty when 'messageKey' is set.
reservationobject
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.
expireTimestring<date-time>
Required. The time that the unspent reservations should expire.
recipientsarray[object]
A list of recipient addresses and amounts. Must be present but empty for Child-Pays-For-Parent transactions.
amountOne of
String representation of the amount to send in base units (satoshis/litoshis/zatoshis/duffs). For doge, only string is allowed.
Example: 2000000
Match pattern: ^-?\d+$
addressstring
The address to send to
Max length: <= 250 characters
Example: 2MvrwRYBAuRtPTiZ5MyKg42Ke55W3fZJfZS
memoAny of
A memo for this specific transaction. This format is only available for Stacks.
Max length: <= 100 characters
videoApproversarray[string]
A list of public ids of users that should do the video id verification for the transaction that is being sent or initiated.