Recover Advanced Wallet
Recover assets from an advanced wallet using user and backup keys. See the Guide.
-
You set the environment variable
RECOVERY_MODE=truefor both the Advanced Wallet Manager and Master BitGo Express services in yourdocker-compose.ymlfile. This enables recovery operations. -
You start both the AWM and MBE services in recovery mode using
docker-compose up -d. Check the logs to verify that recovery mode is enabled. -
You call the recovery endpoint with your key material. For MPC wallets, pass
isTssRecovery: truewith thecommonKeychain. For multisignature wallets, passisTssRecovery: falsewithuserPub,backupPub, andbitgoPub. The AWM retrieves keys from the advanced wallets key provider, signs the transaction with both the user and backup keys, and returns the signed transaction hex.Recovery parameters vary by signature scheme: MPC (EdDSA), MPC (ECDSA EVM), MPC (Cosmos SDK), Multisig (UTXO), and Multisig (EVM) each require different
coinSpecificParams. -
You broadcast the signed transaction hex to the network using a blockchain explorer or CLI tool. For Bitcoin/UTXO networks, use
bitcoin-cli sendrawtransaction. For Ethereum/EVM networks, useeth_sendRawTransaction. For Solana, usesolana send-transaction. You receive a transaction ID to track the recovery on a blockchain explorer.
// 1. Configure Recovery Mode
# In your docker-compose.yml file
# Set RECOVERY_MODE=true for both services:
# advanced-wallet-manager:
# environment:
# - RECOVERY_MODE=true
# master-bitgo-express:
# environment:
# - RECOVERY_MODE=true
// 2. Start Services
docker-compose up -d
docker-compose logs
// 3. Recover Assets
export IP_OR_HOSTNAME="<YOUR_SERVER_IP_OR_HOSTNAME>"
export COIN="<ASSET_ID>"
export ACCESS_TOKEN="<YOUR_ACCESS_TOKEN>"
export COMMON_KEYCHAIN="<COMMON_KEYCHAIN>"
export RECOVERY_ADDRESS="<DESTINATION_ADDRESS>"
export API_KEY="<BLOCKCHAIN_EXPLORER_API_KEY>"
curl -X POST \
http://$IP_OR_HOSTNAME/api/v1/$COIN/advancedwallet/recovery \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d '{
"isTssRecovery": true,
"tssRecoveryParams": {
"commonKeychain": "'"$COMMON_KEYCHAIN"'"
},
"recoveryDestinationAddress": "'"$RECOVERY_ADDRESS"'",
"apiKey": "'"$API_KEY"'"
}'
// 4. Broadcast the Recovery Transaction
# Bitcoin & UTXO Blockchains:
bitcoin-cli sendrawtransaction "<TX_HEX>"
# Ethereum & EVM Blockchains:
curl -X POST \
https://mainnet.infura.io/v3/YOUR_PROJECT_ID \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"method": "eth_sendRawTransaction",
"params": ["<TX_HEX>"],
"id": 1
}'
// 1. Configure Recovery Mode
// Set RECOVERY_MODE=true in your docker-compose.yml (see cURL tab)
// 2. Start Services
// Run docker-compose up -d (see cURL tab)
// 3. Recover Assets
// Use the REST API via cURL for advanced wallet recovery (see cURL tab)
// 3. Recover Assets Response
{
"txHex": "0x02f8b38201a48459682f008459682f0e8303d09094a2c8e69f90f5e16b6f9e4e3c6c9a9e5f7a3b4d6580b844a9059cbb0000000000000000000000001234567890123456789012345678901234567890000000000000000000000000000000000000000000000000000000000000000ac001a0d5e7b0f2f4e3c6d9a8b7c6d5e4f3a2b1c0d9e8f7a6b5c4d3e2f1a0b9c8d7e6a05a04b8c7d6e5f4a3b2c1d0e9f8a7b6c5d4e3f2a1b0c9d8e7f6a5b4c3d2e1"
}
// 4. Broadcast the Recovery Transaction Response
{
"result": "8747673834d6c71560a2816963585718567419020dc58151d2f7e1ed8c57de14"
}