Skip to content

Export JSON/PDF for single/multi signature omit change address branch #2494

@tadeubas

Description

@tadeubas

Describe the bug
When creating a single/multi signature with ambiguous XPUB (i.e. without branch/output address info), Specter export the wallet with branch/output address for receive only (branch /0/*).

To Reproduce
Example steps to reproduce the behavior:

"Add wallet > Single Signature > Add new device > SeedSigner > Scan QR Code [e0c595c5/84'/0'/0']zpub6qV6TyVkDQsoP6XnSgLJxoH7YunCwUKzPZq3FhccdoQT7uS9w5hDo45tLpRQxr6P3FJnwWaCnYJcZSQiXif5WnPQ5rN2yMRHAE5ZyTzQvre and give device a name > Continue > Create single key wallet > give wallet a name and Create wallet > Save Backup PDF"

The first page of the PDF has the QR Code with descriptor as /0/* without change address info:

{"label": "a name", "blockheight": 481824, "descriptor": "wpkh([669dce62/84h/0h/0h]xpub6Cygb51hbAxuxKQ4hwVV5z6YvhauXbhDexEuA7EoAq9DkejbuF2najEM3YdY2BvC39XYa9nHE3R9QWr2yYgTU58LTNQ7ipFQoj4TszqYVeS/0/*)#w0rtkcqe", "devices": [{"type": "other", "label": "gg"}]}

The second page of the PDF has the text with descriptor as /0/* without change address info:

{"label": "a name", "blockheight": 481824, "descriptor": "wp
kh([669dce62/84h/0h/0h]xpub6Cygb51hbAxuxKQ4hwVV5z6YvhauXbhDe
xEuA7EoAq9DkejbuF2najEM3YdY2BvC39XYa9nHE3R9QWr2yYgTU58LTNQ7i
pFQoj4TszqYVeS/0/*)#w0rtkcqe", "devices": [{"type": "other",
"label": "gg"}]}

The same thing happen if you go to "Settings > Export > Go to export details, descriptor as /0/* in the QR Code and the JSON Data:

{"label": "a name", "blockheight": 481824, "descriptor": "wpkh([669dce62/84h/0h/0h]xpub6Cygb51hbAxuxKQ4hwVV5z6YvhauXbhDexEuA7EoAq9DkejbuF2najEM3YdY2BvC39XYa9nHE3R9QWr2yYgTU58LTNQ7ipFQoj4TszqYVeS/0/*)#w0rtkcqe", "devices": [{"type": "other", "label": "gg"}]}

Expected behavior
It would be fine to return ONLY the [fingerprint/deriv/path]xpub... which would be an XPUB with origin-info rather than a complete descriptor... or since Specter Desktop is returning a descriptor that made some assumptions (script wrapper and checksum) to also assume the change path /<0;1>/* rather than assuming receive path only /0/*.

Screenshots

Image

Desktop (please complete the following information):

  • Where is your node running: public
  • Where is your specter running: Binaries downloaded from Specter site
  • If you're running a binary, which OS: Linux
  • Browser N/A
  • Specter v2.0.5 - May 30, 2024

Additional context
SeedSigner and Krux exports the ZPUB/XPUB without branch/output address info. Specter-DIY "Master public keys Single key/Multisig" also give values without branch/output address info. But Specter-DIY "Wallets > Default > Settings > Export wallet descriptor" gives values with /0/* with branch/output for receive address only.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions