sudo_set_difficulty
Call v138 → current #24Directly sets the POW difficulty for a subnet .
View calls on chainCall Workflow
This diagram shows the call execution flow: starting with sudo_set_difficulty, passing through validation
(signature, nonce, mortality, fee payment), then pre-dispatch checks, followed by dispatch and modifies storage: SubtensorModule.Difficulty, and finally post-dispatch where ExtrinsicSuccess is emitted and fees are settled.
Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.
Click items to navigate. Pan and zoom to explore.
Used by: subnet owners
The Big Picture
Manually sets difficulty, bypassing the automatic adjustment. Use sparingly - automatic adjustment is usually better.
Use Cases
- Emergency difficulty correction
- Initial difficulty setting
Input Parameters
Permissions
Origin
Root
Required Role
Requirements
- Caller is root or subnet owner
- Subnet exists
Effects
Storage Modified
Postconditions
- Difficulty updated directly
Side Effects
- Overrides automatic difficulty adjustment
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 sudo_set_difficulty call
const netuid = 1;
const difficulty = 0;
const call = api.tx[stringCamelCase("AdminUtils")][stringCamelCase("sudo_set_difficulty")](
netuid,
difficulty
);Runtime Info
View Source- Pallet Index
- 19
- Call Index
- 24
- First Version
- v138
- Current Version
- v393