TBD54566975 / incubation-dcx

A Web5 Protocol for Decentralized Credential Exchange
Apache License 2.0
4 stars 5 forks source link

Decentralized Credential Exchange (DCX)

codecov

DCX is a new Decentralized Web Node (DWN) protocol that securely and privately facilitates the decentralized exchange of a user's verifiable credentials for different verifiable credential. The npm package implements each side of the protocol along with a common library and a server.

As an open, permissionless, "credentials in, credentials out" server, DCX as like a asynchronous web server. It leverages Decentralized Identity primitives via TBD's Web5 platform. Primitives leveraged by DCX include DIDs, VCs, DWNs and Presentation Exchange, which includes Credential Manifests, Credential Applications, Credential Responses and Verifiable Presentations (VPs). The concept is to facilitate a decentralized exchange of credentials via DWN records. DCX actors (applicants and issuers) perform CRUD operations on their own and the counterparty's DWNs to communicate. These records server as a form of request/response model but in a completely asynchronous manner. The DWNs involved are always-online servers that sync to the client on an interval. In this way, a user can submit an application to the issuer's DWN, go offline for hours and come back online to find a response to that application from the issuer in their DWN. DWN protocols outline who can do what to which records. The records involved with DCX include: application, manifest, response and invoice. These record schemas represent the structure of the messages sent between the actors' DWNs. Records include all the details needed to achieve this exchange including information about the applicant, what VCs are required from the applicant as inputs to the issuer, what VCs the issuer will respond with to the applicant and the structure of applications, responses and invoices.

To learn more about the components of DCX and the underlying primitives its built on, check out /docs/learn/README.md.

To learn more about the architecture and sequences of the DCX system, check out /docs/diagrams/README.md.

To learn how to use DCX in your own project, check out /docs/usage/README.md.

Package Versions

package npm issues prs
@dcx-protocol/root NPM Package Open Issues Open PRs
@dcx-protocol/applicant NPM Package Open Issues Open PRs
@dcx-protocol/common NPM Package Open Issues Open PRs
@dcx-protocol/issuer NPM Package Open Issues Open PRs
@dcx-protocol/server NPM Package Open Issues Open PRs

Project Resources

Resource Description
CODEOWNERS Outlines the project lead(s)
CODE_OF_CONDUCT.md Expected behavior for project contributors, promoting a welcoming environment
CONTRIBUTING.md Developer guide to build, test, run, access CI, chat, discuss, file issues
GOVERNANCE.md Project governance
LICENSE Apache License 2.0