Join the chat at https://gitter.im/ethereum/eth-utils

Build Status

Common utility functions for codebases which interact with ethereum.

  • This library and repository was previously located at https://github.com/pipermerriam/ethereum-utils. It was transferred to the Ethereum foundation github in November 2017 and renamed to eth-utils. The PyPi package was also renamed from ethereum-utils to `eth-utils`.


pip install eth-utils


Clone the repository and then run:

pip install -e .[dev] eth-hash[pycryptodome]


Building Sphinx docs locally:

pip install -e .[doc]
cd docs
make html

Docs are written in reStructuredText and built using the Sphinx documentation generator.

Running the tests

You can run the tests with:

py.test tests

Or you can install tox to run the full test suite.


Pandoc is required for transforming the markdown README to the proper format to render correctly on pypi.

For Debian-like systems:

apt install pandoc

Or on OSX:

brew install pandoc

To release a new version:

make release bump=$$VERSION_PART_TO_BUMP$$

How to bumpversion

The version format for this repo is {major}.{minor}.{patch} for stable, and {major}.{minor}.{patch}-{stage}.{devnum} for unstable (stage can be alpha or beta).

To issue the next version in line, specify which part to bump, like make release bump=minor or make release bump=devnum.

If you are in a beta version, make release bump=stage will switch to a stable.

To issue an unstable version when the current version is stable, specify the new version explicitly, like make release bump="--new-version 4.0.0-alpha.1 devnum"