Identity Setup

Dock provides a naming system that allows participants to add personal information to their on-chain account and subsequently ask for verification by registrars. It is strongly recommended that validators create identities for their stash accounts.

Users can set an identity by registering through default fields such as legal name, display name, website, Twitter handle, Riot handle, as well as custom fields which they want verified (see Judgements).

Users must reserve funds in a bond to store their information on chain: 20.258, and 0.066 per each field beyond the legal name. These funds are locked, not spent, and are returned when the identity is cleared. These amounts can also be extracted by querying constants through the Chain state constants tab on the DOCK-JS App.

Identity Setup Steps

Option1: The easiest way to add the built-in fields is to click the three dot icon next to your account and select "Set on-chain identity"

Enter your information in the fields below and click Set identity.

Option 2: Go to the Developer tab and select Chain state.

Next, select identity as the selected constant query.

Select the constants that you would like to view and add them onto the webpage by clicking the + icon at the end of the bar. Each field can store up to 32 bytes of information. When inputting the data manually through the Extrinsics UI, a UTF8 to bytes converter can help.

Enter your information in the fields below and click Set identity.

Custom Fields

To add custom fields beyond the default ones, use the Extrinsics UI to submit a raw transaction by first clicking "Add Item" and adding any field name you like. The example below adds a field steam, which is a user's Steam username. The first value is the field name in bytes ("steam") and the second is the account name in bytes ("theswader"). The display name also has to be provided, otherwise, the Identity pallet would consider it wiped if we submitted it with the "None" option still selected. That is to say, every time you make a change to your identity values, you need to re-submit the entire set of fields: the write operation is always "overwrite", never "append".

Setting a custom field

Note that custom fields are not displayed, only official fields for displayed now. If you want to check that the values are stored, use the Chain State UI to query the active account's identity info.

Raw values of custom fields are available on-chain

Format Caveat

Please note the following caveat: because the fields support different formats, from raw bytes to various hashes, a UI has no way of telling how to encode a given field it encounters. The Dock UI currently encodes the raw bytes it encounters as UTF8 strings, which makes these values readable on-screen. However, given that there are no restrictions on the values that can be placed into these fields, a different UI may interpret them as, for example, IPFS hashes or encoded bitmaps. This means any field stored as raw bytes will become unreadable by that specific UI. As field standards are adopted, this will become easier to use, but for now, every custom implementation of displaying user information will likely have to make a conscious decision on the approach to take or support multiple formats and then attempt multiple encodings until the output makes sense.

Clearing and Killing an Identity

Clearing: 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.

Killing: The Council can kill an identity that it deems erroneous. This results in a slash of the deposit.