upgrade_accounts
Call v149 → current #6Upgrades legacy accounts to the new balance format.
View calls on chainCall Workflow
This diagram shows the call execution flow: starting with upgrade_accounts, passing through validation
(signature, nonce, mortality, fee payment), then pre-dispatch checks, followed by dispatch which emits events: Upgraded and modifies storage: Account, 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: developersvalidators
The Big Picture
After runtime upgrades that change the account storage format, this call migrates accounts from the old format to the new one. Usually needed after major protocol upgrades.
Use Cases
- Post-upgrade account migration
- Preparing accounts for new features
- Batch account maintenance
From Chain Metadata
See [`Pallet::upgrade_accounts`].
Input Parameters
| # | Name | Type | Description |
|---|---|---|---|
| 0 | who | Vec<AccountId> Vec | Who account address |
Permissions
Origin
Unknown
Required Role
Permission data inferred from metadata. May be incomplete.
Requirements
- Accounts exist in legacy format
- Caller is signed
Effects
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 upgrade_accounts call
const who = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";
const call = api.tx[stringCamelCase("Balances")][stringCamelCase("upgrade_accounts")](
who
);Runtime Info
- Pallet Index
- 5
- Call Index
- 6
- First Version
- v149
- Current Version
- v393