#nimiq #cryptocurrency #blockchain


Various utilities (e.g., CRC, Merkle proofs, timers) for Nimiq’s Rust implementation

3 releases (breaking)

✓ Uses Rust 2018 edition

new 0.2.0 Nov 8, 2019
0.1.0 May 24, 2019
0.0.0 Feb 4, 2019

#11 in Cryptocurrencies

43 downloads per month
Used in 18 crates (10 directly)



Nimiq Core implementation in Rust (core-rs)


Rust implementation of the Nimiq Blockchain Core

Nimiq is a frictionless payment protocol for the web.

This repository is Work in Progress and is currently in beta-testing phase. If you need a reliable client implementation to run in a production environment, please use the JavaScript implementation instead. Only use this if you can tolerate bugs and want to help with beta-testing the Nimiq Rust implementation.

The Nimiq Rust client comes without wallet and can currently not be used to send transactions. As a back-bone node it is more performant than the JavaScript implementation though.

Table of Contents



Besides Rust itself, the following packages are required to be able to compile this source code:

  • gcc
  • pkg-config
  • libssl-dev (in Debian/Ubuntu) or openssl-dev (in Fedora/Red Hat)

From crates.io

To download from crates.io, compile and install the client:

cargo +nightly install nimiq-client

The binary will be installed in your Cargo directory, which is usually at $HOME/.cargo/bin, and should be available in your $PATH.

From Git

Compiling the project is achieved through cargo:

git clone https://github.com/nimiq/core-rs
cd core-rs
cargo +nightly build

Note that this will build it in debug mode, which is not as performant. To get the most speed out of the client, build it in release mode:

cargo +nightly build --release

If you want to install the client onto your system (into $HOME/.cargo/bin), run:

cargo +nightly install --path client/

Alternatively you can install directly from git:

cargo +nightly install --git https://github.com/nimiq/core-rs.git

After installing the client you can use it as if you had downloaded it from crates.io.



By default the client will look for a configuration file in $HOME/.nimiq/client.config. You need to create this file yourself:

nimiq-client                                                   # Run the client. This will create the example config file.
cp $HOME/.nimiq/client.example.toml $HOME/.nimiq/client.toml   # Create your config from the example.
nano $HOME/.nimiq/client.toml                                  # Edit the config. Explanations are included in the file.

You can also specify your own configuration file:

nimiq-client -c path/to/client.toml

Take a look at client/client.example.toml for all the configuration options.

From crates.io

If you installed the client from crates.io, you can just run it with:


From Git

To run the Nimiq Rust Client from the downloaded sources:

cd core-rs/client
cargo run

Dependencies and binaries will be downloaded and compiled automatically by Cargo.

If you want to use the release build:

cd core-rs/client
cargo run --release


If you'd like to contribute to the development of Nimiq please follow our Code of Conduct and Contributing Guidelines.

Small note: If editing the README, please conform to the standard-readme specification.


This project is under the Apache License 2.0.