Skip to main content

Architecture Overview

The objective is to provide the Aries technologies in a ready-to-use state that enables seamless creation and bootstrapping of Trust Ecosystems based on self-sovereign identity technology.

Aries in a box - an Open Source, Easy-to-Use SSI Stack

The aries-basic-controller defines a core class, the AriesAgentController, which, when instantiated with the arguments for an ACA-Py agent, can be used to control it by communicating over its admin-api interface. The aim of the basic controller is to cover all ACA-Py swagger-api endpoints verbatim. It does not have an opinion on the design of this API, it just follows ACA-Py's lead. Additionally, it has the capability to run a server to collect webhooks from the ACA-Py agent and emit these as events using PyPubSub.

The Open Source SSI stack will consume the aries-basic-controller as a dependency and expose a simplified API specific to different use cases of the agent: Wallet, Issuer, Verifier, Admin.

Note: This layer will be stateless. It is up to the application to store the necessary identifiers and other information required to interact with it.

High-Level Architecture

Aries in a box

The SSI stack will enable customers to run services that can scale independently for each of the different capabilities:

  • Wallet - A simplified API for managing multiple wallets
  • Admin - An API for creating schemas, definitions, and endorsing ledger transactions
  • Issuer - An API for issuers
  • Verifier - An API for verifiers
  • Holder - An API for holders
  • Messaging - An extension of webhook handling so that agent messages can be accessed within the application

ACA-Py Agent Layer

Hyperledger Aries Cloud Agent - Python, also known as ACA-Py, makes up the first layer in the Aries in a box stack.

More information on ACA-Py can be found here ACA-Py

Basic Controller Layer

The second layer provides an easy-to-use basic controller implementation for ACA-Py called aries-cloudcontroller-python. The aries-cloudcontroller-python aims to make usage of the ACA-Py instance significantly less complicated compared to the usage of the classic ACA-Py integration. Basic Controller

Simplified API Layer

The aries-cloudapi-python API layer makes usage of the ACA-Py instance significantly less complicated compared to the usage of the classic ACA-Py integration. Below are the simplified API endpoints:

  • Wallet Controller
  • Issuer Controller
  • Verifier Controller
  • Admin Controller
  • Holder Controller
  • Messaging Controller
  • Trust Registry

Simplified Controllers