Simplicity builds programs from a small set of combinators and can replace recognized subexpressions with fast jets of identical meaning, combining analyzability with practical performance.
Its core is a small set of typed combinators with mathematically defined denotational and operational semantics. A formal model in Rocq enables machine-checked proofs about the language, its implementation, and properties of a particular program. [1]
The language has no unbounded loops or general recursion, so upper bounds on computation, memory, and data can be derived before execution. A program should therefore neither stop at an unknown gas cost nor run forever. [1]
A program is a merklized expression tree, and unused branches can be replaced by their Merkle root when funds are spent. The validator checks the commitment to the whole program, while only the required path and witness data are revealed on-chain. [1]
A jet recognizes a particular Simplicity expression and executes it as an optimized native function. Consensus safety requires the jet's result to match the expression's reference semantics exactly; a jet adds no hidden new meaning. [1]
libSimplicity contains a minimal consensus-sensitive runtime in C, reference and generator components in Haskell, and a formal model in Rocq. These layers cross-check one another, but the repository explicitly says that the language and implementation remain under development. [2]
SimplicityHL is a more readable Rust-like language that compiles to Simplicity bytecode. The project itself labels it work in progress rather than production-ready; a contract audit must cover the source, compiler, bytecode, witness, and jets. [3]
Simplicity was deployed on Liquid mainnet in 2025. Liquid is a federated sidechain with multiple assets and Confidential Transactions, so that deployment is not activation in Bitcoin mainnet consensus; that would require a separate proposal and soft fork. [4]
Formal semantics do not guarantee correct economic intent, secure keys, or a reliable counterparty. Verification must distinguish the low-level program, SimplicityHL tooling, the particular jet set, the Liquid version, and a hypothetical Bitcoin integration. [2]
For the clearest picture, read this entry together with Bitcoin Script, Miniscript, Taproot, Soft Fork, Consensus Rules, Sidechain.
01Is Simplicity available on Bitcoin mainnet?+
No. It is deployed on Liquid mainnet, which has different consensus rules; use as a Bitcoin scripting language would require a separate proposal and soft fork.
02Is Simplicity the same as Miniscript?+
No. Miniscript is an analyzable structure over today's Bitcoin Script; Simplicity is a separate, formally defined low-level language.