A Rust library and CLI that explains Miniscript satisfaction state under a supplied spending context.
It walks the public rust-miniscript AST and produces a diagnostic tree showing why each supported fragment is SATISFIED, UNAVAILABLE, or IMPOSSIBLE. Fragments outside the supported set are reported as UNSUPPORTED. Each diagnostic node includes a reason when applicable, explaining why that status was reached.
AND_V [UNAVAILABLE]
├── pk(...) [SATISFIED]
└── older(144) [UNAVAILABLE]
required: 144 blocks
available: 83 blocks
remaining: 61 blocks
ROOT STATUS: UNAVAILABLE
-
pk,pkh -
sha256,hash256,ripemd160,hash160 -
after,older -
and_v,and_b,or_i -
or_b,or_c,or_d,andor -
thresh(k, ...),multi,multi_a
cargo run -- \
'pk(0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798)' \
--key 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798Run cargo run -- --help for available options.
Use --json for machine-readable output.
cargo testSee ARCHITECTURE.md for design details.