GGS-1: Gen6 Identity Standard
Stage: Established Standard
Definitions
Identity
An identity is a representation of an individual's (Self's) outward manifestation, regardless of being physical or subjective.
Gen6 Identity
Self-issued and digitally signed identity, created using the Gen6 standard format. To create a valid Gen6 identity, its hash needs to be submitted to the Gen6 Public Blockchain: for keeping the proof of existence immutable. The identity data can stored anywhere chosen by the issuer's Self.
Gen6 Identity Controller
The Self who is controlling the private key from which the public key is derived which is connected to the identity on the blockchain.
Gen6 Identity Visiblity and Permission Control
Each field in the identity can needs to have the following options:
Public (anyone, even AI and bots can see/read the identity data)
Community (only members of the Community can see/read the identity data)
Private (only specified addresses can see/read the identity data)
Gen6 Identity Types
Identity types are not part if the Identity Data, but part of the standard. Each Gen6 Identity can have one of the following Type:
Human - Those identities who passed the Proof of Humanity Challenge
Organization - For organizations recognized by Gen6 Community
AI / Bot - Default for all account
Obtaining Verified Human or Organization type are done through Gen6's governance. First it needs to be requested, then the community makes the decision.
Standard Gen6 Identity Format
The identity's raw form is a Merkle Tree with a Forest and singular Root Hash. The whole or parts of the tree are convertible to JSON.
The Identity's Root Hash is stored on Gen6 Blockchain.
Tree Branch Hashes are stored on any G6 MiddleWare instance or other viable storage.
All branches (except H0) include KEY : VALUE ; VISIBILITY : VALUE ; PEPPER
"Pepper" is a random string used to protect the data against bruteforce attacks if the Hash is disclosed.
Each Identity requires a Controller Gen6 address, but the Identity can be empty, symbolizing freedom. As part of the Identity data, it is also used to protect against Identity Theft (so Root Hash is never the same even if all other parts of the data matches someone else's identity).
One Gen6 Address can have only one Gen6 Identity, but anyone can create as many addresses as they want.
Fields in the Gen6 Identity ("H" as Hash of Data):
H0 Controller Address - Must be the signer address. -> SS58 Address
H1 Name -> String (Max 256 characters, can be concatenated from more frields into one)
H2 Bio -> String (Max 512 characters)
H3 Location -> String (Max 256 characters)
H4 Domain -> String (Max 256 characters)
H5 Email -> String (Max 256 characters)
H6 NCrypt ID -> String (Max 256 characters)
H7 Social Link 1. -> Key:Value Pair (Max 128 characters)
H8 Social Link 2. -> Key:Value Pair (Max 128 characters)
H9 Social Link 3. -> Key:Value Pair (Max 128 characters)
H10 Social Link 4. -> Key:Value Pair (Max 128 characters)
H11 Social Link 5. -> Key:Value Pair (Max 128 characters)
H12 Social Link 6. -> Key:Value Pair (Max 128 characters)
H13 Social Link 7. -> Key:Value Pair (Max 128 characters)
H15 Social Link 8. -> Key:Value Pair (Max 128 characters)
H16 Social Link 9. -> Key:Value Pair (Max 128 characters)
H17 Custom Field -> Key:Value Pair (Max 256 characters)
H18 Custom Field -> Key:Value Pair (Max 256 characters)
... and so on, until a maximum of H64.
Not part of the standard, but there 9 Social Links are recommended for user friendliness:
H7 Mastodon, Example: https://infosec.exchange/@six
H8 Youtube, Example: https://www.youtube.com/@CryptoCTF
H9 X, Example: https://x.com/LifeInGen6
H10 LinkedIn, Example: https://www.linkedin.com/company/g6networks
H11 Telegram, Example: https://t.me/g6networks
H12 Instagram, Example: https://www.instagram.com/sarcasm_only
H13 TikTok, Example: https://www.tiktok.com/@tbird00s/
H14 Whatsapp, Example: https://chat.whatsapp.com/3kHakS4sLa9za
H15 Discord, Example: https://discord.gg/Z95yBdFGrX
H16 Git (already custom), Examples: https://g.g6.network/g6-networks-release/ or https://github.com/LifeInGen6
Important note for FE developers: You need to send all 64 values (even if empty) to the MW API, otherwise your request will be rejected. This is needed to proects the integrity and structure across platforms (and in 2025 it is really not a problem to send a few more fields).
Gen6 Multi Merkle Tree Structure
Each leaf is a Tree, allowing verification of data separately and permission control.
Branch Hashes are stored by any G6 MiddleWare or any other viable storage.
Data of the the Tree stored by any G6 MiddleWare or any other viable storage.
From the G6 Merkle Tree, Identity data is turned into JSON to be used in FE and APIs
Topology of Standard Gen6 Identity

Last updated
Was this helpful?