Accelerate Transaction

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

Send a child-pays-for-parent (CPFP) transaction to accelerate the target unconfirmed transactions.

Background: In Bitcoin, a transaction can only be included in a block when all its inputs are confirmed. This requirement can be used to increase the effective fee rate of a stuck low-fee transaction. One of the stuck transaction's outputs is spent in a child transaction with a much higher fee. Miners include the transactions with the highest fees first to maximize their revenue, but the high-fee child transaction can only be included once the parent transaction is confirmed. The miners are therefore incentivized to include both the parent and the child transaction together in a block. A child-pays-for-parent transaction can be created by a recipient of the transaction or by the sender if the target transaction has a change output.

Notes:

  1. As other coins do not have a blockspace market, this route is only available for Bitcoin at this time.
  2. If a target transaction depends on other unconfirmed transactions, this route adds sufficient fees to elevate the entire transaction ancestry's effective fee rate to the "cpfpFeeRate".

Path Parameters

  • coinstringRequired
    This route is only available for Bitcoin.
    Enum: btctbtc
  • walletIdstringRequired
    Example: "59cd72485007a239fb00282ed480da1f"
    Pattern: ^[0-9a-f]{32}$

Request Body

cpfpTxIds array[string]
txids of the transactions to bump **Notes**: Each target unconfirmed transaction must be sending funds to the calling wallet. Accepts only a single txid at this stage.
cpfpFeeRate integer
Desired effective feerate of the bumped transactions and the CPFP transaction in satoshi per kilobyte
maxFee integer
Maximum allowed fee for the CPFP transaction in satoshi **Note**: A CPFP transaction accelerates the target transactions and all of the unconfirmed transactions the target transactions depends on. As 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.

200 Response

transfer object
New transfer
coin string required
A cryptocurrency or token ticker symbol.
Example: btc
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