Skip to content

Descriptor Export

This feature allows the export of output script descriptors from COLDCARD® signing devices according to BIP-380. If the export is saved to an SD card or the Virtual Disk, the COLDCARD will also export a signature file.

Exporting Single Signature Descriptors#

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

    mk4 nav to desc q nav to desc

  2. To continue with the default account of 0, press /ENTER.

    • Hit 1 if you want to use a different account, and then enter it on the next screen.

      mk4 account q account

  3. On the next screen, hit /ENTER if you wish to export internal (receiving) and external (change) descriptors in one (<0;1> notation), or tap 1 if you'd like to export them separately.

    This decision mostly depends on what your external wallet supports (Sparrow supports combined descriptors).

    mk4 desc type q desc type

  4. Next, select the desired address format (script type).

    mk4 addr type q addr type

    • Segwit P2WPKH: The modern, efficient Bitcoin address, starting with bc1.
    • Classic P2PKH: The original Bitcoin address, starting with 1.
    • P2SH-Segwit: Wrapped segwit address, starting with 3.
  5. The last screen prompts you to pick how to export the descriptor.

    mk4 export type q export type

    • Press 1 to save to the SD card (Slot A on the Q).
    • Q only: hit B to save to the SD card in Slot B.
    • Tap 2 to save to the Virtual Disk (must be enabled).
    • Press 3/NFC to share via NFC (must be enabled).
    • Hit 4/QR to show as a QR code.

Single Signature Descriptor Examples#

Combined internal and external descriptors for account 0 with the Segwit P2WPKH address type:

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

Separate internal and external descriptors for account 999 with the P2SH-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.

    • Samourai Postmix
    • Samourai Premix

    mk4 app desc q app desc

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

Exporting Multi Signature Descriptors#

  1. Go to Settings > Multisig Wallets > <your multisig wallet>.

    mk4 nav to ms desc q nav to ms desc

  2. Choose Descriptors from the menu.

  3. View the descriptor or export it to an SD card, Virtual Disk, QR, or NFC.

    mk4 ms desc menu q ms desc menu

    • View Descriptor: You can inspect the multisig descriptor without actually exporting it. Pressing 1 while inside View Descriptor will export it in a nice human-readable format with comments.
    • Export: Export a bare multisig descriptor.
    • Bitcoin Core: Export an importdescriptors rpc command ready to be executed against the Bitcoin Core client.
  4. After selecting an export format, choose what to do with the export.

    mk4 ms export type q ms export type

    • Press 1 to save to the SD card (Slot A on the Q).
    • Q only: hit B to save to the SD card in Slot B.
    • Tap 2 to save to the Virtual Disk (must be enabled).
    • Press 3/NFC to share via NFC (must be enabled).
    • Q only: use QR to show as a QR code.

Multi Signature Descriptor Examples#

Bare multi signature descriptor:

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

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"}]'