bitcoindevkit / bitcoindevkit/bdk_wallet
Remove signers from `Wallet`
- Dominant language
- Rust
- Stars
- 59
- Forks
- 105
- Avg merge
- 10d 9h
- Merged PRs (30d)
- 1
Description
**Describe the enhancement**
This is a tracking issue to remove signing capabilities and requirements to handle private key material from [`Wallet`](https://docs.rs/bdk_wallet/latest/bdk_wallet/struct.Wallet.html#). The new recommended flow will leverage `rust-bitcoin` [`Psbt::sign`](https://docs.rs/bitcoin/latest/bitcoin/psbt/struct.Psbt.html#method.sign). Please comment below or mention this issue in related issues and PRs.
### Proposed timeline
| When | What |
| -------- | ------- |
| Available now since `3.1.0` | Allow users to bring in their private keys at the last minute while still using our APIs (`Wallet::sign_with_signers`). |
| Available now ([but](rust-bitcoin/rust-miniscript#867)) | Make sure users can sign using `Psbt::sign`. |
| Coming up ([bookofbdk](https://github.com/bitcoindevkit/book-of-bdk/pull/149)) | Write documentation, recommendations, release notes, etc. |
| ? | Mark signing-related APIs as deprecated. See bitcoindevkit/bdk_wallet#505 for more info! |
| `4.0` (Option 1) | Remove signers entirely from the `Wallet` type and crate. |
| `4.0` (Option 2) | Remove signers entirely from the `Wallet`, but keep them as separate helper module if required (after deep dive into `SignOptions`, see todos below). |
### Todos
- [x] Add an API to keep using the wallet `Signers` but bring in your private keys just at the moment of signing (not in the constuction of the `Wallet`)
- [ ] Produce extensive documentation and write-ups on the migration, timeline, and options available for users
- [ ] Do a deep dive into and produce a write-up of our `SignOption` type, which currently potentially offers options not covered by rust-bitcoin's `Psbt::sign` API
- [ ] Deprecate all signing and policy related APIs
### Related issues and PRs
- rust-bitcoin/rust-miniscript#851
- rust-bitcoin/rust-miniscript#867
- bitcoindevkit/bdk_wallet#331
- bitcoindevkit/bdk_wallet#20
- bitcoindevkit/bdk_wallet#73
- bitcoindevkit/bdk_wallet#379
- bitcoindevkit/bdk_wallet#434
- bitcoindevkit/book-of-bdk#159
- bitcoindevkit/bdk_wallet#235
- bitcoindevkit/bdk_wallet#505
- bitcoindevkit/bdk_wallet#438
- bitcoindevkit/bdk_wallet#334
Contributor guide
Assessment
This issue has not been assessed yet.