---
# System prepended metadata

title: The Wallet Doesn't Sign Transactions

---

# The Wallet Doesn't Sign Transactions

* Lead Developer: [@oleonardolima]
* Tickets: [#70]
* Pull Requests: [#235 (bdk_wallet)], [#851 (miniscript)]

<br>

## The Short Version

- The `Wallet` type will no longer handle private keys. If private keys/descriptors are provided upon building the wallet, they will simply be dropped and public versions of the descriptors will be used instead.
- To generate signatures for transactions, users will instead use the [Psbt::sign](https://docs.rs/bitcoin/latest/bitcoin/struct.Psbt.html#method.sign) API.
- This requires a new type, ====need help here====

====Codeblock with small example====

<br>

## Why Do This?

Safer and more flexible approaches to signing PSBTs can be done outside of the Wallet type. Most of what the wallet does it  not related to cryptographic signatures and does not require handling of secret keys. Enforcing the wallet _only_ handles public key data simplifies some internals, narrows and streamlines the scope of what is expected of the `Wallet` type, and leaves handling of signatures to the already available APIs present in rust-bitcoin.

<br>

## Expanded Example And Commentary

====TODO====

<br>

## Deployment Path

This is a breaking change as users will no longer be able to sign PSBTs directly with the wallet. This feature is planned for the 3.0 release.

<br>

[@oleonardolima]: https://github.com/oleonardolima
[#235 (bdk_wallet)]: https://github.com/bitcoindevkit/bdk_wallet/pull/235
[#70]: https://github.com/bitcoindevkit/bdk_wallet/issues/70
[#851 (miniscript)]: https://github.com/rust-bitcoin/rust-miniscript/pull/851
