Because of Polkadot's rich feature set, an account's balance can exist in multiple states without ever leaving the account. Depending on how the funds are being used, portions of the balance may be transferable, locked, or reserved.


This article provides a brief overview of these balance states. For a more in-depth explanation, check out the Polkadot Wiki article on account balances.


⛔ READ THIS FIRST! 

This article assumes all pallets use the 'fungible' trait, meaning they follow a common standard. However, some components (e.g., multisig, proxy, etc.) still use the 'currency' trait, so actual behavior may differ under certain circunstances. If you have any questions, feel free to reach out to us here.


TABLE OF CONTENTS


Balance types


In Polkadot, you primarily deal with three types of balances: transferable, locked, and reservedThese are detailed below.


For most operations, transferable balance is what you are interested in. When performing actions on the Polkadot network, you must have some DOT in your transferable balance to pay for transaction fees. Balances affect your account differently depending on the type:

  • Transferable (or spendable): Transferable tokens are fully available. These tokens are the ones that can be transferred, used to pay transaction fees, and become locked or reserved for other purposes. 
  • Locked (or frozen): Tokens are locked when they are used to serve their utility purpose on the chain. They cannot be transferred, but they can be used for multiple operations at the same time. Vesting or participating in Polkadot OpenGov locks your funds.
  • Reserved (or held): Certain actions require reserving free tokens. These tokens act as a deposit set aside for an operation and still belong to the account holder, but they cannot be used for other operations that might reserve them. Actions like staking, adding proxies, or multisig calls reserve funds.


For more information on balances and locks, visit this Polkadot Wiki page.


Locked balance


Locks are usually introduced when the tokens are used for their utility purposes. Each purpose introduces a new lock, but they usually don't stack, meaning the same frozen amount can be used for several purposes. Locked tokens are usually accompanied by an unlocking period, a "cooldown" period before the lock expires after the reason for the freeze has ceased to exist. 


These are some of the most common lock types:

  • Democracy: This lock applies when participating in Polkadot OpenGov, usually through voting in referenda, either directly or through a delegation. Depending on the voluntary locking applied to the action (e.g., voting or delegating), the locks might last longer.
  • Vesting: This lock can be applied by the sender of tokens through a "vested transfer." These tokens are received locked, and unlock over a period of time, usually in small increments. Vesting tokens unlock based on a vesting schedule and are considered lazy payouts, but they can be used for any other action that introduces a lock (e.g., participating in Polkadot OpenGov).
ℹ️ GOOD TO KNOW

Locked funds can still be used for staking, even though staking would place a reserve on the same funds.

Reserved balance


Tokens can be reserved for various reasons that use space in the chain state. Unlike locks, reserves do stack. So, each new action that requires a deposit reserves the necessary amount added to any previous reserves that might exist. 


⚠️ ATTENTION

If you see the error 'LiquidityRestrictions' when adding a proxy or initiating a multisig call, it means the pallet still uses the old 'Currency' trait and it won't let you reserve funds if your transferable balance is lower than your frozen (e.g. from governance). This will be fixed once all pallets move to use 'Fungible' traits.



These are the actions that reserve balance:

  • Staking: This is probably the most common reserve and applies when tokens are staked to nominate, validate, or join a nomination pool.
  • Deposits: Some actions put a hold on the free balance, like adding a proxy, initiating multisig calls, referendum deposits, etc.


View your balance on Subscan


Your account balance can be displayed by your wallet and viewed on various block explorers. For example, on Subscan, you can search your account's public address to see detailed information (including your locked and reserved balances) in the Balance section.


The screenshot below shows the following balance on the Polkadot network:

  • Total balance: 2,821.639 DOT
  • Reserved balance: 2,819.781 DOT. Of which, 2,818 DOT are currently being used to nominate validators, and 1.1 DOT is unbonding (but still reserved).
  • Locked by referenda: 2,700 DOT.
  • Locked on a vesting schedule: 906.09 DOT.
  • The transferable balance: 1.857 DOT. This is the balance that is neither locked nor reserved, and it does include the existential deposit.