Brownie

Brownie is a Python-based development and testing framework for smart contracts targeting the Ethereum Virtual Machine.

Note

All code starting with $ is meant to be run on your terminal. Code starting with >>> is meant to run inside the Brownie console.

Note

This project relies heavily upon web3.py and the documentation assumes a basic familiarity with it. You may wish to view the Web3.py docs if you have not used it previously.

Features

  • Full support for Solidity and Vyper

  • Contract testing via pytest, including trace-based coverage evaluation

  • Property-based and stateful testing via hypothesis

  • Powerful debugging tools, including python-style tracebacks and custom error strings

  • Built-in console for quick project interaction

  • Support for ethPM packages