I am running a solo chain with Genesis authorities set up for AURA and GRANPA. Now I have to add new validators and for that, I am planning to add substrate_validator_set and pallet_session. During OnRuntimeUpgrade what is the correct way to set Keys storage item in pallet_session?

1 Answer 1


You can follow this code to set up the session keys during a runtime upgrade.

However, there is a distinction.

BEEFY is an optional feature that allows the use of a placeholder key for genesis.

In contrast, AURA is mandatory. You must pre-generate the keys, put them into code and the validator nodes. Otherwise, your chain will probably be bricked after the runtime upgrade.

  • The shared example describes the change in session_keys but i am adding pallet_session first time. can you please share such example. Jan 17 at 10:07
  • should i need to set Aura authorities again during migration ? Jan 17 at 14:52
  • Follow that example. Replace storage::translate with storage::put or storage::insert, depending on your needs. Jan 17 at 16:25
  • Based on my current understanding, you don't need to reset the AURA authorities. However, you should always test these on your testnet first. Jan 17 at 20:24

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.