Account Identity

Polkadot provides a naming system that allows participants to add personal information to their on-chain account and subsequently ask for verification of this information by registrars.

Setting an Identity

Users can set an identity by registering through default fields such as legal name, display name, website, Twitter handle, Riot handle, etc. along with some extra, custom fields for which they would like attestations (see Judgements).

Users must reserve funds in a bond to store their information on chain: 20.258 DOT, and 0.066 DOT per each field beyond the legal name. These funds are locked, not spent - they are returned when the identity is cleared.

These amounts can also be extracted by querying constants through the Chain state constants tab on Polkadot-JS Apps.

1. Select identity as the selected constant query.

On the right-hand side, you can select the constants that you would like to view and add them onto the webpage by clicking the "plus" icon at the end of the bar.

Each field can store up to 32 bytes of information, so the data must be less than that. When inputting the data manually through the Extrinsics UI, a UTF8 to bytes converter can help.

2. The easiest way to add the built-in fields is to click the three vertical dots next to your account and select "Set on-chain identity".

3. A popup will appear, offering the default fields. Use the toggle to fill in any fields you wish.

4. Click Set Identity to finish the process.

5. Sign and submit the transaction.

NOTE: The Ledger app doesn't support the extrinsic for setting identity yet. As a workaround, create a primary identity with an on-chain account and then using that primary identity, assign a sub-identity to the Ledger stash.

Clearing an Identity

Users can clear their identity information and have their deposit returned. Clearing an identity also clears all sub-accounts and returns their deposits.

To clear an identity:

1. Navigate to the Accounts UI.

2. Click the three dots corresponding to the account you want to clear and select Set on-chain identity.

3. Select Clear Identity, and sign and submit the transaction.

In addition, the Council can kill an identity that it deems erroneous. This results in a slash of the deposit.

IMPORTANT: The set identity calls go on-chain. Hence, the contact information is available publicly, for both legitimate entities, like registrars or validators, but also scammers who might impersonate them.

The strings in the identity fields are good candidates for homograph attacks, as someone could list a fraudulent website (web3.f0undation instead of for example) and still get verified by the registrar (if the checks are automated)!

In a decentralized network, one should be cautious making transactions with accounts solely based on their identity. If an account on-chain claims to be of Web3 Foundation, it is wise to verify its authenticity by checking directly with Web3 Foundation or examining the established history of that account on-chain.
NOTE: If you are looking to set sub-accounts instead, see this article.