Expand description
§rustywallet-psbt
PSBT (Partially Signed Bitcoin Transaction) implementation for Bitcoin wallet development.
This crate implements BIP174 (PSBT v0) and BIP370 (PSBT v2) for hardware wallet interoperability and multi-party signing workflows.
§Features
- Parse and create PSBTs
- Sign PSBTs with private keys
- Combine PSBTs from multiple signers
- Finalize PSBTs and extract signed transactions
- Support for P2PKH, P2WPKH, P2SH, P2WSH, and P2TR inputs
- PSBT v2 (BIP370) support
§Example
use rustywallet_psbt::{Psbt, PsbtError};
// Parse PSBT from base64
let psbt_base64 = "cHNidP8BAH...";
let mut psbt = Psbt::from_base64(psbt_base64)?;
// Sign with private key
// let signed = psbt.sign(&private_key)?;
// Finalize
psbt.finalize()?;
// Extract signed transaction
let tx = psbt.extract_tx()?;§BIP174 Roles
This crate implements all BIP174 roles:
- Creator: Create PSBT from unsigned transaction
- Updater: Add UTXO info, scripts, derivation paths
- Signer: Add partial signatures
- Combiner: Merge PSBTs from multiple signers
- Finalizer: Construct final scriptSig/witness
- Extractor: Extract signed transaction
Re-exports§
pub use error::PsbtError;pub use global::GlobalMap;pub use input::InputMap;pub use input::TxOut;pub use input::Witness;pub use output::OutputMap;pub use psbt::Psbt;pub use types::KeySource;pub use types::PsbtSighashType;