Description

This project consists of a traditional web application and a Discord bot component. The Discord bot serves as the main user interface for the DAOs and DAO participants. We generate a distributed identifier document (DIDs) and a profile verifiable claim (VCs) for each user interacting with the bot. Furthermore, the users are able to issue each other Kudos VCs describing the good work the user did. Other DAO users are able to "second" (+1) the Kudos sentiment, adding another layer of verifiable claims as proof of work well done. The web component serves as the portal for presenting the various VCs a user receives in a human-readable way, but also serving up the VCs in their raw form too, allowing for cryptographic verification of the claims if desired. Some future scope would include showing not only Kudos, but also roles that a user is holding with the particular DAO, and allowing the owner of the DID to curate their 'public resume' by revealing the most relevant bits of info.

DAOrectory showcase

How it's made

This project uses Veramo's libraries (https://veramo.io/) for generating Ethereum keypairs used as signing keys for DIDs and VCs of DAO participants. We took this centralized/custodial approach to key management and document storage since there is no support for the open DID and VC standards.(https://www.w3.org/TR/did-core/) from major Ethereum wallets today. The DID method we chose for the project is `did:ethr` (https://github.com/decentralized-identity/ethr-did-resolver/blob/master/doc/did-method-spec.md). This sets us up nicely for the future state where our users bring their own Eth keys and assume ownership of the DIDs we minted for them by interacting with the ERC1056 registry contract and overwriting the owner field. At that point the distributed identities and associated information would be truly self-sovereign and under the user's control. We anticipate that in the future there would also be mature distributed ways of storing and managing DID and VC documents directly from one's wallet and onto a persisted storage medium (IPFS, Ceramic, local storage etc). This approach appears superior to us compared to the existing on-chain solutions, since there are no token transfers/transaction fees involved, and there is also the freedom to have a lot of rich, easily mutable and verifiable content per user. Because we are using mature open standards such as DIDs and VCs, we expect the data we generate to be interoperable with other DID-friendly applications in the future.