I created a genesis.json initial_key using very helpful instructions from gensis.json initial key parameter: what is it?.

My question - does the initial key have any crypto significance or is it simply a hash for nodes to verify if they are properly on the same network?

Do I need to keep the private key generated for the initial_key safe? Does it have any use?

2 Answers 2


When you starts a fresh blockchain with genesis.json, system account eosio is automatically generated with initial_key. eosio is the only one BP in this environment, and the signing key for block production becomes the given initial_key.

If you change initial_key, you also need to change the signing key used by nodeos when it produces a block. You can find signature-provider option from config.ini of nodeos. You can run nodeos like nodeos --signature-provider=EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV=KEY:5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3 instead of putting this into config.ini.


Did some testing trying to make the initial_key something completely different than the initial signature-provider keypair and nodeos started throwing the following errors:

error 2020-06-06T07:36:25.001 nodeos    producer_plugin.cpp:1457      start_block          ] Not producing block because I don't have any private keys relevant to authority: [0,{"threshold":1,"keys":[{"key":"EOSRandomInitialKey","weight":1}]}]

So through my initial findings, yes - that key is significant otherwise subsequent blocks cannot be added.

I'd still love for someone to answer the why or how it works.

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.