Simplicity is a blockchain programming language designed as an alternative to Bitcoin script.
The language and implementation is still under development.
This project contains
- A Haskell implementation of Simplicity's language semantics, type inference engine, serialization functions, and some example Simplicity code.
- A Coq implementation of Simplicity's formal denotational and operational semantics.
Software artifacts can be built using Nix.
To build the Haskell project, run
nix-build -A haskell.
To build the Coq project, run
nix-build -A coq.
Detailed documentation can be found in the
Simplicity-TR.tm TeXmacs file.
A recent PDF version can be found in the pdf branch.
- Our paper that originally introduced Simplicity. Some of the finer details are out of date, but it is still a good introduction.
- BPASE 2018 presentation of the above paper (slides).
- Scale by the Bay 2018 presentation that illustrates formal verification of Simplicity in Agda. (slides)
Interested parties are welcome to join the Simplicity mailing list. Issues and pull-requests can be made through GitHub's interface.