remove_key

Call v151 → current #4

Permanently removes the sudo key, disabling all sudo functionality.

View calls on chain

Click items to navigate. Pan and zoom to explore.

Used by: validatorssubnet ownersdevelopers

The Big Picture

The ultimate act of decentralization - removing sudo entirely. Once called, no one can execute sudo calls ever again. The network becomes fully trustless, relying only on its designed governance mechanisms. This cannot be undone and signals that the network operators are committed to decentralization.

Why This Matters

True decentralization means no backdoors. As long as sudo exists, someone has ultimate power over the network. remove_key is the irreversible step that proves the network is truly trustless.

Example Scenario

After years of stable operation and robust governance mechanisms, the network is ready to go fully trustless. The sudo key holder (likely a governance multisig) calls remove_key(). KeyRemoved event fires. Sudo is gone forever.

Common Questions

Can this be undone?
No. Once the key is removed, there is no way to restore sudo functionality. Make absolutely sure the network is ready before calling this.
What if we need emergency access later?
You won't have it. Ensure your governance mechanisms (Democracy, Council, etc.) are mature and can handle all scenarios before removing sudo.

Use Cases

  • Finalize transition to fully decentralized governance
  • Signal that network is production-ready and trustless
  • Remove administrative backdoor permanently

From Chain Metadata

Permanently removes the sudo key. **This cannot be un-done.**

This call takes no parameters.

Permissions

Origin
Root
Required Role

Requirements

  • Signer must be the current sudo key

Effects

Events Emitted

Storage Modified

Postconditions

  • Sudo.Key storage is cleared
  • No account can execute sudo calls
  • KeyRemoved event emitted

Side Effects

  • All sudo functionality is permanently disabled
  • Network becomes fully decentralized (no admin override)

Code Examples

import { ApiPromise, WsProvider } from "@polkadot/api";
import { stringCamelCase } from "@polkadot/util";

const provider = new WsProvider("wss://entrypoint-finney.opentensor.ai:443");
const api = await ApiPromise.create({ provider });

// Build remove_key call (no parameters)
const call = api.tx[stringCamelCase("Sudo")][stringCamelCase("remove_key")]();

Runtime Info

Pallet Index
12
Call Index
4
First Version
v151
Current Version
v393