MPC Error Recovery - MPC Full

Recover failed MPC Full withdrawal transactions using sequenceId. See the Guide.

  1. Use the sequenceId to check the status of a failed transaction request. If BitGo hasn't registered the sequenceId, you can safely retry the original withdrawal. However, if BitGo has registered the sequenceId and the state response field is pendingDelivery, then continue to the next step to rebuild, re-sign, and send the transaction request.

    Prerequisites: Initiate a withdrawal with a unique sequenceId (see Withdraw Overview).

    API Reference

  2. Use the MPC Full recovery script to rebuild, re-sign, and broadcast a failed transaction. The script uses the sequenceId to look up the transaction request and checks if it is in a recoverable state (pendingDelivery). It then deletes the existing signature shares, re-signs the transaction through BitGo Express, and retries up to 3 times. Terminal states (delivered, canceled, rejected, failed) cause the script to exit gracefully.

    API Reference

// 1. Check Status
export COIN="<ASSET_ID>"
export WALLET_ID="<YOUR_WALLET_ID>"
export SEQUENCE_ID="<YOUR_SEQUENCE_ID>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"

curl -X GET \
  "https://app.bitgo-test.com/api/v2/$COIN/wallet/$WALLET_ID/txrequests?sequenceId=$SEQUENCE_ID" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ACCESS_TOKEN"
// 2. Rebuild Transaction Request
// Use the JavaScript SDK for this step (see JavaScript tab)
Response
// 1. Check Status Response
{
  "txRequests": [
    {
      "intent": {
        "selfSend": true,
        "intentType": "payment",
        "recipients": [
          {
            "address": {
              "address": "string",
              "option": {}
            },
            "data": "string"
          }
        ],
        "sequenceId": "string",
        "comment": "string",
        "nonce": "string",
        "receiveAddress": "string",
      },
      "apiVersion": "full",
      "txRequestId": "123e4567-e89b-12d3-a456-426614174000",
      "idempotencyKey": "string",
      "walletId": "59cd72485007a239fb00282ed480da1f",
      "walletType": "hot",
      "version": 0,
      "enterpriseId": "59cd72485007a239fb00282ed480da1f",
      "state": "pendingDelivery",
      "date": "2025-04-24T00:00:00.000Z",
      "createdDate": "2025-04-24T00:00:00.000Z",
      "userId": "string",
      "initiatedBy": "string",
      "pendingApprovalId": "string",
      "policiesChecked": true,
    }
  ]
}