/keri-java

Java implementation of KERI

Primary LanguageJavaApache License 2.0Apache-2.0

KERI for Java

keri-java is a Java-based implementation of the Key Event Receipt Infrastructure specification .

Status

keri-java is not ready for production usage. This project is under heavy development and provides no guarantees of a stable API for application developers. Further, the specification is also under heavy development.

Below describes the current capabilities of keri-java:

Identifiers:

  • Create Basic Identifiers
  • Create Self-Addressing Identifiers
  • Create Self-Signing Identifiers
  • Rotate non-Basic Identifiers
  • Record interactions in the event log
  • Simple signing thresholds
  • Multi-signature identifiers
  • Weighted signing threshold
  • Delegation

Logs

  • Serialization
  • Verification
    • Recovery
    • Delegation Seals
    • Out of Order Events
  • (In Progress) Storage

Private/Direct Mode

  • Keri Protocol Server and Client
  • keripy/eve interoperability
  • keripy/bob interoperability
  • keripy/sam interoperability

Public/Indirect Mode

Most of the items here have not yet been defined in the specification.

  • Witness Gossip Capabilities
  • Query API
  • Verifier Logic (Watcher, Juror, Judge, etc.)

Downloads

Linux macOS Widows
Controller CLI intel | arm intel | arm intel | arm
Publisher Node intel | arm intel | arm intel | arm
Resolver Node intel | arm intel | arm intel | arm

All builds are 64-bit.

Maven Coordinates

Lookup Module

The lookup module provides applications the ability to obtain current verification keys and state information about an identifier.

<dependency>
  <groupId>foundation.identitity.jkeri</groupId>
  <artifactId>lookup</artifactId>
  <version>[VERSION]</version>
</dependency>

Controller Module

The controller modules provides applications the ability to create and manage KERI identifiers.

<dependency>
  <groupId>foundation.identitity.jkeri</groupId>
  <artifactId>controller</artifactId>
  <version>[VERSION]</version>
</dependency>

Getting Started

See each individual component's README for more information about getting started.

Lookup Client Library
Obtains public key information for an identifier.

Controller Client Library
Provides for the management of an identifier.

CLI Controller
Provides for the management of an identifier.

Witness/Publisher Node
A witness node.

Verifier/Resolver Node
A combination verifier/resolver.

Core
Code that is common to each of the components above.