cryptoadvance / specter-desktop

A desktop GUI for Bitcoin Core optimised to work with hardware wallets
MIT License
808 stars 238 forks source link

Manually add new public keys to existing device #696

Open zanepocock opened 3 years ago

zanepocock commented 3 years ago

At the moment, if you want to add more keys to, say, a Trezor, the only option is to plug in the device. It would be nice to be able to manually add these just like you can when you manually create a new device.

zanepocock commented 3 years ago

Anyone else trying to do the same: for now, it seems you can change the Device Type to 'Other' and you can do this. Then switch back.

stepansnigirev commented 3 years ago

Yes, we did it on purpose because people were making mistakes - pasting xpubs without derivations or with a wrong derivation, using them for a wrong purpose etc. So we made it harder. As you figured out it's still possible, but you need to make a few extra steps to do it.

k9ert commented 3 years ago

I'm not sure i understand the value of that "feature". Would you be fine with closing that as "won't fix"?

yunier2002 commented 3 years ago

This should be an option, even if advanced or more hidden. But that workaround of changing to other and back is not the correct solution. And we definitely need this as an option for all user types. Trying to add custom wallets from Unchained Capital for example that uses a custom m/45/0/0/0 derivation path is not possible since most hardware wallets don't add that one even if you plug them in.

ben-kaufman commented 3 years ago

You can actually do this already without this bypass. To add a custom derivation XPUB via USB, click either add new device and select the device type, or to add for an existing device just go to the device page and click Add more keys. Then you'll have this table with edit button at the top right corner:

Screen Shot 2020-12-02 at 9 13 05

Click it, then you'll have a new row at the bottom with an Add custom derivation button:

Screen Shot 2020-12-02 at 9 13 11

Click it, and it'll open a row where you can enter XPUB name (anything you want) and the custom derivation (i.e. m/45/0/0/0), and at the row end you'll have an add button you should click after filling in both details:

Screen Shot 2020-12-02 at 9 14 09

Now click on the Get via USB at the bottom and wait for it to import all xpubs.

Screen Shot 2020-12-02 at 9 14 18

After that just click Add device/ keys (if existing device) at the bottom, then create a new wallet and you'll be able to select between xpubs on the screen where you name the wallet. Just make sure to select the right xpub according to name and derivation and you'll be able to use the wallet with custom derivation.

yunier2002 commented 3 years ago

Thanks for that explanation Ben, I got to say that's not intuitive at all in the UI, I was looking for a way to enter the XPUB manually myself on that screen. Didn't know I'll have to go through USB/File instead, can we have an advanced option to enter all these manually including the XPUB? For some of the wallets, I need to enter it for 3rd party providers that I don't have an HW. Thanks again!

ben-kaufman commented 3 years ago

Hi, I think for the 3rd party providers, since you should add them as a separate device, you should choose "Other" as their device type. If you do that, then you'll have an option to paste an xpub which will get added to the list then.