Export Passport keystore with custom derivation path

I’m trying to set up a collaborative custody multisig wallet in sparrow. I hold two keys the custodian holds one key. I imported the wallet config file in sparrow which creates a watch only version of each keystore in sparrow. I want to be able to send from sparrow so I need to import the keystore for two of the keys.

On one device when I import the keystore it gives me the option to choose a custom derivation path. But I can’t figure out how to do the same thing with Passport. Is there a way to create a sparrow keystore import file with a custom derivation path using Passport?

I’m using Passport firmware 2.3.5

We don’t have a custom export feature just yet, but if you can share a little more info on the setup I might be able to help with an alternative solution.

Is the derivation path you need to change at the account or script type level? Would also be helpful to know what the service is so I can check their documentation.

I’m working with Unchained. The wallet config file that gets exported from Unchained is essentially:

Derivation1: m/x/x/x/x
Fingerprint1:
xpub1

Derivation2: m/x/x/x/x
Fingerprint2:
xpub2
etc

When I look at the sparrow-multisig json from passport it contains:
“p2sh_deriv”: “m/45’”,
“p2sh”: "xpub

The derivation path I want is m/45’/0/0/0. I wasn’t sure if I can simply replace the p2sh_deriv and xpub with the values from the Unchained wallet config and import the json in sparrow.

Thanks

Just to clarify, is the wallet on Passport one of the three keys used when setting up your Unchained vault? If yes, after importing the wallet config file from Unchained to Sparrow, have you tried to export this into Passport?

On Sparrow you would head to Settings > Export > Passport multisig > Show. Then on Passport you’d head to Settings > Bitcoin > Multisig > Import from QR and scan the QR code Sparrow is displaying.

Yes I used Passport as one of the three keys when setting up the Unchained vault. I know they claim to not support Passport but it didn’t give me any errors when I created the vault.

I didn’t export from Sparrow to Passport. When I imported the wallet config file from Unchained into Sparrow, I also imported the Unchained wallet config file into Passport. Passport > Settings > Bitcoin > Multisig > Import from microSD.

Would importing the Unchained wallet config file into Sparrow and Passport be the same as importing the Unchained wallet config file into Sparrow then Sparrow export to Passport?

I’m able to do the Sparrow to Passport method if that is the proper order of operations.

If Passport accepted the Unchained config file without error then you should be good to go. Have you tried signing a transaction to test?

I wanted to send a small test transaction to the vault and then try sending it back out to confirm I could sign with Passport. But since it’s a Roth IRA account Unchained said I couldn’t send bitcoin directly to the vault (taxes blah blah). If there is a way to sign a transaction without first sending bitcoin to the vault I’m unaware how to do that. Please forgive me, I’m new to multisig.

One more note, I did do a receive address verification with the Unchained vault and Passport and it matched correctly which I assume is a good sign. I also tried exporting the Sparrow multisig config file to Passport and it said duplicate multisig wallet which is probably another good sign.

Maybe I’m overthinking this, but the part that made me worried was when I imported the Passport keystore into Sparrow I had to manually edit the json file to get the addresses/xpub to match. And I was nervous I wasn’t doing something correctly.

There isn’t a way to sign for a transaction from a multisig wallet before there are any coins there unfortunately, but the fact that you were able to import the config file and verify a receive address is a great indicator that everything is working as expected.

You shouldn’t need to edit any files, just import the vault file from Unchained into Sparrow and Passport that’s it.

Any plans to officially integrate with Unchained in the future? I am using their services and, as @kg2025 stated, they claim not to support Passport officially yet. I’d really like to be able to start experimenting using psbt’s on Passport!

Everything is waiting for them. We’ve been waiting for them to add QR based signer support for some time now. As a customer it would be a big help for us if you could also let them know you’d love Passport integration.

Will absolutely let them know!

1 Like

I let Unchained know as well. I was able to get the Unchained vault software to allow me to create a vault using Passport by selecting Cold Card in the creation process. I haven’t officially signed a transaction as my final test yet, but based on my conversation from qna it does seem doable currently even though it’s not officially supported.

3 Likes

It is. We’ve had a few people do the same thing in the past.

Thanks for letting the guys over there know!

1 Like

As a follow-up to this thread, I was able to sign transactions using Passport as one of the keys in an Unchained vault. The one issue I have remaining is performing the 6 month key checks. Unchained requests a Coldcard formatted json file for the key check. Is there a way I can export the same information from Passport and format it manually to complete the key check?

Passport can sign messages, but I’m not sure they are in the format requested by Unchained. If you can share one with me privately, I can take a deeper dive.

I maybe misunderstanding but I don’t think Unchained is asking me to sign a message. I think they just need me to upload a json file containing the xpub in a specific format. I don’t have a coldcard so I don’t know how the information in the json file is supposed to be organized.

Here is Unchained instructions:

  1. Insert the micro SD card into your Coldcard.
  2. Power on your Coldcard and enter your PIN.
  3. On the Coldcard, go to Settings > Multisig Wallets > Export XPUB.
  4. When prompted with a message, “This feature creates a small file containing the extended public keys…”
  5. Enter 0 for the account number. The .json file will be generated and saved to your micro SD card.
  6. Remove the micro SD card from the Coldcard and insert it into your computer’s micro SD card reader.
  7. In your Unchained account, click on Upload the XPUB.
  8. Locate the .json file and upload it to Unchained.

Ah OK. Try exporting the Sparrow multisig wallet connect JSON from Passport and see if Unchained takes that.

Good idea, but unfortunately it didn’t work. After your suggestion I also tried exporting the Caravan (Unchained Open Source Software i think?) file. But they didn’t accept that either. I could technically buy a Coldcard and do the export so I know what the json needs to have in it so it gets accepted. I would be out the money since I don’t have a use for one currently but at least I could post a sample file format to the forum so others can use the work around also. Or Unchained should add native Passport support :frowning:

The latter would be a much slicker solution! Feel free to register your interest with them! We’ve been trying for some time.

Hey everyone, I am a product manager at Unchained just learning more about the passport. Mine is still in the mail so I haven’t been able to test all of these flows. I came here mainly looking to see if the passport core does export m/45’ or at the very least allow for a custom xpub export. It seems there may be some work that has to be done here to support it. @qna would love to establish comms between Unchained and Foundation. Please reach out to me over email jbrauckmann@unchained.com and I will get a signal chat set up between our team and whoever you would like to be in it. Thank you.