Skip to content

Polkadot-JS Account Guides

Polkadot-JS is for developers and power users only. If you need help using the Polkadot Developer Interface, you can contact the Polkadot Support Team.

An account created on Polkadot can also be used on multiple chains in the ecosystem. More specifically, the account of a chain that uses the *25519 account address format (the latest list can be accessed on the ss58 registry repository) is cross-compatible with all the chains that use the similar format. To switch between the accounts on different chains, you can follow the guidelines in this article. Subscan has a tool you can use to convert your address between the different chain formats.

key can be used to sign transactions on behalf of the respective accounts on multiple chains. Using a single account on multiple chains is convenient, as you do not have to deal with multiple mnemonic phrases or private keys. But, if your account gets compromised on one chain, the attacker can gain full access to the accounts on all other chains. This also has implications for the account holder's privacy, as knowing the identity of an account on one chain can expose the account holder's identity on all the chains. In the Accounts tab, the Polkadot Developer Interface displays a warning message next to each Account you are using on multiple chains and recommends using different Accounts on different chains (see below).

warning multiple chains

On Polkadot Developer Signer, you can copy your address by clicking the account's icon while the desired chain format is active. E.g. selecting "Substrate" as the format will change your address, and clicking the colorful icon of your account will copy it in that format.

this video tutorial and visit this article.

The Polkadot Developer Signer (the Polkadot Extension) provides a reasonable balance of security and usability. It provides a separate local mechanism to generate your address and interact with Polkadot.

This method involves installing the Polkadot Extension and using it as a “virtual vault," separate from your browser, to store your private keys. It also allows the signing of transactions and similar functionality.

It is still running on the same computer you use to connect to the internet and thus is less secure than using Parity Signer or other air-gapped approaches.

Account Backup using the Polkadot Developer Signer

Section titled “Account Backup using the Polkadot Developer Signer”

See this video tutorial and visit this page to know how to back up your account.

Reset Password using the Polkadot Developer Signer

Section titled “Reset Password using the Polkadot Developer Signer”

Let's say you created ACCOUNT 1 protected by password PSW 1. To reset the password of your ACCOUNT 1 using the browser extension, you must follow the following steps:

  • Go to ACCOUNT 1 on the browser extension and click "Forget account". This action will delete the access to your account. Note that your tokens are still in your account on the Polkadot network.
  • On the browser extension click the "+" button in the top right corner and select the option "Import account from pre-existing seed". After entering the mnemonic phrase, you can choose a new password, PSW 2.

Restore Account on the Polkadot Developer Signer

Section titled “Restore Account on the Polkadot Developer Signer”

Local in-browser account storage is disabled by default on the Polkadot Developer Interface. To create an account using the Polkadot Developer Interface, navigate to settings > account options and click on allow local in-browser account storage in the drop-down menu. Using the Polkadot-JS user interface without a browser extension is not recommended. It is the least secure way of generating an account. It should only be used if all other methods are not feasible.

Account Backup using the Polkadot Developer Interface

Section titled “Account Backup using the Polkadot Developer Interface”

Reset password using the Polkadot Developer Interface

Section titled “Reset password using the Polkadot Developer Interface”

To reset the password of an account created with Polkadot-JS Apps UI, you need to go to the "Accounts" tab, click the icon with three vertical dots on your account and select "Change this account's password".

See this video tutorial to learn how to change the password for an account created on the Polkadot Developer Interface (i.e. a non-injected account).

Restore Account on the Polkadot Developer Interface

Section titled “Restore Account on the Polkadot Developer Interface”

See this video tutorial and this page to learn how to restore your account on the Polkadot Developer Interface.

In the example, the locked balance is 0.55 KSM because the biggest lock is on democracy and is 0.55 KSM. As soon as the democracy lock is removed the next biggest lock is on staking 0.5 KSM (bonded 0.4 KSM + redeemable 0.1 KSM). This means that the locked balance will be 0.5 KSM, and 0.05 KSM will be added to the transferable balance. After redeeming the unbonded 0.1 KSM, the locked balance will be 0.4 KSM, and an additional 0.1 KSM will be added to the transferable balance. Now the biggest lock is still the bonded one. This means that even if we remove the vested lock, the locked balance will still be 0.4 KSM and no tokens will be added to the transferable balance. To free those bonded tokens we will need to unbond them and wait for the unbonding period to make them redeemable. If we remove the proxy the reserved funds will be automatically added to the transferable balance.

In the Polkadot Developer Interface, you can also query account data under Developer > Chain state. Under selected state query choose the system pallet followed by account(AccountId32): FrameSystemAccountInfo, under Option choose an account, and then click on the "+" button on the right.

account_balance_types

Account information include:

  • nonce, the number of transactions the account sent.
  • consumers, the number of other modules that currently depend on this account's existence. The account cannot be reaped until this is zero.
  • providers, the number of other modules that allow this account to exist. The account may not be reaped until this and sufficients are both zero.
  • sufficients, the number of modules that allow this account to exist for their own purposes. The account may not be reaped until this and providers are both zero.
  • data, the additional data that belongs to this account. Used to store the balance(s) in a lot of chains.

More in-depth information about the above data can be found in the substrate code base.

The AccountData structure defines the balance types in Substrate. The three types of balances include:

  • free, is the balance that is free but not necessarily transferable.
  • reserved, is the balance that is not free, and it is put on hold for on-chain activity such as staking, deposits for multi-signature calls, setting up proxies and identities, and other actions that hold state on the network.
  • frozen, is the amount that is free to use for on-chain activity but is locked in governance, or vesting.

The usable or transferable balance of the account is currently calculated using the formula below:

transferable = free - max(frozen - reserved, ED)

Where ED is the existential deposit. The total balance of the account is the sum of free and reserved funds. The flags describe extra information about the account.

More in-depth information about the above data can be found in the balances pallet in the Substrate code base.

The vanity generator is a tool on Polkadot Developer Interface that lets you generate addresses that contain a specific substring. For the tutorial on how to create an account using Vanity Generator, visit this article.

Some newly generated JSON account files cannot be imported (restored) into older wallet software. This is due to an enhanced encryption method, noticeable in a slight delay when encrypting/decrypting your wallet. If you cannot load a JSON file, please use the latest version of the wallet software. If you cannot load it, ensure that the wallet software uses the newest version of the Polkadot API.

Last updated: