Crate rustywallet_recovery

Crate rustywallet_recovery 

Source
Expand description

§rustywallet-recovery

Wallet recovery tools for Bitcoin - scan blockchain for funds from mnemonic or xpub.

§Features

  • Mnemonic Recovery: Scan all standard derivation paths from a seed phrase
  • Extended Key Recovery: Scan from xpub or xprv
  • Multi-Path Support: BIP44, BIP49, BIP84, BIP86 (Legacy, SegWit, Native SegWit, Taproot)
  • Gap Limit: Configurable gap limit for address scanning
  • UTXO Discovery: Find all unspent outputs for spending
  • Progress Reporting: Callback for scan progress updates

§Example

use rustywallet_recovery::{RecoveryScanner, RecoveryConfig, ElectrumBackend};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Create backend
    let backend = ElectrumBackend::mainnet().await?;

    // Configure scan
    let config = RecoveryConfig::new()
        .with_gap_limit(20);

    // Create scanner from mnemonic
    let mnemonic = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about";
    let scanner = RecoveryScanner::from_mnemonic(mnemonic, None, backend, config)?;

    // Run scan
    let result = scanner.scan().await?;

    println!("Total balance: {} sats", result.total_balance);
    println!("Addresses found: {}", result.addresses.len());
    println!("UTXOs found: {}", result.utxos.len());
    Ok(())
}

§Quick Scan

use rustywallet_recovery::{RecoveryScanner, RecoveryConfig, ElectrumBackend, ScanPath};

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Quick scan with smaller gap limit
    let config = RecoveryConfig::quick()
        .with_scan_paths(vec![ScanPath::Bip84]); // Only native segwit

    let backend = ElectrumBackend::mainnet().await?;
    let scanner = RecoveryScanner::from_mnemonic(
        "your mnemonic here...",
        None,
        backend,
        config
    )?;

    let result = scanner.scan().await?;
    println!("{}", result.summary());
    Ok(())
}

Re-exports§

pub use backend::AddressBalance;
pub use backend::Backend;
pub use backend::ElectrumBackend;
pub use config::RecoveryConfig;
pub use config::ScanPath;
pub use error::RecoveryError;
pub use result::FoundAddress;
pub use result::FoundUtxo;
pub use result::RecoveryResult;
pub use result::ScanStats;
pub use scanner::ProgressCallback;
pub use scanner::RecoveryScanner;
pub use scanner::ScanProgress;

Modules§

backend
Backend trait for blockchain queries
config
Recovery configuration
error
Error types for wallet recovery
result
Recovery result types
scanner
Recovery scanner