Sign MPC transaction

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

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.

Path Parameters

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

Request Body

Any of
txRequestId string required
A unique ID for the TxRequest document across all wallets. The combination of the txRequestId and version will always be unique.
version number required
The version of the document. Data changes are done only with inserts and incrementing the version.
latest boolean required
A boolean flag that indicates whether the document is the latest version of the TxRequest.
walletId string required
The id of the Wallet the TxRequest is for.
walletType string
The type describes who owns the keys to the wallet associated to the TxRequest.
Allowed values: cold custodial custodialPaired hot trading distributedCustody
enterpriseId string
If the wallet that owns the TxRequest is owned by an enterprise then this is the Id of said enterprise.
state string required
Allowed values: initialized pendingApproval pendingUserCommitment pendingUserRShare pendingUserGShare readyToSend pendingUserSignature pendingDelivery signed delivered canceled rejected failed
date string <date-time>required
The date and time this version of the TxRequest document was created.
Example: 2018-05-05T19:46:22.019Z
createdDate string <date-time>required
The date and time the version 1 TxRequest document was created.
Example: 2018-05-05T19:46:22.019Z
userId string required
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 string required
The Id of the User that originally created the TxRequest document (initiated the TxRequest).
updatedBy string required
The Id of the User that last updated the TxRequest document. This is an alias for the userId field.
intentAny ofrequired
intentType string required
Allowed value: stake
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 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.
Example: abc123
comment string
The 'comment' is only visible to users on the wallet and is not shared publicly.
nonce string
The 'nonce' of a transaction (optional)
memo string
A 'memo' is an additional address feature necessary for identifying a transaction recipient beyond wallet address.
stakingRequestId string required
poolKeyHash string required
The pool key hash to which the coins will be delegated to.
intentsrequired
intentType string required
Allowed value: stake
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 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.
Example: abc123
comment string
The 'comment' is only visible to users on the wallet and is not shared publicly.
nonce string
The 'nonce' of a transaction (optional)
memo string
A 'memo' is an additional address feature necessary for identifying a transaction recipient beyond wallet address.
stakingRequestId string required
poolKeyHash string required
The pool key hash to which the coins will be delegated to.
pendingApprovalId string
The id of the Pending Approval that was created for the TxRequest if one was required.
isCanceled boolean
True, if the transaction request is canceled.
unsignedTxs array[object]
Holds all unsigned transactions that will be used to fulfill the TxRequest for MPC wallets.
serializedTxHex string required
The unsigned transaction as a hex string.
signableHex string required
The portion of a transaction used to generate a signature (may or may not be the same as serializedTxHex) as a hex string.
derivationPath string
A bip32 path.
feeInfo object
coinSpecific object
Coin specific information.
parsedTx object
The parsed transaction information.
signatureShares array[object]
Only used for MPC coins. This is used to collect signature shares from and exchange them with the user.
from string required
The source of the signature share.
Allowed values: user backup bitgo
Example: user
to string required
The recipient of the signature share.
Allowed values: user backup bitgo
Example: user
share string required
The signature share.
commitmentShares array[object]
Only used for MPC coins on EdDSA curve. This is used to collect commitment shares from and exchange them with the user.
from string required
The source of the commitment share.
Allowed values: user backup bitgo
Example: user
to string required
The recipient of the commitment share.
Allowed values: user backup bitgo
Example: user
share string required
The commitment share.
type string required
The type of the commitment share.
Allowed value: commitment
Default: commitment
Example: commitment
txHashes array[string]
The hashes of all transactions from the TxRequest that have been signed and are pending broadcast.

200 Response

Any of
txRequestId string required
A unique ID for the TxRequest document across all wallets. The combination of the txRequestId and version will always be unique.
version number required
The version of the document. Data changes are done only with inserts and incrementing the version.
latest boolean required
A boolean flag that indicates whether the document is the latest version of the TxRequest.
walletId string required
The id of the Wallet the TxRequest is for.
walletType string
The type describes who owns the keys to the wallet associated to the TxRequest.
Allowed values: cold custodial custodialPaired hot trading distributedCustody
enterpriseId string
If the wallet that owns the TxRequest is owned by an enterprise then this is the Id of said enterprise.
state string required
Allowed values: initialized pendingApproval pendingUserCommitment pendingUserRShare pendingUserGShare readyToSend pendingUserSignature pendingDelivery signed delivered canceled rejected failed
date string <date-time>required
The date and time this version of the TxRequest document was created.
Example: 2018-05-05T19:46:22.019Z
createdDate string <date-time>required
The date and time the version 1 TxRequest document was created.
Example: 2018-05-05T19:46:22.019Z
userId string required
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 string required
The Id of the User that originally created the TxRequest document (initiated the TxRequest).
updatedBy string required
The Id of the User that last updated the TxRequest document. This is an alias for the userId field.
intentAny ofrequired
intentType string required
Allowed value: stake
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 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.
Example: abc123
comment string
The 'comment' is only visible to users on the wallet and is not shared publicly.
nonce string
The 'nonce' of a transaction (optional)
memo string
A 'memo' is an additional address feature necessary for identifying a transaction recipient beyond wallet address.
stakingRequestId string required
poolKeyHash string required
The pool key hash to which the coins will be delegated to.
intentsrequired
intentType string required
Allowed value: stake
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 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.
Example: abc123
comment string
The 'comment' is only visible to users on the wallet and is not shared publicly.
nonce string
The 'nonce' of a transaction (optional)
memo string
A 'memo' is an additional address feature necessary for identifying a transaction recipient beyond wallet address.
stakingRequestId string required
poolKeyHash string required
The pool key hash to which the coins will be delegated to.
pendingApprovalId string
The id of the Pending Approval that was created for the TxRequest if one was required.
isCanceled boolean
True, if the transaction request is canceled.
unsignedTxs array[object]
Holds all unsigned transactions that will be used to fulfill the TxRequest for MPC wallets.
serializedTxHex string required
The unsigned transaction as a hex string.
signableHex string required
The portion of a transaction used to generate a signature (may or may not be the same as serializedTxHex) as a hex string.
derivationPath string
A bip32 path.
feeInfo object
coinSpecific object
Coin specific information.
parsedTx object
The parsed transaction information.
signatureShares array[object]
Only used for MPC coins. This is used to collect signature shares from and exchange them with the user.
from string required
The source of the signature share.
Allowed values: user backup bitgo
Example: user
to string required
The recipient of the signature share.
Allowed values: user backup bitgo
Example: user
share string required
The signature share.
commitmentShares array[object]
Only used for MPC coins on EdDSA curve. This is used to collect commitment shares from and exchange them with the user.
from string required
The source of the commitment share.
Allowed values: user backup bitgo
Example: user
to string required
The recipient of the commitment share.
Allowed values: user backup bitgo
Example: user
share string required
The commitment share.
type string required
The type of the commitment share.
Allowed value: commitment
Default: commitment
Example: commitment
txHashes array[string]
The hashes of all transactions from the TxRequest that have been signed and are pending broadcast.