Sweep funds

post/api/v2/{coin}/wallet/{walletId}/sweep

The sweep call spends the full balance of the wallet to the provided address. On UTXO coins, the sweep call will fail if the wallet has any unconfirmed funds, or if there are more unspents than can be sent with a single transaction.

Path Parameters

  • coinstringRequired
    A cryptocurrency or token ticker symbol.
    Example: "btc"
  • walletIdstringRequired
    Example: "59cd72485007a239fb00282ed480da1f"
    Pattern: ^[0-9a-f]{32}$

Request Body

address string
The destination address for the sweep transaction
walletPassphrase string
Passphrase to decrypt the user key on the wallet
xprv string
Private key in string form, if walletPassphrase is not available
otp string
Two factor auth code to enable sending the transaction
feeTxConfirmTarget string
Number of blocks to wait to confirm the transaction
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. 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).
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".
allowPartialSweep boolean
Use "allowPartialSweep: true" to sweep part of a wallet when there are too many unspents to empty the wallet in a single transaction. While the expected outcome of a single sweep call would usually be an empty wallet, using the allowPartialSweep option may leave some funds in the wallet. Making repeated calls with the allowPartialSweep option allows emptying wallets with many unspents without consolidating first.
Default: false
javascript
1 2 3 4 5 6 7 8 let params = { address: '2MwvR24yqym2CgHMp7zwvdeqBa4F8KTqunS', walletPassphrase: 'secretpassphrase1a5df8380e0e30', }; wallet.sweep(params).then(function (transactionInfo) { // print transaction info console.dir(transactionInfo); });

200 Response

transfer object
New transfer
txid string required
The on-chain transaction id
Example: b8a828b98dbf32d9fd1875cbace9640ceb8c82626716b4a64203fdc79bb46d26
height integer required
The height of the block this Transfer was confirmed in (999999999 if unconfirmed)
heightId string
The unique height id of the block
date string <date-time>required
The date this Transfer was last updated
type string required
Defines whether or not this Transfer was sent or received by the user
Allowed values: send receive
value integer
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 string required
The total value (in base units) sent by this Transfer represented as a String
Example: 2000000
Match pattern: ^-?\d+$
baseValue integer
The value (in base units) sent by this Transfer without network fees, represented
baseValueString
The value (in base units) sent by this Transfer without network fees, represented as a String
feeString string
The Transfer's fee (in base units) represented as a String
payGoFee integer
The Transfer's BitGo fee (in base units)
payGoFeeString string
The Transfer's BitGo fee (in base units) represented as a String
usd number required
The amount of USD of this Transfer (will be negative if it's a send)
usdRate number required
The USD price at the time this Transfer was created
state string required
The status of this Transfer
Allowed values: signed unconfirmed confirmed pendingApproval removed failed rejected
Example: confirmed
tags array required
The tags to be used on this Transfer (used in Policies)
history array[object] required
An audit log of events that have happened to the Transfer during its lifecycle
comment string required
A comment from the user
vSize integer
The size of the transaction
coinSpecific object required
Transfer fields specific to each coin type
sequenceId string
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.
entries array[object]
An array of objects describing the change in address balances made as a result of this Transfer
usersNotified boolean
Whether BitGo already sent notifications to the users of the transfer wallet
txid string
Unique transaction identifier
tx string
Encoded transaction hex (or base64 for XLM)
status string
Transfer status
Allowed values: signed signed (suppressed) pendingApproval

400 Response

One of
error string required
Human-readable error message
requestId string required
Client request id
context object
Properties that apply to a specific error name
name string required
Error code