Identity Registry

Identity

On-chain identity system where accounts register metadata (name, URL, description) with a deposit, queryable by anyone.

Click items to navigate to their reference pages.

The Big Picture

The Identity Registry gives human-readable names to Subtensor addresses. Without it, every account is just a 48-character SS58 string. With it, validators, subnet owners, and delegates can publish their name, website, and contact info on-chain — making the network more navigable for humans and AI agents alike.

Why This Matters

Identity helps users verify who they are interacting with. Validators with registered identities are easier to evaluate and trust. Subnet owners use identity to brand their subnets.

Example Scenario

A validator calls set_identity with display: "NorthTensor", web: "https://northtensor.ai", and a description. This costs InitialDeposit + 1 × FieldDeposit (for the extra description field). Now any UI or API can show "NorthTensor" instead of "5Grw...QY".

Common Questions

Is the deposit lost?
No — the deposit is reserved (locked) in your account. When you clear your identity, the full deposit is returned.
Can anyone set any name?
Yes, there is no uniqueness enforcement or verification. Names are self-attested. UIs may add their own verification layers.

Use Cases

  • Registering validator or subnet owner identity
  • Displaying human-readable names in UIs
  • Building identity verification tools
  • Querying identity metadata via RPC or API

The Registry pallet provides on-chain identity for Subtensor accounts. Any coldkey can call `set_identity` to associate human-readable metadata — display name, legal name, web URL, social handles — with their account. Registration requires a deposit (InitialDeposit + FieldDeposit per additional field) that is returned when the identity is cleared.

Identities are stored in `IdentityOf` storage as a bounded set of key-value fields. Other pallets and UIs can read this storage to display human-friendly names instead of raw SS58 addresses. The pallet enforces a maximum number of additional fields (MaxAdditionalFields) to bound storage usage.

Triggers

  • User calls set_identity to register or update their identity
  • User calls clear_identity to remove their identity and reclaim deposit

Inputs (2)

ItemTypeRole
set_identity RegistrycallRegister or update on-chain identity metadata
clear_identity RegistrycallRemove identity and reclaim deposit

Outputs (3)

ItemTypeRole
IdentitySet RegistryeventEmitted when an identity is set or updated
IdentityDissolved RegistryeventEmitted when an identity is cleared
IdentityOf RegistrystorageMaps account → identity metadata (bounded fields)

Source Files

pallets/registry/src/lib.rs
set_identity()clear_identity()

Formulas

Identity Deposit

The deposit is a base cost plus a per-field cost, ensuring accounts pay proportionally for storage usage.

deposit = InitialDeposit + (num_additional_fields * FieldDeposit)
// Deposit is reserved (locked), returned on clear_identity

Version History

v101 Registry pallet with set_identity and clear_identity