cryptoadvance / cryptoadvance/specter-desktop
Feature idea: Multisig Health check
- Dominant language
- Python
- Stars
- 847
- Forks
- 259
- Avg merge
- 6d 18h
- Merged PRs (30d)
- 2
Description
**Feature idea: Multisig Health check**
**Goal**: Ensure that all signing devices of a multisig quorum are available/accessible and give the user peace of mind.
**Origin**: This idea is from Casa, where they do a regular check. There it is crucial because they have no steel backups. But even with backups, a somewhat regular (large time distances) check can be great to solve foot-guns like "I mixed up devices and I don't know when I checked the device the last time."
**Possible ways to implement:**
1. each signing device can sign a message (e.g. the current date).
- Pro:
- works even before there is a utxo in the multisig setup
- Con:
- it does not test if the multisig quorum is registered correctly on all devices. If the multisig quorum is not registered (correctly) on the signing devices, this can be a significant headache to get this sorted out.
2. Specter creates a transaction sending 1 utxo to a fresh address in the same multisig setup. Each signing device signs this tx. The transaction does not need to be broadcasted.
- Pro:
- this is checks also if the multisig quorum is registered correctly on all devices
- Con:
- A utxo is necessary
- More complex, because a user cannot transport the signed tx, but has to sign the *unsigned* tx with each device. If a user tries to sign a tx that has already 2 signatures in a 2 of 3 setup, then this tx cannot be used to collect the 3. signature.
- If the utxo is broadcasted accidentally it can potentially have unintended consequences.
I would suggest the 1. method, because it is safer, easier, and a lot more straight forward. I don't think it matters which of the derived addresses are used for signing, right?
**UX idea**:
- Add a "Health status" tab to the wallet section
- Set a default health check time of a seed (e.g 1 year or 2 years), that can be adjusted by the user
- Each device is listed, and the status is green (if with in the health check time ), orange if it is above. It also shows the last time it was checked.
- The user can create the default signing message (current date) and sign it via usb, qr code or sd-card/file. After import of this signed message the status goes to green and the signed message is stored in the specter folder.
- A hint tells the user, that this test checks the availability of the seed, but not of the registered multisig quorum
Casas looks like

**Developement**:
- The good thing is that signing functionality is there already. We just need to create a nice UI for this work flow
What do you think?
Contributor guide
Research direction
No files, tests, or entry points are named. Start by locating the existing signing functionality and wallet section; done would require an agreed health-check design and the described device-status and signing-message flow.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- desktop, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100