{"id":26995,"date":"2021-11-09T20:07:00","date_gmt":"2021-11-09T20:07:00","guid":{"rendered":"https:\/\/accumulatenetwork.io\/?p=26995"},"modified":"2021-11-16T01:58:20","modified_gmt":"2021-11-16T01:58:20","slug":"identity-hierarchies-technical-guide","status":"publish","type":"post","link":"https:\/\/accumulate.org\/2021\/11\/identity-hierarchies-technical-guide\/","title":{"rendered":"Identity Hierarchies: Technical Guide"},"content":{"rendered":"\n
1. Introduction<\/strong><\/p>\n\n\n\n Accumulate Digital Identifiers (ADIs) are URL-based digital identities with hierarchical key sets that can manage data, tokens, and other identities. They can also be used to govern more complicated operations such as token issuance, off-chain consensus building, and multisignature transactions. While key hierarchies are useful for organizing priorities, identity hierarchies are useful for organizing objects. Objects might include different token types held by a user, different departments within an organization, or different data types collected by an array of IoT sensors. How a company organizes its departments, financial records, or data structures can be reproduced in the organization of objects on the Accumulate network.<\/p>\n\n\n\n We introduced ADIs and Lite Accounts in previous technical guides and differentiated their URL-based addresses from the addresses typically encountered in other blockchains. In this guide, we\u2019ll take a deeper look at how URLs are constructed in the Accumulate protocol with a particular focus on the identity hierarchy. <\/p>\n\n\n\n <\/p>\n\n\n\n 2. Nomenclature<\/strong><\/p>\n\n\n\n The identity hierarchy refers to the organization of tokens, data, and identities under an ADI or Lite Account. It is useful to know the following terms to better understand how identities are organized.<\/p>\n\n\n\n <\/p>\n\n\n\n 3. Architecture<\/strong><\/p>\n\n\n\n Any number of data accounts or sub-ADIs can be nested within an ADI. Accounts and sub-ADIs are independent from each other and possess their own sets of keys with which they can manage their assets, while the parent ADI possesses an administrative key set that can add, delete, transfer, or modify the security of its account or sub-ADI. Data and token accounts are terminal, meaning that sub-accounts cannot exist. However, sub-ADIs and accounts can be nested within another sub-ADI.<\/p>\n\n\n\n This architecture is illustrated in the figure below, where a hypothetical ADI is managing a sub-ADI, token account, and data account. The sub-ADI manages two different token accounts, as well as a data account and second level sub-ADI which in turn manages several data accounts. While not shown, multiple sibling sub-ADIs can be nested within a parent sub-ADI. Lite Accounts are excluded because their architecture only includes the Lite Account and its associated token accounts.<\/p>\n\n\n\n 4. Accounts<\/strong><\/p>\n\n\n\n Account URLs have the general format <prefix>:\/\/<ADI>\/<directory>\/<account> where the prefix acc:\/\/ specifies the Accumulate blockchain, ADI specifies the top-level identity in control of the URL, directory specifies a particular type of account, and account specifies data or tokens. Several examples of data and token accounts are provided in the table below for the hypothetical ADI \u2018bank\u2019. Note that both cryptocurrencies and tokenized assets may be considered token sub-chains.<\/p>\n\n\n\n Directories are optional, and we anticipate that their utility will be mostly confined to enterprise applications where greater organization of large numbers of accounts and sub-ADIs is needed. The directory label is defined by the user and can be single or multi-character. For the sake of clarity, data, tokens, and identities are given the labels d<\/em>, t<\/em>, and i<\/em>. However, an investment firm with ADI \u2018firm\u2019 may create data accounts with directories r<\/em> and c<\/em> for residential and commercial properties, while a cryptocurrency trader and non-fungible token (NFT) art collector may create token accounts with directories nft<\/em> and stable<\/em> to denote NFTs and stablecoins. Any label can be used so long as the object type is specified within the wallet. However, a directory label cannot be changed after it is created.<\/p>\n\n\n\n 5. Sub-ADIs<\/strong> <\/p>\n\n\n\n The structure of identity subchains for sub-ADIs is similar to those of an account, where any number of sub-ADIs can be nested under a directory that a user defines in their wallet as an identity. However, sub-ADIs can also be nested under other sub-ADIs. The format of an identity chain with multiple sub-ADIs is <prefix>:\/\/<ADI>\/{< directory>\/< subN<\/sub>-ADI>}N<\/sub> where N refers to an arbitrary number of sub-ADIs each with the same identity directory. In the example below, different departments within a bank are represented by different Sub-ADIs. The human resources department is further subdivided into sub-ADIs that specify different roles within the department.<\/p>\n\n\n\n 6. Combining Accounts and Sub-ADIs<\/strong><\/p>\n\n\n\n Data and token accounts may also be nested within sub-ADIs. This offers an alternative strategy for organizing large numbers of data and token accounts without needing to create multiple directories. Using the example of an investment firm that manages different types of properties, we can imagine that a team specializing in residential homes may be given a different sub-ADI than a team specializing in commercial real-estate. For simplicity, we refer to these combined addresses as URLs below.<\/p>\n\n\n\n Since accounts are terminal, it is not possible to nest sub-ADIs within accounts. While acc:\/\/firm\/i\/residential\/d\/properties is permitted, acc:\/\/firm\/d\/properties\/i\/residential is not.<\/p>\n\n\n\n 7. Development Timeline<\/strong> <\/p>\n\n\n\n For Testnet 1.0, users will only be able to create top-level ADIs and ADI token accounts. However, directories and sub-ADIs will be introduced in Testnet 2.0 to allow an organization to create identity hierarchies and manage keys held by sub-ADIs. Multiple accounts can be managed by a single ADI in Testnet 1.0, and multiple ADIs will be able to manage a single data or token account in Testnet 2.0. For example, a consortium of banks with different ADIs will be able to manage a tokenized asset like a bundle of real-estate.<\/p>\n","protected":false},"excerpt":{"rendered":" 1. Introduction Accumulate Digital Identifiers (ADIs) are URL-based digital identities with hierarchical key sets that can manage data, tokens, and other identities. They can also be used to govern more complicated operations such as token issuance, off-chain consensus building, and multisignature transactions. While key hierarchies are useful for organizing priorities, identity hierarchies are useful for […]<\/p>\n","protected":false},"author":2,"featured_media":27031,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"\n 1. Introduction<\/strong><\/p>\n\n\n\n Accumulate Digital Identifiers (ADIs) are URL-based digital identities with hierarchical key sets that can manage data, tokens, and other identities. They can also be used to govern more complicated operations such as token issuance, off-chain consensus building, and multisignature transactions. While key hierarchies are useful for organizing priorities, identity hierarchies are useful for organizing objects. Objects might include different token types held by a user, different departments within an organization, or different data types collected by an array of IoT sensors. How a company organizes its departments, financial records, or data structures can be reproduced in the organization of objects on the Accumulate network.<\/p>\n\n\n\n We introduced ADIs and Lite Accounts in previous technical guides and differentiated their URL-based addresses from the addresses typically encountered in other blockchains. In this guide, we\u2019ll take a deeper look at how URLs are constructed in the Accumulate protocol with a particular focus on the identity hierarchy.<\/p>\n\n\n\n <\/p>\n\n\n\n 2. Nomenclature<\/strong><\/p>\n\n\n\n The identity hierarchy refers to the organization of tokens, data, and identities under an ADI or Lite Account. It is useful to know the following terms to better understand how identities are organized.<\/p>\n\n\n\n <\/p>\n\n\n\n 3. Architecture<\/strong><\/p>\n\n\n\n Any number of data accounts or sub-ADIs can be nested within an ADI. Accounts and sub-ADIs are independent from each other and possess their own sets of keys with which they can manage their assets, while the parent ADI possesses an administrative key set that can add, delete, transfer, or modify the security of its account or sub-ADI. Data and token accounts are terminal, meaning that sub-accounts cannot exist. However, sub-ADIs and accounts can be nested within another sub-ADI.<\/p>\n\n\n\n This architecture is illustrated in the figure below, where a hypothetical ADI is managing a sub-ADI, token account, and data account. The sub-ADI manages two different token accounts, as well as a data account and second level sub-ADI which in turn manages several data accounts. While not shown, multiple sibling sub-ADIs can be nested within a parent sub-ADI. Lite Accounts are excluded because their architecture only includes the Lite Account and its associated token accounts.<\/p>\n\n\n\n 4. Accounts<\/strong><\/p>\n\n\n\n Account URLs have the general format <prefix>:\/\/<ADI>\/<directory>\/<account> where the prefix acc:\/\/ specifies the Accumulate blockchain, ADI specifies the top-level identity in control of the URL, directory specifies a particular type of account, and account specifies data or tokens. Several examples of data and token accounts are provided in the table below for the hypothetical ADI \u2018bank\u2019. Note that both cryptocurrencies and tokenized assets may be considered token sub-chains.<\/p>\n\n\n\n Directories are optional, and we anticipate that their utility will be mostly confined to enterprise applications where greater organization of large numbers of accounts and sub-ADIs is needed. The directory label is defined by the user and can be single or multi-character. For the sake of clarity, data, tokens, and identities are given the labels d<\/em>, t<\/em>, and i<\/em>. However, an investment firm with ADI \u2018firm\u2019 may create data accounts with directories r<\/em> and c<\/em> for residential and commercial properties, while a cryptocurrency trader and non-fungible token (NFT) art collector may create token accounts with directories nft<\/em> and stable<\/em> to denote NFTs and stablecoins. Any label can be used so long as the object type is specified\u00a0within the wallet. However, a directory label cannot be changed after it is created.<\/p>\n\n\n\n 5. Sub-ADIs<\/strong> The structure of identity subchains for sub-ADIs is similar to those of an account, where any number of sub-ADIs can be nested under a directory that a user defines in their wallet as an identity. However, sub-ADIs can also be nested under other sub-ADIs. The format of an identity chain with multiple sub-ADIs is <prefix>:\/\/<ADI>\/{< directory>\/< subN<\/sub>-ADI>}N<\/sub> where N refers to an arbitrary number of sub-ADIs each with the same identity directory. In the example below, different departments within a bank are represented by different Sub-ADIs. The human resources department is further subdivided into sub-ADIs that specify different roles within the department.<\/p>\n\n\n\n 6. Combining Accounts and Sub-ADIs<\/strong><\/p>\n\n\n\n Data and token accounts may also be nested within sub-ADIs. This offers an alternative strategy for organizing large numbers of data and token accounts without needing to create multiple directories. Using the example of an investment firm that manages different types of properties, we can imagine that a team specializing in residential homes may be given a different sub-ADI than a team specializing in commercial real-estate. For simplicity, we refer to these combined addresses as URLs below.<\/p>\n\n\n\n 7. Development Timeline<\/strong> For Testnet 1.0, users will only be able to create top-level ADIs and ADI token accounts. However, directories and sub-ADIs will be introduced in Testnet 2.0 to allow an organization to create identity hierarchies and manage keys held by sub-ADIs. Multiple accounts can be managed by a single ADI in Testnet 1.0, and multiple ADIs will be able to manage a single data or token account in Testnet 2.0. For example, a consortium of banks with different ADIs will be able to manage a tokenized asset like a bundle of real-estate.<\/p>\n","_et_gb_content_width":"","inline_featured_image":false},"categories":[14],"tags":[],"_links":{"self":[{"href":"https:\/\/accumulate.org\/wp-json\/wp\/v2\/posts\/26995"}],"collection":[{"href":"https:\/\/accumulate.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/accumulate.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/accumulate.org\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/accumulate.org\/wp-json\/wp\/v2\/comments?post=26995"}],"version-history":[{"count":6,"href":"https:\/\/accumulate.org\/wp-json\/wp\/v2\/posts\/26995\/revisions"}],"predecessor-version":[{"id":27044,"href":"https:\/\/accumulate.org\/wp-json\/wp\/v2\/posts\/26995\/revisions\/27044"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/accumulate.org\/wp-json\/wp\/v2\/media\/27031"}],"wp:attachment":[{"href":"https:\/\/accumulate.org\/wp-json\/wp\/v2\/media?parent=26995"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/accumulate.org\/wp-json\/wp\/v2\/categories?post=26995"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/accumulate.org\/wp-json\/wp\/v2\/tags?post=26995"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}<\/figure>\n\n\n\n
<\/figure>\n\n\n\n
<\/figure>\n\n\n\n
<\/figure>\n\n\n\n
<\/figure>\n\n\n\n
<\/figure>\n\n\n\n
ADI<\/strong><\/td> acc:\/\/bank<\/strong><\/td> acc:\/\/bank<\/strong><\/td><\/tr> Description<\/strong><\/td> Data<\/td> Tokens<\/td><\/tr> Directory<\/strong><\/td> d<\/td> t<\/td><\/tr> Account-1<\/strong><\/td> acc:\/\/bank\/d\/accounts<\/td> acc:\/\/bank\/t\/loans<\/td><\/tr> Account-2<\/strong><\/td> acc:\/\/bank\/d\/investments<\/td> acc:\/\/bank\/t\/securities<\/td><\/tr> Account-3<\/strong><\/td> acc:\/\/bank\/d\/transactions<\/td> acc:\/\/bank\/t\/realestate<\/td><\/tr> Account-N<\/strong><\/td> acc:\/\/bank\/d\/data<\/td> acc:\/\/bank\/t\/tokens<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n ADI<\/strong><\/td> acc:\/\/firm<\/strong><\/td> acc:\/\/user<\/strong><\/td><\/tr> Description<\/strong><\/td> Data<\/td> Data<\/td><\/tr> Directory<\/strong><\/td> Variable<\/td> Variable<\/td><\/tr> Sub-ADI-1<\/strong><\/td> acc:\/\/firm\/r\/properties<\/td> acc:\/\/user\/nft\/art<\/td><\/tr> Sub-ADI-2<\/strong><\/td> acc:\/\/firm\/c\/sales<\/td> acc:\/\/user\/stable\/USDT<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n ADI<\/strong><\/td> acc:\/\/bank<\/strong><\/td><\/tr> Description<\/strong><\/td> Identity<\/td><\/tr> Designator<\/strong><\/td> i<\/td><\/tr> Sub-ADI-1<\/strong><\/td> acc:\/\/bank\/i\/hr<\/td><\/tr> Sub-ADI-2<\/strong><\/td> acc:\/\/bank\/i\/legal<\/td><\/tr> Sub-ADI-3<\/strong><\/td> acc:\/\/bank\/i\/sales<\/td><\/tr> Sub-ADI-N<\/strong><\/td> acc:\/\/bank\/i\/tbd<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n ADI<\/strong><\/td> acc:\/\/bank<\/strong><\/td><\/tr> Description<\/strong><\/td> Identity<\/td><\/tr> Designator<\/strong><\/td> i<\/td><\/tr> Sub1<\/sub>-ADI-1<\/strong><\/td> acc:\/\/bank\/i\/hr<\/td><\/tr> Sub2<\/sub>-ADI-1<\/strong><\/td> acc:\/\/bank\/i\/hr\/i\/cpo<\/td><\/tr> Sub3<\/sub>-ADI-1<\/strong><\/td> acc:\/\/bank\/i\/hr\/i\/cpo\/i\/director<\/td><\/tr> SubN<\/sub>-ADI-1<\/strong><\/td> acc:\/\/bank\/i\/hr\/i\/cpo\/i\/director\/tbd<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n ADI<\/strong><\/td> acc:\/\/firm<\/strong><\/td><\/tr> Description<\/strong><\/td> Variable<\/td><\/tr> Directory<\/strong><\/td> Variable<\/td><\/tr> URL-1<\/strong><\/td> acc:\/\/firm\/i\/residential\/d\/properties<\/td><\/tr> URL-2<\/strong><\/td> acc:\/\/firm\/i\/commercial\/i\/office\/d\/properties<\/td><\/tr> URL-3<\/strong><\/td> acc:\/\/firm\/i\/commercial\/t\/securities<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n