Identity Graph
An overview of the technical concepts required to understand the functionality of the Identity Hub
Web3 aggregated identities refer to digital profiles with verifiable ownerships and personal representation, and are formed by a serie of personal data extracted from various databases such as blockchains, decentralized storage systems and centralized platforms.
To form an aggregated identity in Web3, a user needs to prepare some identity metadata to create his personal Decentralized Identity Graph.
An identity graph (ID graph) is a map of user's owning accounts on different blockchains and systems. It is decentralized, cryptographically proven and independently verifiable by design.

The following animation shows the merge of two identity (User A & User B) graphs that share a common address.
An ID graph is composed by a list of the Web3 and Web2 accounts owned by the owner and their corresponding proofs.
{
"version": "v0.1",
"did": "did:mcp:0xd8ebc2be207451ff9eafb3ef7fada06d64d05059",
"main": {
"address": "0x8ad12345c3bc8598d2f602d63e927f5995dcf5d0",
"chain": "ethereum"
},
"web2List": [
{
"cid": "bafybeid5fo6ig6ilobawudqwgsu7so5guaedgvkdwyo6k5hnvlqiqjlhaq",
"account": "x3",
"socialType": "github",
"validator": {
"name": "Litentry Technologies GmbH",
"validatedAt": "1645810190",
"signature": "0x0c4c08460e651c6d6949af21c5b290bed39ffcae6cfdb5ef374760758c9387f3643992be7d5b6f5373fb78540b116750471a9fbcc68e5e5ccb5330250158bfab1c"
}
}
],
"web3List": [
{
"cid": "bafybeihj43osgpx3u5zo567lod25rzfxoqrbspb27v2akdwrgwugziddf4",
"proofs": ["bafybeidcihuc74xxgatyag2q6iiv7tjwn6vjgc4dk6jravthcryrazzkru"],
"address": "5DXZdKSFTEx5rE25dnxamebAoSsA4fqgGT9VPFiiouxP2xM1",
"chain": "polkadot",
"validator": {
"name": "Litentry Technologies GmbH",
"validatedAt": "1645810190",
"signature": "0x0c4c08460e651c6d6949af21c5b290bed39ffcae6cfdb5ef374760758c9387f3643992be7d5b6f5373fb78540b116750471a9fbcc68e5e5ccb5330250158bfab1c"
}
},
{
"cid": "bafybeibic6syxpgnvyp5udyrhhuosm3thbslrfm4ivaauqxtus6vbjghsm",
"proofs": ["bafybeibbsripq672skohuiy6ruztjr5hwclkwoswj6yilt5rkezgmn4f3u"],
"address": "5GgmqtSXGuh2d3LxRiYo691bL4iTYQNjLCAYNakj4xfmLjnm",
"chain": "polkadot",
"validator": {
"name": "Litentry Technologies GmbH",
"validatedAt": "1645810356",
"signature": "0x0c5eb79402646ab7390355404243d73c01cde9ccabd0c26cb1803599c44de8621f69c05848c0e254bdf5849b3ff69fd43b82f3e346cdac3175d052cedf107c3c1c"
}
}
],
"createdAt": "1646836239",
"updatedAt": "1646836239"
}
Each ID graph is extracted by ID pairs. An ID pair is made of two decentralized verifiable ownership claims. Each ID pair claims the joint ownership of two accounts, it can be a pairing of two web3 addresses, or a pairing of a web3 address and a web2 account. Everyone can verify and trust the ID pair.
Each ID graph is represented in its unique DID. MCP uses Schnorrkel/Ristretto x25519 ("sr25519") as its DID derivation.
An ID pair is the smallest combination of an ID graph. For ID graphs that have a common crypto address, one ID graph will be merged into the other ID graphs and keep only one MCP DID. (For a reference see the animation above)
When the ID graph is ready, it can be used as a credential of account ownership by the user. When this identity graph would be given directly to dApps, users would face a privacy problem: Once a dApp obtain the user's ID graph, it may save the addresses to continuously track the user's on-chain behaviour without user permission. We have implemented additional product features to make sure the users on-chain data stays hidden in the dark forest.
To allow user to control their personal data usage, ID-hub is building two important components into its architecture: Personal Profile Config and Confidential Data Aggregation.
Last modified 28d ago