Skip to content

Welcome, Bitcoin Developers

If you know Bitcoin Script, you know its constraints: a small, deliberately limited opcode set, no loops, and no built-in way to enforce rules across more than one transaction. Simplicity targets the same UTXO model and the same Bitcoin-style transaction semantics, but is built on a small set of functional combinators instead of an opcode set. It adds introspection, so a program can constrain a transaction's outputs and not just check signatures, which is what makes covenants and multi-transaction vault protocols possible without the workarounds Script requires today. Every program's execution cost is still statically bounded and known before you fund it, the same guarantee you already rely on in Script.

Simplicity provides tools to represent and enforce complex financial agreements and instruments as on-chain smart contracts, in line with Bitcoin architecture and philosophy. The SimplicityHL language expresses this logic in a familiar Rust-like syntax.

Where to go from here