Skip to content

Descriptor Export

This feature allows export of output script descriptors from COLDCARD® Mk4 signing device according to BIP-380.

Exporting single signature descriptors#

(new in v5.1.0, requires Mk4)

  1. Go to Advanced/Tools -> Export Wallet -> Descriptor where you are greeted with screen explaining that you will be exporting ranged XPUB descriptor.

    desc_export demo

  2. Press (1) if you wish to change account number, OK to continue with account 0.

  3. On next screen choose if you wish to export new descriptor type that contains internal and external in one descriptor (<0;1> notation) or if you wish to export them separately. This mostly depends on concrete wallet support (Sparrow already supports new descriptor type).

    desc_export demo

  4. On next screen choose desired address format (script type). Options are legacy (p2wpkh), nested segwit (p2sh-p2wpkh), and native segwit (p2wpkh).

    desc_export demo

  5. Last screen (optional - will only appear if Virtual Disk or NFC is enabled) prompts you to choose desired way to export descriptor. Options are SD card, Virtual Disk and NFC.

Exported new descriptor type for account 0 with native segwit address type:

wpkh([0f056943/84h/0h/0h]xpub6CaWStGvcXqM8BH3Grg4Ae1SrRhXPN67Sr3HJoEZLmz51QaR9a7wSD5gRBVtTSH7mKsfoAEScB8jRPsWX1VBayBFYKUNwG7JqhWczbq4U99/<0;1>/*)#l07d6h6y

Exported internal and external descriptors for account 999 with nested segwit address type:

sh(wpkh([0f056943/49h/0h/999h]xpub6DDm8WzH5aAWChymztgky27UsxvetpdQaGRiPgt8crNFTuf8ZTUhKsugcTyYVWzHHrHUYp7pzD9zAbogN5k5ogPtmSuWyDSxTxQPxYUYHf1/0/*))#23qvw4f0
sh(wpkh([0f056943/49h/0h/999h]xpub6DDm8WzH5aAWChymztgky27UsxvetpdQaGRiPgt8crNFTuf8ZTUhKsugcTyYVWzHHrHUYp7pzD9zAbogN5k5ogPtmSuWyDSxTxQPxYUYHf1/1/*))#vjgf4czm

Application Specific Descriptors#

  1. Go to `Advanced/Tools -> Export Wallet
  2. Choose your desired application specific descriptor.

  3. Samourai Postmix

  4. Samourai Premix.

    desc_export demo

If you wish to add application specific descriptor export from your project, please contact [email protected]

Exporting multi signature descriptors#

(new in v5.0.5, requires Mk4)

  1. Go to Settings -> Multisig Wallets -> <your multisig wllet>
  2. Choose Descriptors menu item

    desc_export demo

  3. Exporting multisig descriptor to file (on SD card or on Virtual disk) or share it via NFC:

  4. In View Descriptor you can inspect multisig desciptor with actually exporting it. You can also press (1) inside View Descriptor to export it in nice human-readable format with comments.
  5. Choose Export to export bare multisig descriptor.
  6. Choose Bitcoin Core to export importdescriptors rpc command ready to be executed against Bitcoin Core client.

Exported bare multi signature descriptor:

wsh(sortedmulti(2,[0f056943/48h/1h/0h/2h]tpubDF2rnouQaaYrXF4noGTv6rQYmx87cQ4GrUdhpvXkhtChwQPbdGTi8GA88NUaSrwZBwNsTkC9bFkkC8vDyGBVVAQTZ2AS6gs68RQXtXcCvkP/0/*,[7575334b/44h/1h/0h]tpubDCnmwfrYynsdiqpRZ1UNhuVfpbqvxjXgW9JBoAed7nXeGPGUYFTgJDJ83J6QPqyTc6ARq3Tens739SLbjuQmh8NgJmhBQ9gKfgoT8E36Ebt/0/*))#977ap7x5

Exported multi signature descriptor in pretty human readable format:

# Coldcard descriptor export
# order of keys in the descriptor does not matter, will be sorted before creating script (BIP67)
# native segwit - p2wsh
wsh(sortedmulti(
    # 2 of 2 (requires all participants to sign)
    2,
    [0f056943/48h/1h/0h/2h]tpubDF2rnouQaaYrXF4noGTv6rQYmx87cQ4GrUdhpvXkhtChwQPbdGTi8GA88NUaSrwZBwNsTkC9bFkkC8vDyGBVVAQTZ2AS6gs68RQXtXcCvkP/0/*,
    [7575334b/44h/1h/0h]tpubDCnmwfrYynsdiqpRZ1UNhuVfpbqvxjXgW9JBoAed7nXeGPGUYFTgJDJ83J6QPqyTc6ARq3Tens739SLbjuQmh8NgJmhBQ9gKfgoT8E36Ebt/0/*
))#977ap7x5

Bitcoin Core export:

importdescriptors '[{"active": true, "timestamp": "now", "range": [0, 100], "internal": false, "desc": "wsh(sortedmulti(2,[0f056943/48h/1h/0h/2h]tpubDF2rnouQaaYrXF4noGTv6rQYmx87cQ4GrUdhpvXkhtChwQPbdGTi8GA88NUaSrwZBwNsTkC9bFkkC8vDyGBVVAQTZ2AS6gs68RQXtXcCvkP/0/*,[7575334b/44h/1h/0h]tpubDCnmwfrYynsdiqpRZ1UNhuVfpbqvxjXgW9JBoAed7nXeGPGUYFTgJDJ83J6QPqyTc6ARq3Tens739SLbjuQmh8NgJmhBQ9gKfgoT8E36Ebt/0/*))#977ap7x5"}, {"active": true, "timestamp": "now", "range": [0, 100], "internal": true, "desc": "wsh(sortedmulti(2,[0f056943/48h/1h/0h/2h]tpubDF2rnouQaaYrXF4noGTv6rQYmx87cQ4GrUdhpvXkhtChwQPbdGTi8GA88NUaSrwZBwNsTkC9bFkkC8vDyGBVVAQTZ2AS6gs68RQXtXcCvkP/1/*,[7575334b/44h/1h/0h]tpubDCnmwfrYynsdiqpRZ1UNhuVfpbqvxjXgW9JBoAed7nXeGPGUYFTgJDJ83J6QPqyTc6ARq3Tens739SLbjuQmh8NgJmhBQ9gKfgoT8E36Ebt/1/*))#vkk0fv6f"}]'