Security analysis tool for EVM bytecode. Supports smart contracts built for Ethereum, Hedera, Quorum, Vechain, Roostock, Tron and other EVM-compatible blockchains.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Nikhil Parasaram e001b2d5e7 Add Transaction order dependence 6 years ago
.circleci Temporary disables full Edelweiss test + up to 5 retries of the quick one 6 years ago
.github/ISSUE_TEMPLATE swc_id -> swc-id 6 years ago
docs update detection capabilities (#1040) 6 years ago
mypy-stubs/z3 Add BaseSolver class and restructure Solver and Optimize as children to get more precise type information. Tighten typing of BaseSolver.add and BaseSolver.append; Fix PEP8 nits 6 years ago
mythril Add Transaction order dependence 6 years ago
solidity_examples Fix more require statements in rubixi 6 years ago
static Rename logo file 6 years ago
tests Balance modelling and symbolic sender variables (#1025) 6 years ago
.editorconfig An extra newline was being added by the editor 7 years ago
.gitattributes Add highlight for solidity files (#732) 6 years ago
.gitignore Mock leveldb and fire_lasers tests 6 years ago
CONTRIBUTING.md Fix some minor typos (#1003) 6 years ago
Dockerfile Dockerfile improvement (#1017) 6 years ago
LICENSE Update LICENSE 7 years ago
MANIFEST.in Move signatures.db to assets and also copy signatures to .mythril home directory 6 years ago
Pipfile Fixes issues with python 3.5 dict ordering 7 years ago
README.md Mythril Classic -> Mythril 6 years ago
all_tests.sh Python 3.5 tolerance and note what Python versions Mythril accepts 6 years ago
coverage_report.sh Use xml coverage report 6 years ago
docker_build_and_deploy.sh Another fix of the docker build & release script 6 years ago
myth Python 3.5 tolerance and note what Python versions Mythril accepts 6 years ago
requirements.txt FIX: Restricts `eth-account` package version to be <=0.3.0 6 years ago
setup.py FIX: Restricts `eth-account` package version to be <=0.3.0 6 years ago
tox.ini supress tox warnings 6 years ago

README.md

Mythril

Discord PyPI Read the Docs Master Build Status Sonarcloud - Maintainability Pypi Installs DockerHub Pulls

Mythril is an open-source security analysis tool for Ethereum smart contracts. It uses symbolic analysis, taint analysis and control flow checking to detect a variety of security vulnerabilities. It's also used in the backend of MythX API. If you are a smart contract developer, we recommend using MythX tools which are optimized for usability and cover a wider range of security issues.

Whether you want to contribute, need support, or want to learn what we have cooking for the future, our Discord server will serve your needs.

Installation and setup

Get it with Docker:

$ docker pull mythril/myth

Install from Pypi:

$ pip3 install mythril

See the Wiki for more detailed instructions.

Usage

Instructions for using Mythril are found on the Wiki.

For support or general discussions please join the Mythril community on Discord.

Bulding the Documentation

Mythril's documentation is contained in the docs folder and is published to Read the Docs. It is based on Sphinx and can be built using the Makefile contained in the subdirectory:

cd docs
make html

This will create a build output directory containing the HTML output. Alternatively, PDF documentation can be built with make latexpdf. The available output format options can be seen with make help.

Vulnerability Remediation

Visit the Smart Contract Vulnerability Classification Registry to find detailed information and remediation guidance for the vulnerabilities reported.