1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[2257],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>m});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function s(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?i(Object(a),!0).forEach((function(t){r(e,t,a[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):i(Object(a)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))}))}return e}function l(e,t){if(null==e)return{};var a,n,r=function(e,t){if(null==e)return{};var a,n,r={},i=Object.keys(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],t.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var o=n.createContext({}),d=function(e){var t=n.useContext(o),a=t;return e&&(a="function"==typeof e?e(t):s(s({},t),e)),a},c=function(e){var t=d(e.components);return n.createElement(o.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},u=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,i=e.originalType,o=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=d(a),u=r,m=p["".concat(o,".").concat(u)]||p[u]||h[u]||i;return a?n.createElement(m,s(s({ref:t},c),{},{components:a})):n.createElement(m,s({ref:t},c))}));function m(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=a.length,s=new Array(i);s[0]=u;var l={};for(var o in t)hasOwnProperty.call(t,o)&&(l[o]=t[o]);l.originalType=e,l[p]="string"==typeof e?e:r,s[1]=l;for(var d=2;d<i;d++)s[d]=a[d];return n.createElement.apply(null,s)}return n.createElement.apply(null,a)}u.displayName="MDXCreateElement"},998:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>m,frontMatter:()=>l,metadata:()=>d,toc:()=>p});var n=a(7462),r=a(3366),i=(a(7294),a(3905)),s=["components"],l={title:"Elastos Identity (EID) Chain"},o=void 0,d={unversionedId:"learn/sidechains/eid",id:"learn/sidechains/eid",title:"Elastos Identity (EID) Chain",description:"The Elastos Identity (EID) chain is a crucial component of the Elastos ecosystem, providing a decentralized solution for digital identity and assets. EID supports the issuance of DIDs for key stakeholders and applications on Web3, where each identity comes with a public private key pair and unique ELA address.",source:"@site/../docs/2.learn/sidechains/eid.md",sourceDirName:"2.learn/sidechains",slug:"/learn/sidechains/eid",permalink:"/learn/sidechains/eid",draft:!1,editUrl:"https://github.com/elastos/Elastos.Wiki/edit/master/website/../docs/2.learn/sidechains/eid.md",tags:[],version:"current",lastUpdatedBy:"racollette",lastUpdatedAt:1677302017,formattedLastUpdatedAt:"Feb 25, 2023",frontMatter:{title:"Elastos Identity (EID) Chain"},sidebar:"learnSidebar",previous:{title:"Elastos Smart Chain (ESC)",permalink:"/learn/sidechains/esc"},next:{title:"Cross Chain Protocol",permalink:"/learn/sidechains/cross-chain"}},c={},p=[{value:"Decentralized Identifiers (DIDs)",id:"decentralized-identifiers-dids",level:3},{value:"Smart Contracts",id:"smart-contracts",level:3},{value:"Implementation",id:"implementation",level:3},{value:"Relevant Links",id:"relevant-links",level:2}],h={toc:p},u="wrapper";function m(e){var t=e.components,a=(0,r.Z)(e,s);return(0,i.kt)(u,(0,n.Z)({},h,a,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"The ",(0,i.kt)("strong",{parentName:"p"},"Elastos Identity (EID)")," chain is a crucial component of the Elastos ecosystem, providing a decentralized solution for digital identity and assets. EID supports the issuance of ",(0,i.kt)("a",{parentName:"p",href:"/learn/dids/intro"},"DIDs")," for key stakeholders and applications on Web3, where each identity comes with a public private key pair and unique ELA address."),(0,i.kt)("h3",{id:"decentralized-identifiers-dids"},"Decentralized Identifiers (DIDs)"),(0,i.kt)("p",null,"A DID is a unique identifier that allows users to claim and manage their online identity in a secure and decentralized way. The EID chain implements the ",(0,i.kt)("a",{parentName:"p",href:"https://www.w3.org/TR/did-core/"},"W3C DID standard"),", ensuring interoperability with other blockchain networks."),(0,i.kt)("p",null,"By storing DIDs on the blockchain, the EID chain provides users with full control over their digital identity and assets."),(0,i.kt)("h3",{id:"smart-contracts"},"Smart Contracts"),(0,i.kt)("p",null,"The EID chain is also an ",(0,i.kt)("a",{parentName:"p",href:"https://ethereum.org/en/developers/docs/evm/"},"EVM-compatible")," platform also supports the development of smart contracts, enabling the creation of a wide range of dApps and digital content that can extend the utility of DIDs."),(0,i.kt)("p",null,"The secure and scalable infrastru
1cture provided by the EID chain allows for the development of innovative and user-friendly solutions, improving the overall experience for users in the Elastos ecosystem."),(0,i.kt)("admonition",{type:"tip"},(0,i.kt)("p",{parentName:"admonition"},"Visit the ",(0,i.kt)("a",{parentName:"p",href:"/learn/dids/intro/#elastos-did-framework"},"identity")," section for a deep dive into Elastos DIDs")),(0,i.kt)("hr",null),(0,i.kt)("h3",{id:"implementation"},"Implementation"),(0,i.kt)("p",null,"The EID chain is a specialized version of the ",(0,i.kt)("a",{parentName:"p",href:"/learn/sidechains/esc"},"ESC")," chain. Although it shares the same underlying mechanics, the EID chain has its own built-in native layer written in Golang that complies with ",(0,i.kt)("a",{parentName:"p",href:"https://www.w3.org/TR/did-core/"},"W3C specifications"),", such as the ability to invalidate a DID if compromised."),(0,i.kt)("p",null,"This W3C layer is executed by each EID node individually, and is referred to as the native smart contract for the EID chain. Upper-level Solidity smart contracts can also access this native layer."),(0,i.kt)("p",null,"For third-party Solidity dApps running on the EID chain, there is a single Solidity smart contract with less than 10 APIs that provide DID-related services, such as adding a DID."),(0,i.kt)("p",null,"The DID data is stored on the EID blockchain, and because past blockchain data is immutable, each node maintains a local database (levelDB) to speed up EID queries. In other words, even if a DID is invalidated, the data trace remains on the blockchain, but a newer block would indicate that the DID has been depleted. The level"),(0,i.kt)("h2",{id:"relevant-links"},"Relevant Links"),(0,i.kt)("table",null,(0,i.kt)("thead",{parentName:"table"},(0,i.kt)("tr",{parentName:"thead"},(0,i.kt)("th",{parentName:"tr",align:null},"Resource"),(0,i.kt)("th",{parentName:"tr",align:null},"Description"))),(0,i.kt)("tbody",{parentName:"table"},(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("a",{parentName:"td",href:"/develop/dids/essentials"},"Demo")),(0,i.kt)("td",{parentName:"tr",align:null},"DID creation tutorial")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("a",{parentName:"td",href:"/api/providers"},"Public Endpoints")),(0,i.kt)("td",{parentName:"tr",align:null},"Interact with the EID chain")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("a",{parentName:"td",href:"https://eid.elastos.io/"},"Explorer")),(0,i.kt)("td",{parentName:"tr",align:null},"EID block explorer")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("a",{parentName:"td",href:"/api/providers/#miscellaneous"},"DID Addresses")),(0,i.kt)("td",{parentName:"tr",align:null},"Public contract addresses for EID DIDs")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("a",{parentName:"td",href:"https://github.com/elastos/Elastos.ELA.SideChain.EID/blob/master/core/vm/did/did.sol"},"DID Contract Code")),(0,i.kt)("td",{parentName:"tr",align:null},"Implementation for DID written in Solidity")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("a",{parentName:"td",href:"/api/sidechains/eid/rpc"},"JSON-RPI API")),(0,i.kt)("td",{parentName:"tr",align:null},"Extended RPC interfaces for EID")),(0,i.kt)("tr",{parentName:"tbody"},(0,i.kt)("td",{parentName:"tr",align:null},(0,i.kt)("a",{parentName:"td",href:"https://docs.elastos.net/guides/v/eid/source-code"},"EID Source Code")),(0,i.kt)("td",{parentName:"tr",align:null},"Chain implementation based on Go Ethereum")))))}m.isMDXComponent=!0}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.