I would like a plain and simple answer.

How do you create a Genesis block for a new Monero Fork?

I know this has been asked many times before but all I can find is closed questions saying "Duplicated Question" and answers that make no sense. This answer should not have been closed off Creating a genesis block, but it doesnt work, for an entire day

The CryptoNote advice saying run your daemon with --print-genesis-tx argument does not work. How to generate a new genesis tx?

This answer is very cryptic. I don't understand what I am meant to be changing. How can I create a new Monero genesis block?


2 Answers 2


The genesis block is automatically created for you from the genesis transaction and the genesis nonce that is hard coded here: https://github.com/monero-project/monero/blob/3ad4ecd4ff52f011ee94e0e80754b965b82f072b/src/cryptonote_config.h#L162

If you don't care about receiving the funds generated in the genesis transaction, then you can leave it unaltered and just choose any random value for the GENESIS_NONCE in the code mentioned above.

If you do want to receive the funds from the genesis block transaction, then you need to understand how to change the transaction, which is currently hard coded as 013c01ff0001ffffffffffff03029b2e4c0281c0b02e7c53291a94d1d0cbff8883f8024f5142ee494ffbbd08807121017767aafcde9be00dcfd098715ebcf7f410daebc582fda69d24a28e9d0bc890d1

To understand what the different fields in that transaction mean, see How can I create a new Monero genesis block?

To understand what you need to change about that transaction, see Monero Genesis transaction & nonce, specifically:

create a wallet address and then create a transaction destined for your wallet on the main Monero network. You could then use a blockchain explorer to inspect the tx public key and output one-time public key, and copy/paste that into the genesis transaction.

Therefore, after creating your transaction on the main Monero network, alter the output #1 key field in the genesis transaction to match the output key from your transaction, and alter the transaction pubkey field in the genesis transaction to match the transaction public key from your transaction.

This will cause the destination of the genesis block funds to be your wallet.


When you are done reading all of knaccc's reference list, you can take a look at: node-genesis-block

@knaccc I don't have enough reputation to up vote your answer, and OP appears to have lost his craving to create a new altcoin :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.