Ethereum C++ client
C++ C CMake Shell Assembly Batchfile Python
Latest commit c5e40a6 Jan 20, 2017 @chriseth chriseth committed on GitHub Merge pull request #3513 from ethereum/fixwincrash
Fix crashing testeth on Windows during initilization of static CrytpoPP variables
Failed to load latest commit information.
bench Remove keccack counter Oct 25, 2016
cmake Remove OpenCL support Jan 9, 2017
deps @ 6a6250b Install scripts: remove OpenCL leftovers Jan 11, 2017
doc Updated dependencies graph generation to match new structure. Aug 18, 2016
eth fix genesis info example output when given a wrong configuration Jan 17, 2017
ethkey Code review changes: Renamed function and added some documentation ab… Aug 30, 2016
ethminer Miner: remove help about removed --phone-home option Jan 9, 2017
ethvm State: separate account creation from code deployment Jan 17, 2017
evmjit @ ffcae43 EVMJIT: separate EXTCODESIZE from EXTCODE(COPY) Dec 6, 2016
homebrew Additional paths for dylib path fixup for macOS ZIP builds. Jul 18, 2016
libdevcore Make debug_storageRangeAt output both hashed keys and preimage keys. Jan 10, 2017
libdevcrypto Crypto++ upgrade: use Keccak instead of incorrect SHA3 Jan 5, 2017
libethash Update deps: build Crypto++ from source Jan 5, 2017
libethashseal Remove OpenCL support Jan 9, 2017
libethcore ouput transaction RLP info when caught an exception Dec 9, 2016
libethereum Merge pull request #3499 from ethereum/state-journal-v2 Jan 19, 2017
libevm libevmcore, libevm: turn enum Tier into an enum class Jan 18, 2017
libevmcore libevmcore: replace redundant Tier::xTier with Tier::x Jan 18, 2017
libp2p Crypto++ upgrade: use Keccak instead of incorrect SHA3 Jan 5, 2017
libweb3jsonrpc Implement debug_preimage RPC method Jan 11, 2017
libwebthree libwebthree: avoid leaving an output parameter potentially uninitialized Dec 2, 2016
libwhisper Make Session class implement the abstract interface SessionFace and m… Jan 2, 2017
rlp Update deps: build Crypto++ from source Jan 5, 2017
scripts Install scripts, Debian: download CMake binary not source Jan 11, 2017
test Merge pull request #3513 from ethereum/fixwincrash Jan 20, 2017
utils Major simplification of CMake files. Aug 17, 2016
.gitignore Use int64_t in EnvInfo for block gas limit Aug 24, 2016
.gitmodules Add 'deps' and 'evmjit' submodules. Aug 12, 2016
.travis.yml Travis CI: install latest CMake on Linux Jan 5, 2017
CMakeLists.txt Remove OpenCL support Jan 9, 2017
CodingStandards.txt Typo Dec 5, 2016
LICENSE Added missing GPLv3 LICENSE file. Aug 7, 2016 Corrected links to TravisCI and Appveyor status, and contributors page. Aug 28, 2016
appveyor.yml AppVeyor: build only pushes to master and develop branch Oct 20, 2016
refilltests refill tests Jan 4, 2017
sanitizer-blacklist.txt Added stray and sanitizizer-blacklist.txt files. Aug 12, 2016

cpp-ethereum - Ethereum C++ client

This repository contains cpp-ethereum, the Ethereum C++ client.

It is the third most popular of the Ethereum clients, behind geth (the go client) and Parity (the rust client). The code is exceptionally portable and has been used successfully on a very broad range of operating systems and hardware.

We are in the process of re-licensing the codebase from the copyleft GPLv3 license to the permissive Apache 2.0 licence, to enable Ethereum to be used as broadly as possible. There is a long-form article - "Ethereum Everywhere" - which talks about the rationale for the change and the history leading up to this proposed change of licensing.

Getting Started

The Ethereum Documentation site hosts the cpp-ethereum homepage, which has a Quick Start section.

Please do come and chat to us on the cpp-ethereum gitter channel if you need help with anything!

Ubuntu and macOS Build Status
Windows Build Status


The current codebase is the work of many, many hands, with nearly 100 individual contributors over the course of its development.

Our day-to-day development chat happens on the cpp-ethereum-development gitter channel.

All contributions are welcome! We try to keep a list of tasks that are suitable for newcomers under the tag good first task. If you have any questions, please just ask.

Please refer to the file for some guidelines.

Please read CodingStandards.txt thoroughly before making alterations to the code base. Please do NOT use an editor that automatically reformats whitespace away from astylerc or the formatting guidelines as described in CodingStandards.txt.

All development goes in develop branch.


To run the tests, make sure you clone and point the environment variable ETHEREUM_TEST_PATH to that path.


All contributions are made under the GPLv3 license. See LICENSE.

We are in the process of re-licensing to Apache 2.0. See above for more details.