Crate rustywallet_psbt

Crate rustywallet_psbt 

Source
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;

Modules§

error
PSBT error types
global
PSBT global map
input
PSBT input map
output
PSBT output map
prelude
Prelude module for convenient imports
psbt
Main PSBT struct
serialize
PSBT serialization and deserialization
types
PSBT types and constants