Expand description
§Identity Pallet
§Overview
A federated naming system, allowing for multiple registrars to be added from a specified origin.
Registrars can set a fee to provide identity-verification service. Anyone can put forth a
proposed identity for a fixed deposit and ask for review by any number of registrars (paying
each of their fees). Registrar judgements are given as an enum, allowing for sophisticated,
multi-tier opinions.
Some judgements are identified as sticky, which means they cannot be removed except by complete removal of the identity, or by the registrar. Judgements are allowed to represent a portion of funds that have been reserved for the registrar.
A super-user can remove accounts and in doing so, slash the deposit.
All accounts may also have a limited number of sub-accounts which may be specified by the owner; by definition, these have equivalent ownership and each has an individual name.
The number of registrars should be limited, and the deposit made sufficiently large, to ensure no state-bloat attack is viable.
§Usernames
The pallet provides functionality for username authorities to issue usernames, which are independent of the identity information functionality; an account can set:
- an identity without setting a username
 - a username without setting an identity
 - an identity and a username
 
The username functionality implemented in this pallet is meant to be a user friendly lookup of accounts. There are mappings in both directions, “account -> username” and “username -> account”.
Usernames are granted by authorities and grouped by suffix, with each suffix being administered by one authority. To grant a username, a username authority can either:
- be given an allocation by governance of a specific amount of usernames to issue for free, without any deposit associated with storage costs;
 - put up a deposit for each username it issues (usually a subsidized, reduced deposit, relative to other deposits in the system)
 
Users can have multiple usernames that map to the same AccountId, however one AccountId can
only map to a single username, known as the primary. This primary username will be the result
of a lookup in the UsernameOf map for any given account.
§Interface
§Dispatchable Functions
§For General Users
set_identity- Set the associated identity of an account; a small deposit is reserved if not already taken.clear_identity- Remove an account’s associated identity; the deposit is returned.request_judgement- Request a judgement from a registrar, paying a fee.cancel_request- Cancel the previous request for a judgement.accept_username- Accept a username issued by a username authority.remove_expired_approval- Remove a username that was issued but never accepted.set_primary_username- Set a given username as an account’s primary.remove_username- Remove a username after its grace period has ended.
§For General Users with Sub-Identities
set_subs- Set the sub-accounts of an identity.add_sub- Add a sub-identity to an identity.remove_sub- Remove a sub-identity of an identity.rename_sub- Rename a sub-identity of an identity.quit_sub- Remove a sub-identity of an identity (called by the sub-identity).
§For Registrars
set_fee- Set the fee required to be paid for a judgement to be given by the registrar.set_fields- Set the fields that a registrar cares about in their judgements.provide_judgement- Provide a judgement to an identity.
§For Username Authorities
set_username_for- Set a username for a given account. The account must approve it.unbind_username- Start the grace period for a username.
§For Superusers
add_registrar- Add a new registrar to the system.kill_identity- Forcibly remove the associated identity; the deposit is lost.add_username_authority- Add an account with the ability to issue usernames.remove_username_authority- Remove an account with the ability to issue usernames.kill_username- Forcibly remove a username.
Re-exports§
pub use weights::WeightInfo;pub use pallet::*;
Modules§
- legacy
 - migration
 - Storage migrations for the Identity pallet.
 - pallet
 - The 
palletmodule in each FRAME pallet hosts the most important items needed to construct this pallet. - weights
 - Autogenerated weights for 
pallet_identity 
Structs§
- Registrar
Info  - Information concerning a registrar.
 - Registration
 - Information on an identity along with judgements from registrars.
 
Enums§
- Data
 - Either underlying data blob if it is at most 32 bytes, or a hash of it. If the data is greater than 32-bytes then it will be truncated when encoding.
 - Judgement
 - An attestation of a registrar over how accurate some 
IdentityInfois in describing an account. 
Traits§
- Identity
Information Provider  - Information concerning the identity of the controller of an account.
 
Type Aliases§
- Registrar
Index  - An identifier for a single name registrar/identity verification service.