cryptoadvance / cryptoadvance/specter-desktop

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

Open
#2,494 1 comment 3 reactions 2 assignees Claimed by @k9ert View on GitHub
Dominant language
Python
Stars
847
Forks
259
Avg merge
6d 18h
Merged PRs (30d)
2

Description

**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](https://github.com/user-attachments/assets/0ec35d91-ac59-4e5e-a4b4-bba751152506)

**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.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.