Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
October 8, 2021 16:34
October 8, 2021 16:34
October 8, 2021 16:34
September 30, 2022 15:29
October 8, 2021 16:34
September 17, 2020 02:53
October 8, 2021 15:11
September 14, 2019 19:39
September 14, 2019 19:39
October 8, 2021 16:34
October 8, 2021 16:34
September 21, 2019 01:22
April 28, 2020 07:26


Build Status Discord

Kulupu is a pure (no pre-mine, no gadget) proof-of-work blockchain built on the Substrate framework, with support of on-chain governance and online upgrades. It uses ASIC-resistant mining algorithm of RandomX.


The network was launched in September 2019. The first hard fork, code-named Slag Ravine happened in December 2019, at era 0 block 100,000. The second hard fork, code-named Swamp Bottom happened at era 0 block 320,000 on 6th May 2020.

The current Kulupu blockchain enabled Substrate's balances and governance pallet modules. Smart contract is a planned but not yet enabled feature, due to stability concerns.


You can use the binary build at Kulupu's releases page.



Clone this repo and update the submodules:

git clone
cd kulupu
git submodule update --init --recursive

Install Rust and required tools:

curl -sSf | sh
source $HOME/.cargo/env

Install necessary dependencies. On Ubuntu, run the following:

sudo apt install -y cmake pkg-config libssl-dev git gcc build-essential clang libclang-dev

Full Node

cargo run --release

Transition from Era 0

If you previously run Era 0 full node, please purge the current block storage before continue.

cargo run --release -- purge-chain


Import or generate a mining key

Kulupu implements signed mining. To mine Kulupu blocks, you have to have the coinbase private key stored in the mining software, as a new signature is produced for every new nonce. We refer to the private key for signed mining as the mining key.

The eaiest way to get a mining key is to generate a new one using the generate-mining-key command:

cargo run --release -- generate-mining-key

Keep your secret seed in a secure place.

Alternatively, you can also import an existing private key as the mining key, using the import-mining-key command:

cargo run --release -- import-mining-key "<secret seed>"

Pass author argument to node for mining

Remember either the public key or the address, and pass it to node for mining. For example:

cargo run --release -- --validator --author 0x7e946b7dd192307b4538d664ead95474062ac3738e04b5f3084998b76bc5122d

Proof of Work Parameters

  • Algorithm: RandomX
  • Block time: 60 seconds
  • Total issurance: Governed on-chain, expected to be no more than 210 million KLP.
  • No premine


This project is a side project by Wei Tang, and is not endorsed by Parity Technologies.