Skip to content
A formal verifier and analysis tool for Solidity Smart Contracts
Branch: master
Clone or download
shuvendu-lahiri Merge pull request #122 from microsoft/linux-corral-name
Change the name of corral to lower cases
Latest commit bdb1a23 Jun 6, 2019


VeriSol (Verifier for Solidity) is a Microsoft Research project for prototyping a formal verification and analysis system for smart contracts developed in the popular Solidity programming language. It is based on translating programs in Solidity language to programs in Boogie intermediate verification language, and then leveraging the verification toolchain for Boogie programs.

The following paper describes the design of VeriSol and application of smart contract verification for Azure Blockchain.

Formal Specification and Verification of Smart Contracts for Azure Blockchain, Yuepeng Wang, Shuvendu K. Lahiri, Shuo Chen, Rong Pan, Isil Dillig, Cody Born, Immad Naseer,


Instructions for installing and running VeriSol can be found here.


VeriSol is licensed under the MIT license.


This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact with any additional questions or comments.

You can’t perform that action at this time.