I was following this tutorial all the way up to registering a parachain ID. https://docs.substrate.io/tutorials/connect-relay-and-parachains/connect-a-local-parachain/#register-with-the-local-relay-chain

My parachain is based on polkadot-v0.9.18, a little old, with the latest(I think) Polkadot browser app v0.113.1.

I chose Option 1: paraSudoWrapper.sudoScheduleParaInitialize

Polkadot browser app -> Developer -> Extrinsics > submission tab -> paraSudoWrapper -> sudoScheduleParaInitialize(id, genesis)

In the extrinsics parameters, specify:

  • Account = ALICE
  • Set the id: ParaId to 2000
  • genesisHead: upload the file para-2000-genesis (from the previous step)
  • validationCode: upload the file para-2000-wasm (from the previous step)
  • Set the parachain: Bool option to Yes
  • click on "Submit Transaction"

Green tick: parasSudoWrapper.sudoScheduleParaInitialize inblock

Red error: System.ExtrinsicFailed: Bad Origin

Blue light bulb: balances.Withdraw, balances.Deposit, extrinsic event

It seems the tutorial is a little out of date, not mentioning about which account to use... but what did I do wrong?

1 Answer 1


You need to wrap the call into sudo.Sudo. The call sudoScheduleParaInitialize requires that the origin is sudo.

  • Thank you! It should be Polkadot browser app -> Developer -> Sudo > Sudo Access tab!
    – Russo
    Apr 29, 2022 at 14:52

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.