Need help with kulupu?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

176 Stars 38 Forks GNU General Public License v3.0 516 Commits 13 Opened issues


PoW blockchain with on-chain governance and online upgrade, built on Substrate

Services available


Need anything else?

Contributors list


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

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

cargo run --release -- import-mining-key ""

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.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.