Skip to content

petridishdev/aries-framework-javascript

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Credo Logo

Credo

Pipeline Status Codecov Coverage License typescript


Features  |  Getting started  |  Contributing  |  License

Credo is a framework written in TypeScript for building SSI Agents and DIDComm services that aims to be compliant and interoperable with the standards defined in the Aries RFCs.

Note The Aries Framework JavaScript project has recently been rebranded to "Credo" and was moved from the Hyperledger Foundation to the Open Wallet Foundation. We are currently in the process of changing the name of the project to Credo, and updating all the documentation and links to reflect this change. You may encounter some broken links, or references to the old name, but we are working hard to fix this. Once the new name has been decided we will update this README and all the documentation to reflect this change. You can follow this discussion for updates about the name: openwallet-foundation#1668

Features

  • 🏃 Runs in React Native & Node.JS
  • 🔒 DIDComm v1 support
  • 🌎 Aries Interop Profile v1 & v2 support
    • With support for Chat, Mediator Coordination, Indy Credentials & and JSON-LD Credentials sub-targets
  • did:sov, did:web, did:key and did:peer, with pluggable interface for registering custom did methods.
  • OpenID for Verifiable Credential Issuance (only receiving JSON-LD credentials for now)
  • 💡 Smart Auto Acceptance of Connections, Credentials and Proofs
  • 🏢 Multi tenant module for managing multiple tenants under a single agent.

Packages

Package Version
@credo-ts/core @credo-ts/core version
@credo-ts/node @credo-ts/node version
@credo-ts/react-native @credo-ts/react-native version
@credo-ts/indy-sdk @credo-ts/indy-sdk version
@credo-ts/indy-vdr @credo-ts/indy-vdr version
@credo-ts/cheqd @credo-ts/cheqd version
@credo-ts/askar @credo-ts/askar version
@credo-ts/anoncreds @credo-ts/anoncreds version
@credo-ts/anoncreds-rs @credo-ts/anoncreds-rs version
@credo-ts/openid4vc-client @credo-ts/openid4vc-client version
@credo-ts/action-menu @credo-ts/action-menu version
@credo-ts/question-answer @credo-ts/question-answer version
@credo-ts/tenants @credo-ts/tenants version

Getting Started

Documentation on how to get started with Credo can be found at https://credo.js.org/

Demo

To get to know the Credo flow, we built a demo to walk through it yourself together with agents Alice and Faber.

Divergence from Aries RFCs

Although Credo tries to follow the standards as described in the Aries RFCs as much as possible, some features in Credo slightly diverge from the written spec. Below is an overview of the features that diverge from the spec, their impact and the reasons for diverging.

Feature Impact Reason
Support for imageUrl attribute in connection invitation and connection request Properties that are not recognized should be ignored, meaning this shouldn't limit interoperability between agents. As the image url is self-attested it could give a false sense of trust. Better, credential based, method for visually identifying an entity are not present yet. Even though not documented, almost all agents support this feature. Not including this feature means Credo is lacking in features in comparison to other implementations.
Revocation Notification v1 uses a different thread_id format ( indy::<revocation_registry_id>::<credential_revocation_id>) than specified in the Aries RFC Any agents adhering to the revocation notification v1 RFC will not be interoperable with Credo. However, revocation notification is considered an optional portion of revocation, therefore this will not break core revocation behavior. Ideally agents should use and implement revocation notification v2. Actual implementations (ACA-Py) of revocation notification v1 so far have implemented this different format, so this format change was made to remain interoperable.

Contributing

If you would like to contribute to the framework, please read the Framework Developers README and the CONTRIBUTING guidelines. These documents will provide more information to get you started!

There are regular community working groups to discuss ongoing efforts within the framework, showcase items you've built with Credo, or ask questions. See Meeting Information for up to date information on the meeting schedule. Everyone is welcome to join!

We welcome you to join our mailing list and Discord channel. See the Wiki for up to date information.

License

OpenWallet Foundation Credo is licensed under the Apache License Version 2.0 (Apache-2.0).

Packages

No packages published

Languages

  • TypeScript 99.7%
  • Other 0.3%