force_adjust_total_issuance
Call v151 → current #9Adjusts TotalIssuance up or down (root only).
View calls on chainCall Workflow
This diagram shows the call execution flow: starting with force_adjust_total_issuance, passing through validation
(signature, nonce, mortality, fee payment), then pre-dispatch checks, followed by dispatch which emits events: TotalIssuanceForced and modifies storage: TotalIssuance, 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: validators
The Big Picture
A powerful root-only call that directly modifies the total supply counter. Used for protocol-level corrections when actual token distribution does not match the recorded TotalIssuance.
Use Cases
- Correcting accounting discrepancies
- Protocol-level supply adjustments
- Emergency fixes
From Chain Metadata
Adjust the total issuance in a saturating way. Can only be called by root and always needs a positive `delta`.
Input Parameters
| # | Name | Type | Description |
|---|---|---|---|
| 0 | direction | AdjustmentDirection | direction (AdjustmentDirection) |
| 1 | delta | Compact<u64> Cpt T::Balance | delta: Balance in chain native currency (RAO for TAO; ÷10⁹) (SCALE compact -> integer) |
Permissions
Origin
Unknown
Required Role
Permission data inferred from metadata. May be incomplete.
Requirements
- Caller is root account
- Delta is non-zero
Effects
Events Emitted
Storage Modified
Postconditions
- TotalIssuance increased or decreased by delta
- TotalIssuanceForced event emitted
Side Effects
- Can inflate or deflate the token supply
- Does not affect any individual account balances
Code Examples
// ----------------------------------------------------------------------
// HEADS UP: 1 arg below has a complex type with no usable default.
// Look for `undefined as any` and replace it with real value
// before running — the snippet compiles, but will fail at runtime as-is.
// ----------------------------------------------------------------------
import { createClient, Binary } from "polkadot-api";
import { getWsProvider } from "polkadot-api/ws";
import { sub } from "@polkadot-api/descriptors"; // generated by: npx papi add sub -w wss://entrypoint-finney.opentensor.ai:443
const client = createClient(getWsProvider("wss://entrypoint-finney.opentensor.ai:443"));
const api = client.getTypedApi(sub);
// Build force_adjust_total_issuance call (typed, named args)
const direction = undefined as any /* AdjustmentDirection — replace with real value */;
const delta = 0n;
const tx = api.tx.Balances.force_adjust_total_issuance({
direction,
delta,
});Runtime Info
- Pallet Index
- 5
- Call Index
- 9
- First Version
- v151
- Current Version
- v411