Skip to main content

Crate bitcoin_heuristics

Crate bitcoin_heuristics 

Source
Expand description

§bitcoin-heuristics

Pattern detection heuristics for Bitcoin on-chain analytics.

Detects consolidations, distributions, CoinJoin, fee spikes, dormant supply reactivation and more from pre-extracted TxFeatures.

§Quick Start

use bitcoin_heuristics::{HeuristicRegistry, TxFeatures};

// Populate TxFeatures from your Bitcoin transaction parser
let features = TxFeatures {
    input_count: 15,
    output_count: 2,
    is_consolidation: true,
    total_input_value: 200_000_000, // 2 BTC
    is_input_script_homogeneous: true,
    output_value_max: 180_000_000,
    total_output_value: 199_995_000,
    block_price_usd: Some(60_000.0),
    ..TxFeatures::default()
};

let registry = HeuristicRegistry::default_registry(0.7);
let matches = registry.evaluate_all(&features);

for m in &matches {
    println!("[{}] {} — {}", m.event_type, m.pattern, m.summary);
}

Re-exports§

pub use errors::HeuristicError;
pub use heuristics::long_term_supply_activation::BitcoinRpc;
pub use heuristics::long_term_supply_activation::JsonRpcClient;
pub use heuristics::long_term_supply_activation::LongTermSupplyActivationHeuristic;
pub use heuristics::long_term_supply_activation::TxOutInfo;
pub use heuristics::Heuristic;
pub use heuristics::HeuristicRegistry;
pub use heuristics::HeuristicStatus;
pub use match_result::HeuristicMatch;
pub use models::encode_movement_range_log;
pub use models::AbsoluteFeeTier;
pub use models::AddressHotness;
pub use models::ChangeDetection;
pub use models::CoinJoinScore;
pub use models::EmbeddedProtocol;
pub use models::EntityCategory;
pub use models::EntityPresence;
pub use models::FeeEfficiencyRatio;
pub use models::FeePercentileTier;
pub use models::FeeRateTier;
pub use models::IoScaleTier;
pub use models::LightningIndicator;
pub use models::MultisigThreshold;
pub use models::ScriptType;
pub use models::StructuralPattern;
pub use models::TaprootSpendPath;
pub use models::TimelockFingerprint;
pub use models::TxFeatures;
pub use models::TxVersionTier;
pub use models::UtxoAgeVariance;
pub use models::VsizeTier;

Modules§

analyzers
errors
heuristics
match_result
models