Simplicity is a low-level, typed, functional language for Bitcoin smart contracts, designed so you can verify exactly what a program does before it runs. A Blockstream Research project, live on the Liquid Network.
Most smart-contract bugs come from not knowing what the code will do. Simplicity is designed so you can prove a contract's behavior before a single satoshi moves.
A Simplicity program is built from a small set of combinators that compose into the full logic. Because the language is so constrained, a tool can analyze a program and tell you exactly what it accepts, with mathematical certainty.
The expression below is illustrative, not a screenshot.
A handful of primitives compose into any program.
A model that measures exactly what a program costs to run.
Reason about what the contract will do before it runs.
Reason about a program with mathematical certainty, not testing alone.
A handful of combinators compose into any program, which keeps each one easy to analyze.
A model for measuring exactly how much computation a program costs.
Designed for Bitcoin and live today on the Liquid Network.
Simfony is a Rust-like language that compiles down to Simplicity, so you can write contracts in a familiar style and still get the verifiability of the layer beneath.
Explore Simfony and SimplicitySimplicity is open research, available today on the Liquid Network. Read the language docs, browse the source, or see where it runs.