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;