What is the difference between semantic policy and concrete policy in a Miniscript context?

The difference between Policy and Miniscript is defined here.

1 Answer 1


Andrew Poelstra discussed semantic policy and concrete policy at this Miniscript workshop at Advancing Bitcoin 2020.

There are two types of Policies in rust-miniscript. There are semantic Policies which are the ones you get where you start with a Miniscript and throw away all the extra information. Those are what you use to do analysis and stuff. Then there are concrete Policies and those have weights on the branches. You can always get to a semantic Policy by throwing away information. We have a function called Lift that I think we use later on. We’ve imported the Liftable trait. We create this concrete Policy, we parse it and you can see it looks kind of like Miniscript. We parse it in the usual way using the from_str trait. Then we call this function htlc_policy.compile. The compile turns a concrete Policy into a Miniscript.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.