Blockchain technology for creating custom chains.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
build rewrite leftover rivine links Nov 5, 2018
cmd rename root encoding pkg to pkg/encoding/siabin Nov 16, 2018
crypto rename root encoding pkg to pkg/encoding/siabin Nov 16, 2018
doc add key generation and seed mnemonic to the wallet doc Feb 12, 2019
modules provide unencrypted wallet support Jan 15, 2019
persist Rewrite import paths Nov 5, 2018
pkg feat: define explorer alias for root consensus endpoint Feb 15, 2019
profile Rewrite import paths Nov 5, 2018
sandbox bugfix #4 Adjust difficulty Oct 21, 2016
specs Remove the webshop spec Dec 17, 2018
sync Rewrite import paths Nov 5, 2018
vendor update vendored rivine/bbolt to latest master Jul 25, 2018
.gitignore move rivinec/rivined to become a cmd subdir Feb 18, 2018
.travis.yml drop Go1.9 support Nov 20, 2018
DockerBuilder rewrite leftover rivine links Nov 5, 2018
DockerfileMinimal Modify the published archives folder structure and naming Jun 8, 2017
Gopkg.lock update vendored rivine/bbolt to latest master Jul 25, 2018
Gopkg.toml update vendored rivine/bbolt to latest master Jul 25, 2018
Makefile introduce rivbin binary encoder Nov 16, 2018 Update Feb 7, 2019


Build Status GoDoc Go Report Card

Blockchain technology for creating custom chains.


You can reach out to us for any development-related questions on our public Telegram group.

Product owners

Main Repositories



This project comes with 2 binaries, rivined and rivinec. rivined is a background service, or "daemon," that runs the Rivine protocol, and rivinec is a client that is used to interact with rivined. rivined exposes an HTTP API on 'localhost:23110' which can be used to interact with the daemon. Documentation on the API can be found in doc/

rivined and rivinec are run via command prompt. On Windows, you can just double- click rivined.exe if you don't need to specify any command-line arguments. Otherwise, navigate to the rivine folder and click File->Open command prompt. Then, start the rivined service by entering rivined and pressing Enter. The command prompt may appear to freeze; this means rivined is waiting for requests. Windows users may see a warning from the Windows Firewall; be sure to check both boxes ("Private networks" and "Public networks") and click "Allow access." You can now run rivinec in a separate command prompt to interact with rivined.

Building From Source

To build from source, Go 1.10 or higher must be installed on the system (older versions of GO might work, with some work, but we don't support it). Then simply use go get:

go get -u

This will download the Rivine repo to your $GOPATH/src folder, and install the rivined and rivinec binaries in your $GOPATH/bin folder.

To stay up-to-date, run the previous go get command again. Alternatively, you can use the Dockerfile provided in this repo. Run docker build -t rivine . to build and docker run --name rivine rivine to start the daemon. Running the client can be done with docker run -it rivine rivinec. Add client commands just like you would calling rivinec normally (like docker run -it rivine rivinec wallet transactions).

Supporting a Rivine Wallet in a Light Client

Should you wish to support Rivine, or more likely a Rivine-based wallet in a(n) existing/new light client, it is recommended that you read /doc/transactions/ as a starting point.

This document references to (most of the) other documentation you'll need in order to develop your own light wallet for a Rivine-Protocol-based blockchain.


  • I can't connect to more than 8 peers.

    Once Rivine has connected to 8 peers, it will stop trying to form new connections, but it will still accept incoming connection requests (up to 128 total peers). However, if you are behind a firewall, you will not be able to accept incoming connections. You must configure your firewall to allow Rivine connections by forwarding your ports. By default, Rivine communicates on port 23112. The specific instructions for forwarding a port vary by router. For more information, consult this guide.

    Rivine currently has support for UPnP. While not all routers support UPnP, a majority of users should have their ports automatically forwarded by UPnP.

  • I loaded a seed, but my coins don't appear yet.

    After loading your seed, you will need to stop and restart your daemon. If after that the coins still haven't appeared (and you are sure they should be there), you can try rivinec wallet addresses to force load some more addresses.

    Note that when you recover a wallet from an existing seed, using wallet recover, effectively creating a new wallet using an existing set, your addresses will already be loaded when unlocking it.

  • My daemon exits imediately upon startup, giving the error: error opening consensus database: invalid argument:

    Make sure that the file system you are using for your daemon's persistent directory supports features such as mmap and flock. Shared folders for example, as is common in virtual environments or containers, might not support mmap and therefore will fail to function. The scenario in this example can easily be resolved by making sure the persistent directory isn't located within a shared folder.

  • My node can be out of sync with the network for hours, if not days.

    Do you have multiple nodes —which includes the out-of-sync node— running on a single external IP using the same port within the same blockchain network? If the answer is yes, you should ensure that all those nodes are using unique ports for the RPC address.

    If not already, you will run into problems sooner or later when running multiple nodes using the same external IP address and RPC address port within the same blockchain network.