/aries-framework-javascript

Aries Framework JavaScript (Built using TypeScript)

Primary LanguageTypeScriptApache License 2.0Apache-2.0


Hyperledger Aries logo

Aries Framework JavaScript

Pipeline Status Language grade: JavaScript Codecov Coverage License typescript


Features  |  Getting started  |  Contributing  |  License

Aries Framework JavaScript 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.

Features

Some features are not yet supported, but are on our roadmap. Check the roadmap for more information.

  • ✅ React Native
  • ✅ Node.JS
  • ✅ Issue Credential Protocol (RFC 0036)
  • ✅ Present Proof Protocol (RFC 0037)
  • ✅ Connection Protocol (RFC 0160)
  • ✅ Basic Message Protocol (RFC 0095)
  • ✅ Mediator Coordination Protocol (RFC 0211)
  • ✅ Indy Credentials (with did:sov support)
  • ✅ HTTP & WebSocket Transport
  • ✅ Connection-less Issuance and Verification
  • ✅ Smart Auto Acceptance of Connections, Credentials and Proofs
  • 🚧 Revocation of Indy Credentials
  • 🚧 Electron
  • ❌ Browser
  • ❌ Issue Credential V2, Present Proof V2, DID Exchange Protocol, Out-Of-Band
  • ❌ W3C Linked Data VCs, BBS+ Signatures

Packages

Package Version
@aries-framework/core @aries-framework/core version
@aries-framework/node @aries-framework/node version
@aries-framework/react-Native @aries-framework/react-native version

Getting Started

Platform Specific Setup

In order to use Aries Framework JavaScript some platform specific dependencies and setup is required. See our guides below to quickly set up you project with Aries Framework JavaScript for NodeJS, React Native and Electron.

Usage

Now that your project is setup and everything seems to be working, it is time to start building! Follow these guides below to get started!

  1. Overview
  2. Agent
  3. Transports
  4. Connections
  5. Routing
  6. Ledger
  7. Credentials
  8. Proofs
  9. Logging

Also check out Aries Framework JavaScript Extensions, for several useful wrappers and plugins.

Divergence from Aries RFCs

Although Aries Framework JavaScript tries to follow the standards as described in the Aries RFCs as much as possible, some features in AFJ 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 AFJ is lacking in features in comparison to other implementations.

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!

The Aries Framework JavaScript call takes place every week at Thursday, 14:00 UTC via Zoom. This meeting is for contributors to groom and plan the backlog, and discuss issues. Meeting agendas and recordings can be found here. Feel free to join!

License

Hyperledger Aries Framework JavaScript is licensed under the Apache License Version 2.0 (Apache-2.0).