Documentation for

Scribble is a runtime verification tool for Solidity that transforms annotations in the Scribble specification language into concrete assertions that check the specification. In other words, Scribble transforms existing contracts into contracts with equivalent behaviour, except that they also check properties. With these instrumented contracts, you can use testing, fuzzing or symbolic execution (for example using Mythril or the MythX service) to check if your properties can be violated.

Scribble overview

Scribble is currently in beta, and both the tool and the language are still changing and under active development.


To get started quickly check out our tutorials:


This documentation has two categories: Tool and Language.

To get started using the Scribble CLI (Tool), check out the Installation and CLI Usage pages.

Also be sure to check out the page on arming and disarming, which explains how to use Scribble to do "in place" instrumentation. For a deep dive into instrumentation, and to debug any issues, check out the Instrumented Code and Debugging pages.

To get started learning about the Scribble specification language, start here.

If you encounter any issues feel free to find us in the #scribble-spec-langauge channel of the MythX Discord Server, or file an issue on GitHub.


You can find the code on github -