How to fork Bitcoin and build own cryptocurrency



Is there any step-by-step tutorial about how to build own cryptocurrency based on Bitcoin code?


Posted 2013-12-24T07:23:11.733

Reputation: 559

2Fork or totally new chain? – None – 2013-12-24T07:23:41.393

1I want new chain, start mining from scratch and different rules (I want more than 21.000.000 coins) – Michal – 2013-12-24T07:24:52.790



To start a new chain, use a genesis generator, apply the new genesis to the source, and remove the checkpoints.

If you want to apply new/different rules, be prepared for a difficult task. Changing even the slightest protocol rule will most likely affect all other rules because of the complexity of PoW.

If the only thing you want to alter is the maximum coins, this should be relatively easy to alter in the source.


Posted 2013-12-24T07:23:11.733


what are the checkpoints? why should you remove them? – smatthewenglish – 2017-05-06T18:30:22.220

Checkpoints are old blocks hardcoded into the source. As you want to start a new chain, using a checkpoint from Bitcoin, would prevent to start from scratch.


– FedFranz – 2017-12-04T12:18:59.400

You can find a guide to create your own Genesis block here.

– Phuoc Do – 2019-02-23T02:15:16.380


Fire Bird

Posted 2013-12-24T07:23:11.733

Reputation: 91

It is based on Litecoin, not BitCoin. – Kai Wang – 2019-11-07T22:08:06.590

This one is Bitcoin Core:

– Kai Wang – 2019-11-07T22:13:33.167

Just found a later post:

– Kai Wang – 2019-11-07T22:36:50.793


Here is a guide: How to Fork Bitcoin (create your own chain).

I really think Bitcoin as a concept is unique and powerful, and the project is well maintained by very talented developers, so I wanted to write this not just to help make it easy to clone, but to help increase understanding of the concepts and how to fully utilize them in other projects. I would love comments if you think I can improve it in any way. It covers the following:

  • Forking
  • Building from source
  • Customizations:
    1. Change default ports for all nets (mainnet, testnet, regtest)
    2. Change the “magic message” or the message prefix for all nets (mainnet, testnet, regtest)
    3. Change the address prefixes (optional) for all nets (mainnet, testnet, regtest) and for all address types (P2PKH, P2SH, and secret keys).
    4. Change the block reward (optional)
    5. Change the coinbase maturity (optional)
    6. Change the halving interval (optional)
    7. Update max money check value (required if this should be different)
    8. Reset minimum chain work
    9. Remove DNS seeds
    10. Remove checkpoints
    11. Update DEFAULT_MAX_TIP_AGE
    12. Change block time (optional) for all nets (mainnet, testnet, regtest)
    13. Change the difficulty adjustment interval (optional) for all nets (mainnet, testnet, regtest)
  • Managing Updates


Posted 2013-12-24T07:23:11.733

Reputation: 6 602


There are some tutorials out there, check out:

If that one is not sufficient let me know, and maybe I'll write one up.

There are also a lot of coins on github that you could just fork, create your own genesis block, modify parameters (coins per block, max coins, etc) and start mining.
One example is:

Albert s

Posted 2013-12-24T07:23:11.733

Reputation: 1 420

1imho it's insufficient- if you want to write one I'd be the first to read it – smatthewenglish – 2017-05-06T18:30:50.330

Please make one tutorial. Most out there are old and does not work at all, and all occurs error or even does not desctibe what they uses. I am using Windows 10 laptop. – creator – 2018-01-25T09:11:01.077