diff --git a/.gitignore b/.gitignore
index 03eee29b5246f495cff599b3b8756dffad6b00a6..35073f42467d64db0dbb978908cad8d4657791bc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,7 +17,7 @@ node_modules
 # compiled output
 node_modules/
 apps/*/node_modules
-/dist
+dist
 /apps/**/dist/
 *.tsbuildinfo
 
diff --git a/apps/ssi-abstraction/.prettierrc b/apps/ssi-abstraction/.prettierrc
index dcb72794f5300a3e0ccd2ad0669d802b62f3d370..a20502b7f06d848452da0d93ce8830c1d86b05dd 100644
--- a/apps/ssi-abstraction/.prettierrc
+++ b/apps/ssi-abstraction/.prettierrc
@@ -1,4 +1,4 @@
 {
   "singleQuote": true,
   "trailingComma": "all"
-}
\ No newline at end of file
+}
diff --git a/apps/ssi-abstraction/EVENTS-DOCUMENTATION.md b/apps/ssi-abstraction/EVENTS-DOCUMENTATION.md
index 2f8ac63fcb832b9a408662a3e8a1f078a12e9c99..b858705e2c1ca5f949ad1de9cceceda9a720efdb 100644
--- a/apps/ssi-abstraction/EVENTS-DOCUMENTATION.md
+++ b/apps/ssi-abstraction/EVENTS-DOCUMENTATION.md
@@ -1,40 +1,39 @@
-
 <hr/>
 
 # Event types published on nats
 
-* ```
-  { 
+- ```
+  {
     endpoint: 'SSI_ABSTRACTION_SERVICE/BasicMessageStateChanged',
   }
   ```
-* ```
+- ```
   {
     endpoint: 'SSI_ABSTRACTION_SERVICE/ConnectionStateChanged',
   }
   ```
-* ```
+- ```
   {
     endpoint: 'SSI_ABSTRACTION_SERVICE/CredentialStateChanged',
   }
   ```
-* ```
+- ```
   {
     endpoint: 'SSI_ABSTRACTION_SERVICE/ProofStateChanged',
   }
   ```
-* ```
+- ```
   {
     endpoint: 'SSI_ABSTRACTION_SERVICE/MediationStateChanged',
   }
   ```
-* ```
+- ```
   {
     endpoint: 'SSI_ABSTRACTION_SERVICE/RecipientKeylistUpdated',
   }
   ```
-* ```
+- ```
   {
     endpoint: 'SSI_ABSTRACTION_SERVICE/OutboundWebSocketClosedEvent',
   }
-  ```
\ No newline at end of file
+  ```
diff --git a/apps/ssi-abstraction/GDPR.md b/apps/ssi-abstraction/GDPR.md
index bc74bc15ac673fd523611f8cb7cb6e0c8984e0c3..b8b842a3a15cdc6f5d845f5aa7753c852a3f85b3 100644
--- a/apps/ssi-abstraction/GDPR.md
+++ b/apps/ssi-abstraction/GDPR.md
@@ -1,12 +1,16 @@
 # GDPR Compliance Document
+
 The objective of this document is to detail, the data being stored and proccessed by the Organization Credential Manager's, SSI Abstraction Services.
 
 ## What information is stored
+
 ### Source User Information
-- Verifiable Credential Specific Information - The various VC's issued by the particular OCM. 
+
+- Verifiable Credential Specific Information - The various VC's issued by the particular OCM.
 - Proof Presentation Specific Information - Credential Claims.
 
 ### Technical User Information (Public)
+
 - Connection Information - The list of connections with different PCM and OCM agents and Pairwise DID.
 - Schema information (public)
 - Credential/credential definition ids and states
@@ -15,14 +19,19 @@ The objective of this document is to detail, the data being stored and proccesse
 - Created/updated dates
 
 ## How is the information stored
+
 ### Source User Information
+
 User specific Source User Information is encrypted using the Private Key of the Organizations SSI Agent and stored until the issuance of credential in Organization's SSI Agent's PostgreSQL database.
 
 ### Technical User Information (Public)
+
 Technical User Information is encrypted using the Private Key of the Organizations SSI Agent and stored internally (on the agent) on PostgreSQL.
 
 ## Who can access the information
+
 The Source User Information and Technical User Information both are accessible only by the Organization specific SSI agent's private key.
 
-## How long will the information stay 
+## How long will the information stay
+
 The Source User Information and Technical User Information is never wiped out unless the Agent Database is cleared.
diff --git a/apps/ssi-abstraction/README.md b/apps/ssi-abstraction/README.md
index 06a476a737f1515314fd70d112352e564144a864..192eaff4fdb4bf4f5a1d9abceaf33c887b58c6b3 100644
--- a/apps/ssi-abstraction/README.md
+++ b/apps/ssi-abstraction/README.md
@@ -1,13 +1,15 @@
 # SSI Abstraction Service
+
 ## Description
 
 <hr/>  
   <p align="center">A core service for the Organizational Credential Manager, providing the DIDComm functionality and initializing the agent, wallet and ledger interactions of the whole application.</p>
 
 ## Usage
+
 <hr/>
 
-### Endpoint documentation at: 
+### Endpoint documentation at:
 
 [Aries REST Extension](swagger.json)
 
@@ -15,55 +17,59 @@
 
 [Sign and Verify Interface](SIGN-AND-VERIFY.md)
 
-with the default exposed ports: 
-* 3010 - Aries REST extension
-* 3009 - Sign and Veify interface exposed
-* 4000 - didcomm interface
+with the default exposed ports:
 
+- 3010 - Aries REST extension
+- 3009 - Sign and Veify interface exposed
+- 4000 - didcomm interface
 
 ## Installation
+
 <hr/>
 
 Dependencies:
+
 ```bash
-$ pnpm install 
+$ pnpm install
 ```
 
-* **If docker is not installed, [Install docker](https://docs.docker.com/engine/install/)**.
-  
+- **If docker is not installed, [Install docker](https://docs.docker.com/engine/install/)**.
 
-* **If docker-compose is not installed, [Install docker-compose](https://docs.docker.com/compose/install/)**.
+- **If docker-compose is not installed, [Install docker-compose](https://docs.docker.com/compose/install/)**.
 
-* (optional) Postgres GUI 
-https://dbeaver.io/download/
+- (optional) Postgres GUI
+  https://dbeaver.io/download/
 
 <hr/>
 
-
 ## Running the app
+
 <hr/>
 
 ### Environment variables
+
 [.env.example](.env.example)
-* PORT is the port for the signing and verification interface
-* AFJ_EXT_PORT is the port for the openapi documentation described in [swagger.json](swagger.json)
-* AGENT_AUTO_ACCEPT_CONNECTION can be either true or false
-* AGENT_AUTO_ACCEPT_CREDENTIAL can be either: always, contentApproved, never
-* AGENT_PUBLIC_DID_SEED will generate the did and verkey (32 symbols)
-* for security reasons AGENT_WALLET_KEY and AGENT_WALLET_ID should be different
-* AGENT_LEDGER_ID can be: ID_UNION,BCOVRIN_TEST,GREEN_LIGHT
+
+- PORT is the port for the signing and verification interface
+- AFJ_EXT_PORT is the port for the openapi documentation described in [swagger.json](swagger.json)
+- AGENT_AUTO_ACCEPT_CONNECTION can be either true or false
+- AGENT_AUTO_ACCEPT_CREDENTIAL can be either: always, contentApproved, never
+- AGENT_PUBLIC_DID_SEED will generate the did and verkey (32 symbols)
+- for security reasons AGENT_WALLET_KEY and AGENT_WALLET_ID should be different
+- AGENT_LEDGER_ID can be: ID_UNION,BCOVRIN_TEST,GREEN_LIGHT
+
   - the three pool transaction genesis are inside the code configuration
   - every ledger can be provided on its own
   - multiple ledgers can also be specified, separated by a comma
 
-* AGENT_ID_UNION_KEY is needed if the ledger of choice is IDUnion
-
+- AGENT_ID_UNION_KEY is needed if the ledger of choice is IDUnion
 
 **Each service in the Organizational Credential Manager can be run from the infrastructure repository with Docker.**
 
 **The .env files are in the infrastructure repository under /env**
 
 ### There are two separate Dockefiles in "./deployment" of every project:
+
 ```bash
     ## production in:
       ./deployment/ci
@@ -71,16 +77,16 @@ https://dbeaver.io/download/
       ./deployment/dev
 ```
 
+- (optional) Edit docker-compose.yml in "infrastructure" to use either **/ci/** or **/dev/** Dockerfiles.
 
-* (optional) Edit docker-compose.yml in "infrastructure" to use either **/ci/** or **/dev/** Dockerfiles.
+- Run while in **"infrastructure"** project:
 
-* Run while in **"infrastructure"** project:
 ```bash
 $ docker-compose up --build
 ```
 
-
 ## Test
+
 <hr/>
 
 ```bash
@@ -94,19 +100,20 @@ $ pnpm test:e2e
 $ pnpm test:cov
 ```
 
-
-
 ## GDPR
+
 <hr/>
 
 [GDPR](GDPR.md)
 
 ## Dependencies
+
 <hr/>
 
 [Dependencies](package.json)
 
 ## License
+
 <hr/>
 
 [Apache 2.0 license](LICENSE)
diff --git a/apps/ssi-abstraction/SIGN-AND-VERIFY.md b/apps/ssi-abstraction/SIGN-AND-VERIFY.md
index 2999e0cd9f369142c786e12da9fe3403e6a06d3e..b17386b1b514da77fbe209fdb05faa6645beedb9 100644
--- a/apps/ssi-abstraction/SIGN-AND-VERIFY.md
+++ b/apps/ssi-abstraction/SIGN-AND-VERIFY.md
@@ -1,8 +1,9 @@
-
 ## Signing and verification interface is accessible on SSI Abstraction
 
 ### METHOD: POST
+
 **type: "buffer" is necessary to know internally what transformation needs to be done**
+
 ```
 :3009/v1/agent/wallet/sign
 
@@ -18,7 +19,9 @@ body : {
 
 
 ```
+
 ### Returns
+
 ```
 {
   statusCode: Number,
@@ -31,18 +34,18 @@ body : {
 and
 <hr/>
 
-
 ### METHOD: POST
+
 ```
 :3009/v1/agent/wallet/verify
 
 body : {
   data: [
-    signerVerkey: string, 
+    signerVerkey: string,
     {
       type: "buffer",
       dataBase64: base64 string   //// This is the data to be verified
-    }, 
+    },
     {
       type: "buffer",
       dataBase64: base64 string  //// This is the signature
@@ -50,7 +53,9 @@ body : {
   ]
 }
 ```
+
 ### Returns
+
 ```
 {
   statusCode: Number,
@@ -59,10 +64,6 @@ body : {
 }
 ```
 
-
-
-
-
 ## Get Agent Info endpoint (did, verkey) on SSI Abstraction
 
 ### METHOD: GET
@@ -72,6 +73,7 @@ body : {
 ```
 
 ### Returns
+
 ```
 {
     "statusCode": 200,
@@ -81,4 +83,4 @@ body : {
         "verkey": string // verkey needed for signing and verification
     }
 }
-```
\ No newline at end of file
+```
diff --git a/apps/ssi-abstraction/deployment/helm/Chart.yaml b/apps/ssi-abstraction/deployment/helm/Chart.yaml
index 7dae6f943921d7a0d80f81531a1daad4a07663e8..a448b1e420c9e568bb5d3a31f6c8a333a2c687b2 100644
--- a/apps/ssi-abstraction/deployment/helm/Chart.yaml
+++ b/apps/ssi-abstraction/deployment/helm/Chart.yaml
@@ -3,4 +3,4 @@ appVersion: v1.0.3-rc
 description: ssi-abstraction deployment
 name: ssi-abstraction
 version: 1.0.3
-icon: "https://www.vereign.com/wp-content/themes/vereign2020/images/vereign-logo.svg"
+icon: 'https://www.vereign.com/wp-content/themes/vereign2020/images/vereign-logo.svg'
diff --git a/apps/ssi-abstraction/deployment/helm/README.md b/apps/ssi-abstraction/deployment/helm/README.md
index cecfc27af24278fe0a975f75be442f4268a05759..7ed99e60bc8ff68d481f4ba19880902c73d54e1e 100644
--- a/apps/ssi-abstraction/deployment/helm/README.md
+++ b/apps/ssi-abstraction/deployment/helm/README.md
@@ -6,68 +6,69 @@ ssi-abstraction deployment
 
 ## Values
 
-| Key | Type | Default | Description |
-|-----|------|---------|-------------|
-| autoscaling.enabled | bool | `false` | Enable autoscaling |
-| autoscaling.maxReplicas | int | `3` | Maximum replicas |
-| autoscaling.minReplicas | int | `1` | Minimum replicas |
-| autoscaling.targetCPUUtilizationPercentage | int | `70` | CPU target for autoscaling trigger |
-| autoscaling.targetMemoryUtilizationPercentage | int | `70` | Memory target for autoscaling trigger |
-| image.name | string | `"gaiax/ssi-abstraction"` | Image name |
-| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy |
-| image.pullSecrets | string | `"deployment-key-light"` | Image pull secret when internal image is used |
-| image.repository | string | `"eu.gcr.io/vrgn-infra-prj"` |  |
-| image.sha | string | `""` | Image sha, usually generated by the CI Uses image.tag if empty |
-| image.tag | string | `""` | Image tag Uses .Chart.AppVersion if empty |
-| ingress.annotations."cert-manager.io/cluster-issuer" | string | `"letsencrypt-production-http"` |  |
-| ingress.annotations."kubernetes.io/ingress.class" | string | `"nginx"` |  |
-| ingress.annotations."kubernetes.io/ingress.global-static-ip-name" | string | `"dev-light-public"` |  |
-| ingress.annotations."nginx.ingress.kubernetes.io/rewrite-target" | string | `"/$2"` |  |
-| ingress.enabled | bool | `true` |  |
-| ingress.frontendDomain | string | `"gaiax.vereign.com"` |  |
-| ingress.frontendTlsSecretName | string | `"cert-manager-tls"` |  |
-| ingress.pathOverride | string | `"didcomm"` |  |
-| ingress.tlsEnabled | bool | `true` |  |
-| log.encoding | string | `"json"` |  |
-| log.level | string | `"INFO"` |  |
-| metrics.enabled | bool | `true` | Enable prometheus metrics |
-| metrics.port | int | `2112` | Port for prometheus metrics |
-| name | string | `"ssi-abstraction"` | Application name |
-| nameOverride | string | `""` | Ovverwrites application name |
-| podAnnotations | object | `{}` |  |
-| replicaCount | int | `1` | Default number of instances to start  |
-| resources.limits.cpu | string | `"150m"` |  |
-| resources.limits.memory | string | `"512Mi"` |  |
-| resources.requests.cpu | string | `"25m"` |  |
-| resources.requests.memory | string | `"64Mi"` |  |
-| security.runAsGid | int | `0` | Group used by the apps |
-| security.runAsNonRoot | bool | `false` | by default, apps run as non-root |
-| security.runAsUid | int | `0` | User used by the apps |
-| service.port | int | `3009` |  |
-| ssiAbstraction.afjExtPort | int | `3010` |  |
-| ssiAbstraction.agent.autoAccept.connection | bool | `true` |  |
-| ssiAbstraction.agent.autoAccept.credential | bool | `true` |  |
-| ssiAbstraction.agent.host | string | `"gaiax.vereign.com"` |  |
-| ssiAbstraction.agent.ledgerId | string | `"ID_UNION"` |  |
-| ssiAbstraction.agent.name | string | `"ssi-abstraction-agent"` |  |
-| ssiAbstraction.agent.peerPort | int | `443` |  |
-| ssiAbstraction.agent.protocol | string | `"http"` |  |
-| ssiAbstraction.agent.publicDidSeed | string | `"6b8b882e2618fa5d45ee7229ca880083"` |  |
-| ssiAbstraction.agent.urlPath | string | `"/ocm/didcomm"` |  |
-| ssiAbstraction.agent.wallet.id | string | `"ssi-wallet-id"` |  |
-| ssiAbstraction.agent.wallet.key | string | `"ssi-wallet-key"` |  |
-| ssiAbstraction.database.db | string | `"postgres"` |  |
-| ssiAbstraction.database.host | string | `"postgresql.infra"` |  |
-| ssiAbstraction.database.password | string | `"password"` |  |
-| ssiAbstraction.database.port | int | `5432` |  |
-| ssiAbstraction.database.schema | string | `"proof"` |  |
-| ssiAbstraction.database.user | string | `"root"` |  |
-| ssiAbstraction.elastic.port | int | `9200` |  |
-| ssiAbstraction.elastic.protocol | string | `"http"` |  |
-| ssiAbstraction.elastic.url | string | `"elasticsearch"` |  |
-| ssiAbstraction.nats.port | int | `4222` |  |
-| ssiAbstraction.nats.protocol | string | `"nats"` |  |
-| ssiAbstraction.nats.url | string | `"nats"` |  |
+| Key                                                               | Type   | Default                              | Description                                                    |
+| ----------------------------------------------------------------- | ------ | ------------------------------------ | -------------------------------------------------------------- |
+| autoscaling.enabled                                               | bool   | `false`                              | Enable autoscaling                                             |
+| autoscaling.maxReplicas                                           | int    | `3`                                  | Maximum replicas                                               |
+| autoscaling.minReplicas                                           | int    | `1`                                  | Minimum replicas                                               |
+| autoscaling.targetCPUUtilizationPercentage                        | int    | `70`                                 | CPU target for autoscaling trigger                             |
+| autoscaling.targetMemoryUtilizationPercentage                     | int    | `70`                                 | Memory target for autoscaling trigger                          |
+| image.name                                                        | string | `"gaiax/ssi-abstraction"`            | Image name                                                     |
+| image.pullPolicy                                                  | string | `"IfNotPresent"`                     | Image pull policy                                              |
+| image.pullSecrets                                                 | string | `"deployment-key-light"`             | Image pull secret when internal image is used                  |
+| image.repository                                                  | string | `"eu.gcr.io/vrgn-infra-prj"`         |                                                                |
+| image.sha                                                         | string | `""`                                 | Image sha, usually generated by the CI Uses image.tag if empty |
+| image.tag                                                         | string | `""`                                 | Image tag Uses .Chart.AppVersion if empty                      |
+| ingress.annotations."cert-manager.io/cluster-issuer"              | string | `"letsencrypt-production-http"`      |                                                                |
+| ingress.annotations."kubernetes.io/ingress.class"                 | string | `"nginx"`                            |                                                                |
+| ingress.annotations."kubernetes.io/ingress.global-static-ip-name" | string | `"dev-light-public"`                 |                                                                |
+| ingress.annotations."nginx.ingress.kubernetes.io/rewrite-target"  | string | `"/$2"`                              |                                                                |
+| ingress.enabled                                                   | bool   | `true`                               |                                                                |
+| ingress.frontendDomain                                            | string | `"gaiax.vereign.com"`                |                                                                |
+| ingress.frontendTlsSecretName                                     | string | `"cert-manager-tls"`                 |                                                                |
+| ingress.pathOverride                                              | string | `"didcomm"`                          |                                                                |
+| ingress.tlsEnabled                                                | bool   | `true`                               |                                                                |
+| log.encoding                                                      | string | `"json"`                             |                                                                |
+| log.level                                                         | string | `"INFO"`                             |                                                                |
+| metrics.enabled                                                   | bool   | `true`                               | Enable prometheus metrics                                      |
+| metrics.port                                                      | int    | `2112`                               | Port for prometheus metrics                                    |
+| name                                                              | string | `"ssi-abstraction"`                  | Application name                                               |
+| nameOverride                                                      | string | `""`                                 | Ovverwrites application name                                   |
+| podAnnotations                                                    | object | `{}`                                 |                                                                |
+| replicaCount                                                      | int    | `1`                                  | Default number of instances to start                           |
+| resources.limits.cpu                                              | string | `"150m"`                             |                                                                |
+| resources.limits.memory                                           | string | `"512Mi"`                            |                                                                |
+| resources.requests.cpu                                            | string | `"25m"`                              |                                                                |
+| resources.requests.memory                                         | string | `"64Mi"`                             |                                                                |
+| security.runAsGid                                                 | int    | `0`                                  | Group used by the apps                                         |
+| security.runAsNonRoot                                             | bool   | `false`                              | by default, apps run as non-root                               |
+| security.runAsUid                                                 | int    | `0`                                  | User used by the apps                                          |
+| service.port                                                      | int    | `3009`                               |                                                                |
+| ssiAbstraction.afjExtPort                                         | int    | `3010`                               |                                                                |
+| ssiAbstraction.agent.autoAccept.connection                        | bool   | `true`                               |                                                                |
+| ssiAbstraction.agent.autoAccept.credential                        | bool   | `true`                               |                                                                |
+| ssiAbstraction.agent.host                                         | string | `"gaiax.vereign.com"`                |                                                                |
+| ssiAbstraction.agent.ledgerId                                     | string | `"ID_UNION"`                         |                                                                |
+| ssiAbstraction.agent.name                                         | string | `"ssi-abstraction-agent"`            |                                                                |
+| ssiAbstraction.agent.peerPort                                     | int    | `443`                                |                                                                |
+| ssiAbstraction.agent.protocol                                     | string | `"http"`                             |                                                                |
+| ssiAbstraction.agent.publicDidSeed                                | string | `"6b8b882e2618fa5d45ee7229ca880083"` |                                                                |
+| ssiAbstraction.agent.urlPath                                      | string | `"/ocm/didcomm"`                     |                                                                |
+| ssiAbstraction.agent.wallet.id                                    | string | `"ssi-wallet-id"`                    |                                                                |
+| ssiAbstraction.agent.wallet.key                                   | string | `"ssi-wallet-key"`                   |                                                                |
+| ssiAbstraction.database.db                                        | string | `"postgres"`                         |                                                                |
+| ssiAbstraction.database.host                                      | string | `"postgresql.infra"`                 |                                                                |
+| ssiAbstraction.database.password                                  | string | `"password"`                         |                                                                |
+| ssiAbstraction.database.port                                      | int    | `5432`                               |                                                                |
+| ssiAbstraction.database.schema                                    | string | `"proof"`                            |                                                                |
+| ssiAbstraction.database.user                                      | string | `"root"`                             |                                                                |
+| ssiAbstraction.elastic.port                                       | int    | `9200`                               |                                                                |
+| ssiAbstraction.elastic.protocol                                   | string | `"http"`                             |                                                                |
+| ssiAbstraction.elastic.url                                        | string | `"elasticsearch"`                    |                                                                |
+| ssiAbstraction.nats.port                                          | int    | `4222`                               |                                                                |
+| ssiAbstraction.nats.protocol                                      | string | `"nats"`                             |                                                                |
+| ssiAbstraction.nats.url                                           | string | `"nats"`                             |                                                                |
+
+---
 
-----------------------------------------------
 Autogenerated from chart metadata using [helm-docs v1.10.0](https://github.com/norwoodj/helm-docs/releases/v1.10.0)
diff --git a/apps/ssi-abstraction/deployment/helm/templates/service.yaml b/apps/ssi-abstraction/deployment/helm/templates/service.yaml
index 5c1da5d5549e952002b742be720365088a8d6c76..38b78299f9191d05be3095b741399fd23ef24e37 100644
--- a/apps/ssi-abstraction/deployment/helm/templates/service.yaml
+++ b/apps/ssi-abstraction/deployment/helm/templates/service.yaml
@@ -1,22 +1,19 @@
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ template "app.name" . }}
-  namespace: {{ .Release.Namespace }}
-  labels:
-    {{- include "app.labels" . | nindent 4 }}
+  name: { { template "app.name" . } }
+  namespace: { { .Release.Namespace } }
+  labels: { { - include "app.labels" . | nindent 4 } }
 spec:
   clusterIP: None
   ports:
-  - name: http
-    port: {{ .Values.service.port }}
-    targetPort: {{ .Values.service.port }}
-  - name: afj
-    port: {{ .Values.ssiAbstraction.afjExtPort }}
-    targetPort: {{ .Values.ssiAbstraction.afjExtPort }}
-  - name: peer
-    port: {{ .Values.ssiAbstraction.agent.peerPort }}
-    targetPort: {{ .Values.ssiAbstraction.agent.peerPort }}
-  selector:
-    {{- include "app.selectorLabels" . | nindent 4 }}
-
+    - name: http
+      port: { { .Values.service.port } }
+      targetPort: { { .Values.service.port } }
+    - name: afj
+      port: { { .Values.ssiAbstraction.afjExtPort } }
+      targetPort: { { .Values.ssiAbstraction.afjExtPort } }
+    - name: peer
+      port: { { .Values.ssiAbstraction.agent.peerPort } }
+      targetPort: { { .Values.ssiAbstraction.agent.peerPort } }
+  selector: { { - include "app.selectorLabels" . | nindent 4 } }
diff --git a/apps/ssi-abstraction/deployment/helm/values.yaml b/apps/ssi-abstraction/deployment/helm/values.yaml
index 110a0b40b647b9199d3c2a94d3883759e337496f..c9facefef067ae4df68c2323f53ae0d0f4d3b4dd 100644
--- a/apps/ssi-abstraction/deployment/helm/values.yaml
+++ b/apps/ssi-abstraction/deployment/helm/values.yaml
@@ -1,9 +1,9 @@
-# -- Default number of instances to start 
+# -- Default number of instances to start
 replicaCount: 1
 # -- Application name
 name: ssi-abstraction
 # -- Ovverwrites application name
-nameOverride: ""
+nameOverride: ''
 
 image:
   repository: eu.gcr.io/vrgn-infra-prj
@@ -11,16 +11,15 @@ image:
   name: gaiax/ssi-abstraction
   # -- Image tag
   # Uses .Chart.AppVersion if empty
-  tag: ""
+  tag: ''
   # -- Image sha, usually generated by the CI
   # Uses image.tag if empty
-  sha: ""
+  sha: ''
   # -- Image pull policy
   pullPolicy: IfNotPresent
   # -- Image pull secret when internal image is used
   pullSecrets: deployment-key-light
 
-
 podAnnotations: {}
 ##
 ## Pass extra environment variables to the container.
@@ -67,7 +66,7 @@ metrics:
   port: 2112
 
 log:
-  level: "INFO"
+  level: 'INFO'
   encoding: json
 
 ##
@@ -127,4 +126,4 @@ ingress:
   tlsEnabled: true
   frontendDomain: gaiax.vereign.com
   frontendTlsSecretName: cert-manager-tls
-  pathOverride: didcomm
\ No newline at end of file
+  pathOverride: didcomm
diff --git a/apps/ssi-abstraction/package.json b/apps/ssi-abstraction/package.json
index f73fbc793a7502f7b580f94a25bbbd2ebecf4949..cc6c48d3e222bdc972769c60b2fd3ecc639cf170 100644
--- a/apps/ssi-abstraction/package.json
+++ b/apps/ssi-abstraction/package.json
@@ -19,8 +19,6 @@
     "start:docker": "pnpm prisma:generate && pnpm dbSchema && pnpm start",
     "lint": "eslint .",
     "lint:fix": "pnpm lint --fix",
-    "format": "prettier --write",
-    "format:all": "npm run format -- .",
     "test": "jest",
     "test:watch": "jest --watch",
     "test:cov": "jest --coverage",
diff --git a/apps/ssi-abstraction/src/agent/agent.controller.ts b/apps/ssi-abstraction/src/agent/agent.controller.ts
index af3ff3b34530e6d48aacd62784d3652b7fbde1ee..4b676a5cc0f7fbf119c473f54a4a5eff83b335d0 100644
--- a/apps/ssi-abstraction/src/agent/agent.controller.ts
+++ b/apps/ssi-abstraction/src/agent/agent.controller.ts
@@ -1,18 +1,15 @@
-import { Controller, Get, HttpStatus } from '@nestjs/common';
+import { Controller } from '@nestjs/common';
+import { MessagePattern } from '@nestjs/microservices';
 import { AgentService } from './agent.service.js';
 
 @Controller('agent')
 export class AgentController {
   public constructor(private agent: AgentService) {}
 
-  @Get('info')
-  async getWalletInfo() {
+  @MessagePattern('info.publicDid')
+  async publicDid() {
     return {
-      statusCode: HttpStatus.OK,
-      message: 'Success',
-      data: 'SHOULD_BE_PUBLIC_DID',
+      id: 'test',
     };
   }
 }
-
-export default AgentController;
diff --git a/apps/ssi-abstraction/src/agent/agent.module.ts b/apps/ssi-abstraction/src/agent/agent.module.ts
index ebdf5c28ac85fa52f9d8fbb28732a87e85a29703..4666f06689b6eaec41b146c415b631a892a00de3 100644
--- a/apps/ssi-abstraction/src/agent/agent.module.ts
+++ b/apps/ssi-abstraction/src/agent/agent.module.ts
@@ -1,28 +1,12 @@
 import { Module } from '@nestjs/common';
 import { ConfigModule } from '@nestjs/config';
-import { ClientsModule, Transport } from '@nestjs/microservices';
-import config from '../config/config.js';
-import { NatsClientService } from '../client/nats.client.js';
-import { NATSServices } from '../common/constants.js';
 import { AgentController } from './agent.controller.js';
 import { AgentService } from './agent.service.js';
 
 @Module({
-  imports: [
-    ConfigModule,
-    ClientsModule.register([
-      {
-        name: NATSServices.SERVICE_NAME,
-        transport: Transport.NATS,
-        options: {
-          servers: [config().nats.url],
-        },
-      },
-    ]),
-  ],
-  providers: [NatsClientService, AgentService],
+  imports: [ConfigModule],
+  providers: [AgentService],
   controllers: [AgentController],
+  exports: [AgentService],
 })
 export class AgentModule {}
-
-export default AgentModule;
diff --git a/apps/ssi-abstraction/src/agent/agent.service.ts b/apps/ssi-abstraction/src/agent/agent.service.ts
index 33755ea0d94d9413d537f8254502e59ac5e5710f..01dd3214566bd863b9657927b583bd1e5bd0a5db 100644
--- a/apps/ssi-abstraction/src/agent/agent.service.ts
+++ b/apps/ssi-abstraction/src/agent/agent.service.ts
@@ -29,7 +29,6 @@ import {
   IndyVdrPoolConfig,
   IndyVdrSovDidResolver,
 } from '@aries-framework/indy-vdr';
-import { subscribe } from './utils/listener.js';
 import {
   LedgerIds,
   ledgerNamespaces,
@@ -37,23 +36,18 @@ import {
 } from './utils/ledgerConfig.js';
 import { AgentLogger } from './utils/logger.js';
 import { registerPublicDids } from './ledger/register.js';
-import { NatsClientService } from '../client/nats.client.js';
-import logger from '../globalUtils/logger.js';
+import { logger } from '../globalUtils/logger.js';
+
+export type AppAgent = Agent<AgentService['modules']>;
 
 @Injectable()
 export class AgentService {
-  private agent: Agent<this['modules']>;
+  public agent: AppAgent;
 
   private configService: ConfigService;
 
-  private natsClient: NatsClientService;
-
-  public constructor(
-    configService: ConfigService,
-    natsClient: NatsClientService,
-  ) {
+  public constructor(configService: ConfigService) {
     this.configService = configService;
-    this.natsClient = natsClient;
 
     const peerPort = this.configService.get('agent.peerPort');
 
@@ -185,7 +179,6 @@ export class AgentService {
   public async onModuleInit() {
     await this.agent.initialize();
     await this.registerPublicDid();
-    subscribe(this.agent, this.natsClient);
     logger.info('Agent initialized');
   }
 
@@ -193,5 +186,3 @@ export class AgentService {
     await this.agent.shutdown();
   }
 }
-
-export default AgentService;
diff --git a/apps/ssi-abstraction/src/agent/connection/connection.controller.ts b/apps/ssi-abstraction/src/agent/connection/connection.controller.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ac8c66775cd16db905d28714675ffc002d7f3e76
--- /dev/null
+++ b/apps/ssi-abstraction/src/agent/connection/connection.controller.ts
@@ -0,0 +1,13 @@
+import { Controller } from '@nestjs/common';
+import { MessagePattern } from '@nestjs/microservices';
+import { ConnectionService } from './connection.service.js';
+
+@Controller('connection')
+export class ConnectionController {
+  public constructor(private connectionService: ConnectionService) {}
+
+  @MessagePattern('connection.getAll')
+  async getAll() {
+    return await this.connectionService.getAll();
+  }
+}
diff --git a/apps/ssi-abstraction/src/agent/connection/connection.module.ts b/apps/ssi-abstraction/src/agent/connection/connection.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e713b17f8f7fb5d79b276fcd0779bc97870a9e8b
--- /dev/null
+++ b/apps/ssi-abstraction/src/agent/connection/connection.module.ts
@@ -0,0 +1,11 @@
+import { Module } from '@nestjs/common';
+import { AgentModule } from '../agent.module.js';
+import { ConnectionController } from './connection.controller.js';
+import { ConnectionService } from './connection.service.js';
+
+@Module({
+  imports: [AgentModule],
+  providers: [ConnectionService],
+  controllers: [ConnectionController],
+})
+export class ConnectionModule {}
diff --git a/apps/ssi-abstraction/src/agent/connection/connection.service.ts b/apps/ssi-abstraction/src/agent/connection/connection.service.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ae31d2e9e7e01fba89f8430b8b3e83f1601d5689
--- /dev/null
+++ b/apps/ssi-abstraction/src/agent/connection/connection.service.ts
@@ -0,0 +1,16 @@
+import { ConnectionRecord } from '@aries-framework/core';
+import { Injectable } from '@nestjs/common';
+import { AgentService, AppAgent } from '../agent.service.js';
+
+@Injectable()
+export class ConnectionService {
+  public agent: AppAgent;
+
+  public constructor(agentService: AgentService) {
+    this.agent = agentService.agent;
+  }
+
+  public async getAll(): Promise<Array<ConnectionRecord>> {
+    return await this.agent.connections.getAll();
+  }
+}
diff --git a/apps/ssi-abstraction/src/agent/ledger/register.ts b/apps/ssi-abstraction/src/agent/ledger/register.ts
index 01971858f5cc9b47788f0fd3ce72ef967be90d80..05363eeb96e08bcfa48444a7974399489e6ed1d3 100644
--- a/apps/ssi-abstraction/src/agent/ledger/register.ts
+++ b/apps/ssi-abstraction/src/agent/ledger/register.ts
@@ -1,4 +1,4 @@
-import logger from '../../globalUtils/logger.js';
+import { logger } from '../../globalUtils/logger.js';
 import axios from 'axios';
 import { logAxiosError } from '../utils/helperFunctions.js';
 import { LedgerIds, ledgerNamespaces, NYM_URL } from '../utils/ledgerConfig.js';
@@ -52,10 +52,8 @@ export const registerPublicDids = async ({
       }
     } catch (err) {
       // if did is already registered on IdUnion it will catch 500, but it's ok
-      logAxiosError(err);
+      if (err instanceof axios.AxiosError) logAxiosError(err);
     }
   }
   return responses;
 };
-
-export default registerPublicDids;
diff --git a/apps/ssi-abstraction/src/agent/utils/helperFunctions.ts b/apps/ssi-abstraction/src/agent/utils/helperFunctions.ts
index a8e80baf38639818feade9bbd2348a5c725dad1e..40edef4e006cb223f3d2e7009fdf02d91bad2d8d 100644
--- a/apps/ssi-abstraction/src/agent/utils/helperFunctions.ts
+++ b/apps/ssi-abstraction/src/agent/utils/helperFunctions.ts
@@ -1,5 +1,5 @@
 import { AxiosError } from 'axios';
-import logger from '../../globalUtils/logger.js';
+import { logger } from '../../globalUtils/logger.js';
 
 export function logAxiosError(err: AxiosError) {
   if (err.response) {
@@ -15,7 +15,3 @@ export function logAxiosError(err: AxiosError) {
     logger.error('Request error: ', err);
   }
 }
-
-export default {
-  logAxiosError,
-};
diff --git a/apps/ssi-abstraction/src/agent/utils/ledgerConfig.ts b/apps/ssi-abstraction/src/agent/utils/ledgerConfig.ts
index 2a7be31fa19709b861d9be2d2a82596b5c874592..0c2675d8084de2fd7af95d94f9166fbdb90e9a88 100644
--- a/apps/ssi-abstraction/src/agent/utils/ledgerConfig.ts
+++ b/apps/ssi-abstraction/src/agent/utils/ledgerConfig.ts
@@ -31,7 +31,3 @@ export const ledgerNamespaces = {
   BCOVRIN_TEST: 'bcovrin:test',
   GREEN_LIGHT: 'bcovrin:greenlight',
 };
-
-export default {
-  LEDGER_GENESIS,
-};
diff --git a/apps/ssi-abstraction/src/agent/utils/listener.spec.ts b/apps/ssi-abstraction/src/agent/utils/listener.spec.ts
deleted file mode 100644
index 1792bf323eb983f902104c21bd8bc6666c2ca308..0000000000000000000000000000000000000000
--- a/apps/ssi-abstraction/src/agent/utils/listener.spec.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-import { subscribe } from './listener.js';
-
-describe('listener', () => {
-  it('should subscribe agent to available events', async () => {
-    const agent = {
-      events: {
-        on: (eventName: string, cb: () => void) => {},
-      },
-    };
-
-    const natsClient = {
-      publish: () => {},
-    };
-    const spyPublish = jest.spyOn(natsClient, 'publish');
-
-    let lastCb = null;
-
-    const spy = jest
-      .spyOn(agent.events, 'on')
-      .mockImplementation((eventName: string, cb: () => void) => {
-        lastCb = cb;
-      });
-    // @ts-ignore
-    subscribe(agent, natsClient);
-    expect(spy).toHaveBeenCalled();
-    expect(spy).toHaveBeenCalledTimes(7);
-    spy.mockRestore();
-
-    // eslint-disable-next-line @typescript-eslint/ban-ts-comment
-    // @ts-ignore
-    lastCb({ payload: 'payload' });
-    expect(spyPublish).toHaveBeenCalled();
-    expect(spyPublish).toHaveBeenCalledTimes(1);
-  });
-});
diff --git a/apps/ssi-abstraction/src/agent/utils/listener.ts b/apps/ssi-abstraction/src/agent/utils/listener.ts
deleted file mode 100644
index 17615e1a6839e5422f1b49dc2b9dcdee052ba34c..0000000000000000000000000000000000000000
--- a/apps/ssi-abstraction/src/agent/utils/listener.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { Agent } from '@aries-framework/core';
-import logger from '../../globalUtils/logger.js';
-import { NatsClientService } from '../../client/nats.client.js';
-import { listenerConfig } from './listenerConfig.js';
-
-/**
- * Subscribes to events on nats
- *
- * @param agent - the agent that has been initialized on startup
- * @param natsClient - the client that specifies how events are published
- */
-export const subscribe = (agent: Agent, natsClient: NatsClientService) => {
-  for (let i = 0; i < listenerConfig.length; i += 1) {
-    agent.events.on(listenerConfig[i], ({ payload }) => {
-      logger.info(
-        `${listenerConfig[i]} called. Payload: ${JSON.stringify(payload)}`,
-      );
-      natsClient.publish(listenerConfig[i], payload);
-    });
-  }
-};
-
-export default {
-  subscribe,
-};
diff --git a/apps/ssi-abstraction/src/agent/utils/listenerConfig.ts b/apps/ssi-abstraction/src/agent/utils/listenerConfig.ts
deleted file mode 100644
index 02c5bc86539f5ce2f9098491d76dc4132fcc8370..0000000000000000000000000000000000000000
--- a/apps/ssi-abstraction/src/agent/utils/listenerConfig.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import {
-  BasicMessageEventTypes,
-  ConnectionEventTypes,
-  CredentialEventTypes,
-  ProofEventTypes,
-  RoutingEventTypes,
-  TransportEventTypes,
-} from '@aries-framework/core';
-
-export const listenerConfig = [
-  BasicMessageEventTypes.BasicMessageStateChanged,
-  ConnectionEventTypes.ConnectionStateChanged,
-  CredentialEventTypes.CredentialStateChanged,
-  ProofEventTypes.ProofStateChanged,
-  RoutingEventTypes.MediationStateChanged,
-  RoutingEventTypes.RecipientKeylistUpdated,
-  TransportEventTypes.OutboundWebSocketClosedEvent,
-];
-
-export default {
-  listenerConfig,
-};
diff --git a/apps/ssi-abstraction/src/agent/utils/logger.ts b/apps/ssi-abstraction/src/agent/utils/logger.ts
index dacc601395f90c7c1f0266ab788806ccaad18b4b..b872da0bd53f3b6026671a78bc6c156d77907f94 100644
--- a/apps/ssi-abstraction/src/agent/utils/logger.ts
+++ b/apps/ssi-abstraction/src/agent/utils/logger.ts
@@ -1,5 +1,5 @@
 import { BaseLogger, LogLevel } from '@aries-framework/core';
-import logger from '../../globalUtils/logger.js';
+import { logger } from '../../globalUtils/logger.js';
 
 export class AgentLogger extends BaseLogger {
   public test(
@@ -58,5 +58,3 @@ export class AgentLogger extends BaseLogger {
     logger.error(message, data);
   }
 }
-
-export default AgentLogger;
diff --git a/apps/ssi-abstraction/src/app.module.ts b/apps/ssi-abstraction/src/app.module.ts
index 8c3928c26e82dba45c1240a3994f07ffab9a724c..0017009937b203ebc0833aaf6db04a334e0d1b8e 100644
--- a/apps/ssi-abstraction/src/app.module.ts
+++ b/apps/ssi-abstraction/src/app.module.ts
@@ -1,14 +1,13 @@
 import { APP_FILTER } from '@nestjs/core';
-import { Module, NestModule, MiddlewareConsumer } from '@nestjs/common';
+import { Module } from '@nestjs/common';
 import { ConfigModule } from '@nestjs/config';
 import { TerminusModule } from '@nestjs/terminus';
-
-import config from './config/config.js';
-import validationSchema from './config/validation.js';
-import HealthController from './health/health.controller.js';
-import ExceptionHandler from './globalUtils/exception.handler.js';
-import { AgentMid } from './middleware/agentMid.middleware.js';
+import { config } from './config/config.js';
+import { validationSchema } from './config/validation.js';
+import { HealthController } from './health/health.controller.js';
+import { ExceptionHandler } from './globalUtils/exception.handler.js';
 import { AgentModule } from './agent/agent.module.js';
+import { ConnectionModule } from './agent/connection/connection.module.js';
 
 @Module({
   imports: [
@@ -19,19 +18,14 @@ import { AgentModule } from './agent/agent.module.js';
       validationSchema,
     }),
     AgentModule,
+    ConnectionModule,
   ],
   controllers: [HealthController],
-  providers: [
-    {
-      provide: APP_FILTER,
-      useClass: ExceptionHandler,
-    },
-  ],
+  // providers: [
+  //   {
+  //     provide: APP_FILTER,
+  //     useClass: ExceptionHandler,
+  //   },
+  // ],
 })
-export class AppModule implements NestModule {
-  configure(consumer: MiddlewareConsumer) {
-    consumer.apply(AgentMid).forRoutes('agent', '*/agent');
-  }
-}
-
-export default AppModule;
+export class AppModule {}
diff --git a/apps/ssi-abstraction/src/client/nats.client.ts b/apps/ssi-abstraction/src/client/nats.client.ts
deleted file mode 100644
index fffd1c89c7a2ca80137c613eac2f0398c0834d80..0000000000000000000000000000000000000000
--- a/apps/ssi-abstraction/src/client/nats.client.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { Inject, Injectable } from '@nestjs/common';
-import { ClientProxy } from '@nestjs/microservices';
-import { NATSServices } from '../common/constants.js';
-import logger from '../globalUtils/logger.js';
-
-@Injectable()
-export class NatsClientService {
-  constructor(@Inject(NATSServices.SERVICE_NAME) private client: ClientProxy) {}
-
-  /**
-   * Publishes events on nats
-   * Generates the event as an object with 'endpoint' key
-   * that specifies the ServiceName/eventName.
-   *
-   * @param eventName - the event name
-   * @param data - the data to be passed as payload of the event
-   */
-  publish<D = unknown>(eventName: string, data: D) {
-    logger.info(
-      `Publish nats event: ${NATSServices.SERVICE_NAME}/${eventName}`,
-    );
-
-    const event = {
-      endpoint: `${NATSServices.SERVICE_NAME}/${eventName}`,
-    };
-
-    this.client.emit(event, data);
-  }
-}
-
-export default { NatsClientService };
diff --git a/apps/ssi-abstraction/src/common/constants.ts b/apps/ssi-abstraction/src/common/constants.ts
index 75991ce1ec30351a41dbde128bc2cec199e1803d..ab0f748d91361cd4b590e77e8530aa864989c1f0 100644
--- a/apps/ssi-abstraction/src/common/constants.ts
+++ b/apps/ssi-abstraction/src/common/constants.ts
@@ -1,7 +1,3 @@
 export enum NATSServices {
   SERVICE_NAME = 'SSI_ABSTRACTION_SERVICE',
 }
-
-export default {
-  NATSServices,
-};
diff --git a/apps/ssi-abstraction/src/config/config.ts b/apps/ssi-abstraction/src/config/config.ts
index c827fbebdae613a8cf5861131d49fb5d33814a4b..92cc6dd9d8e3e3de0eedee4c060d6a812e971565 100644
--- a/apps/ssi-abstraction/src/config/config.ts
+++ b/apps/ssi-abstraction/src/config/config.ts
@@ -25,7 +25,7 @@ interface Config {
   };
 }
 
-const config = (): Config => ({
+export const config = (): Config => ({
   agentHost: process.env.AGENT_HOST || '',
   port: Number(process.env.PORT),
   jwtSecret: process.env.JWT_SECRET || '',
@@ -49,5 +49,3 @@ const config = (): Config => ({
     idUnionKey: process.env.AGENT_ID_UNION_KEY || '',
   },
 });
-
-export default config;
diff --git a/apps/ssi-abstraction/src/config/validation.ts b/apps/ssi-abstraction/src/config/validation.ts
index eb5adf8d110648161a873b2d5ea74343e55a9bdb..ae47388a22280b1963287d5a3949fa4a51f1d4d5 100644
--- a/apps/ssi-abstraction/src/config/validation.ts
+++ b/apps/ssi-abstraction/src/config/validation.ts
@@ -1,6 +1,6 @@
 import Joi from 'joi';
 
-const validationSchema = Joi.object({
+export const validationSchema = Joi.object({
   NATS_URL: Joi.string().required(),
   PORT: Joi.number().required(),
 
@@ -15,5 +15,3 @@ const validationSchema = Joi.object({
   AGENT_AUTO_ACCEPT_CREDENTIAL: Joi.string().required(),
   AGENT_ID_UNION_KEY: Joi.string(),
 });
-
-export default validationSchema;
diff --git a/apps/ssi-abstraction/src/globalUtils/appConfig.spec.ts b/apps/ssi-abstraction/src/globalUtils/appConfig.spec.ts
deleted file mode 100644
index 13097b32f30081fc461198cd6715a51d4cc60bda..0000000000000000000000000000000000000000
--- a/apps/ssi-abstraction/src/globalUtils/appConfig.spec.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-describe('check getConfig', () => {
-  it('should return appConfig module', async () => {
-    jest.requireActual('./appConfig');
-  });
-});
diff --git a/apps/ssi-abstraction/src/globalUtils/appConfig.ts b/apps/ssi-abstraction/src/globalUtils/appConfig.ts
deleted file mode 100644
index f3fba5475a3a8a7872b740e9823fe2e9a33161ad..0000000000000000000000000000000000000000
--- a/apps/ssi-abstraction/src/globalUtils/appConfig.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import { VersioningType, INestApplication } from '@nestjs/common';
-import { ConfigService } from '@nestjs/config';
-import { Transport, MicroserviceOptions } from '@nestjs/microservices';
-import logger from './logger.js';
-
-/**
- * Microservice and versioning configuration of the service
- *
- * @param app - Nest.js internal configuration object
- * @param configService - Nest.js internal configuration object
- */
-export default async function appConf(
-  app: INestApplication,
-  configService: ConfigService,
-): Promise<void> {
-  try {
-    app.connectMicroservice<MicroserviceOptions>({
-      transport: Transport.NATS,
-      options: {
-        servers: [configService.get('nats')?.url],
-      },
-    });
-  } catch (err) {
-    await new Promise((resolve) => {
-      setTimeout(() => {
-        resolve('Trying again to connect to nats.');
-      }, 2000);
-    });
-    logger.error(err);
-    logger.info('Retrying connection to NATS.');
-    app.connectMicroservice<MicroserviceOptions>({
-      transport: Transport.NATS,
-      options: {
-        servers: [configService.get('nats')?.url],
-      },
-    });
-  }
-
-  app.enableVersioning({
-    defaultVersion: ['1'],
-    type: VersioningType.URI,
-  });
-}
diff --git a/apps/ssi-abstraction/src/globalUtils/exception.handler.ts b/apps/ssi-abstraction/src/globalUtils/exception.handler.ts
index 08fa2a61496e2a0c6adfd291fcdce31d8dfc1c0a..1df482477dccc2afcf2bd5be03240a67b82b081d 100644
--- a/apps/ssi-abstraction/src/globalUtils/exception.handler.ts
+++ b/apps/ssi-abstraction/src/globalUtils/exception.handler.ts
@@ -1,46 +1,10 @@
-import {
-  ExceptionFilter,
-  Catch,
-  ArgumentsHost,
-  HttpException,
-  HttpStatus,
-} from '@nestjs/common';
-import { HttpAdapterHost } from '@nestjs/core';
-import { ResponseType } from '../common/response.js';
+import { Catch, RpcExceptionFilter, ArgumentsHost } from '@nestjs/common';
+import { Observable, throwError } from 'rxjs';
+import { RpcException } from '@nestjs/microservices';
 
 @Catch()
-export class ExceptionHandler implements ExceptionFilter {
-  constructor(private readonly httpAdapterHost: HttpAdapterHost) {}
-
-  /**
-   * Custom exception handler
-   *
-   * @param exception - error
-   * @param host - the execution context for exceptions
-   */
-  catch(exception: HttpException, host: ArgumentsHost): void {
-    // In certain situations `httpAdapter` might not be available in the
-    // constructor method, thus we should resolve it here.
-    const { httpAdapter } = this.httpAdapterHost;
-
-    const ctx = host.switchToHttp();
-    const response = ctx.getResponse();
-
-    let statusCode = HttpStatus.INTERNAL_SERVER_ERROR;
-    const message = exception.message || 'Something went wrong!';
-
-    if (exception instanceof HttpException) {
-      statusCode = exception.getStatus();
-    }
-
-    const responseBody: ResponseType = {
-      statusCode,
-      message,
-      error: exception.message,
-    };
-
-    httpAdapter.reply(response, responseBody, statusCode);
+export class ExceptionHandler implements RpcExceptionFilter<RpcException> {
+  catch(exception: RpcException, host: ArgumentsHost): Observable<any> {
+    return throwError(() => exception.getError());
   }
 }
-
-export default ExceptionHandler;
diff --git a/apps/ssi-abstraction/src/globalUtils/logger.ts b/apps/ssi-abstraction/src/globalUtils/logger.ts
index d5a8bbe54d026e9740af51af76a8235b305d5a0b..78c367408189f0323466abc50aa0cee3f7f68fe3 100644
--- a/apps/ssi-abstraction/src/globalUtils/logger.ts
+++ b/apps/ssi-abstraction/src/globalUtils/logger.ts
@@ -1,7 +1,7 @@
 import winston, { Logger } from 'winston';
 import ecsFormat from '@elastic/ecs-winston-format';
 
-const logger: Logger = winston.createLogger({
+export const logger: Logger = winston.createLogger({
   format: ecsFormat({ convertReqRes: true }),
   transports: [new winston.transports.Console()],
 });
@@ -9,5 +9,3 @@ const logger: Logger = winston.createLogger({
 logger.on('error', (error: Error) => {
   console.error('Error in logger caught', error);
 });
-
-export default logger;
diff --git a/apps/ssi-abstraction/src/globalUtils/swagger.ts b/apps/ssi-abstraction/src/globalUtils/swagger.ts
deleted file mode 100644
index 4adc4721814713af25d6e2a573817a2c68242eb3..0000000000000000000000000000000000000000
--- a/apps/ssi-abstraction/src/globalUtils/swagger.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
-import { INestApplication } from '@nestjs/common';
-
-/**
- * Setup for swagger endpoint documentation
- *
- *
- * @param app - Nest.js internal config object
- */
-export default function swaggerSetup(app: INestApplication): void {
-  const swaggerConfig = new DocumentBuilder()
-    .setTitle('Gaia-x SSI Abstraction service')
-    .setDescription('API documentation for GAIA-X SSI Abstraction service')
-    .setVersion('1.0')
-    .build();
-
-  const document = SwaggerModule.createDocument(app, swaggerConfig);
-
-  SwaggerModule.setup('/swagger', app, document);
-}
diff --git a/apps/ssi-abstraction/src/health/health.controller.ts b/apps/ssi-abstraction/src/health/health.controller.ts
index 94fb4e97416fd9df469bc9f4f7796f8168c7cd27..6a24038f10a3c96b8eee42b3c5d5a9ef9c5fb316 100644
--- a/apps/ssi-abstraction/src/health/health.controller.ts
+++ b/apps/ssi-abstraction/src/health/health.controller.ts
@@ -15,5 +15,3 @@ export class HealthController {
     };
   }
 }
-
-export default HealthController;
diff --git a/apps/ssi-abstraction/src/main.ts b/apps/ssi-abstraction/src/main.ts
index 98f80968b247c45eb4bcb445dbcfa0dafb2b76e2..65a822c95e8d7be660b6b02e38f8f5cae4972e12 100644
--- a/apps/ssi-abstraction/src/main.ts
+++ b/apps/ssi-abstraction/src/main.ts
@@ -1,25 +1,20 @@
 import { NestFactory } from '@nestjs/core';
-import { ConfigService } from '@nestjs/config';
-
-import AppModule from './app.module.js';
-import logger from './globalUtils/logger.js';
-import swaggerSetup from './globalUtils/swagger.js';
-import appConf from './globalUtils/appConfig.js';
+import { MicroserviceOptions, Transport } from '@nestjs/microservices';
+import { AppModule } from './app.module.js';
+import { config } from './config/config.js';
 
 async function bootstrap() {
-  const app = await NestFactory.create(AppModule);
-  const configService = app.get(ConfigService);
-
-  await appConf(app, configService);
-
-  swaggerSetup(app);
+  const app = await NestFactory.createMicroservice<MicroserviceOptions>(
+    AppModule,
+    {
+      transport: Transport.NATS,
+      options: {
+        servers: [config().nats.url],
+      },
+    },
+  );
 
-  await app.startAllMicroservices();
-
-  const servicePort = configService.get<number>('port') || 3000;
-
-  await app.listen(servicePort, () => {
-    logger.info(`Listening on Port: ${servicePort}`);
-  });
+  await app.listen();
 }
+
 bootstrap();
diff --git a/apps/ssi-abstraction/src/middleware/agentMid.middleware.ts b/apps/ssi-abstraction/src/middleware/agentMid.middleware.ts
index a8d1a663daf8ebe350eb1c7cf5a9875b135d4325..0fef2c9f26ae51efe471f2b7320884063f749ae2 100644
--- a/apps/ssi-abstraction/src/middleware/agentMid.middleware.ts
+++ b/apps/ssi-abstraction/src/middleware/agentMid.middleware.ts
@@ -36,5 +36,3 @@ export class AgentMid implements NestMiddleware {
     next();
   }
 }
-
-export default { AgentMid };
diff --git a/apps/ssi-abstraction/swagger.json b/apps/ssi-abstraction/swagger.json
deleted file mode 100644
index 929bc8cbc06b97546a5388a4e6f75aa8a0354ce0..0000000000000000000000000000000000000000
--- a/apps/ssi-abstraction/swagger.json
+++ /dev/null
@@ -1,4358 +0,0 @@
-{
-  "components": {
-    "schemas": {
-      "AttachmentData": {
-        "properties": {
-          "base64": {
-            "format": "base64",
-            "type": "string"
-          },
-          "json": {},
-          "links": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array"
-          },
-          "jws": {},
-          "sha256": {
-            "type": "string"
-          }
-        },
-        "type": "object"
-      },
-      "Attachment": {
-        "properties": {
-          "description": {
-            "type": "string"
-          },
-          "filename": {
-            "type": "string"
-          },
-          "mimeType": {
-            "type": "string"
-          },
-          "lastmodTime": {
-            "oneOf": [
-              {
-                "format": "date",
-                "type": "string"
-              },
-              {
-                "format": "date-time",
-                "type": "string"
-              }
-            ]
-          },
-          "byteCount": {
-            "type": "integer"
-          },
-          "data": {
-            "$ref": "#/components/schemas/AttachmentData"
-          }
-        },
-        "type": "object",
-        "required": [
-          "data"
-        ]
-      },
-      "Service": {
-        "properties": {
-          "id": {
-            "type": "string"
-          },
-          "serviceEndpoint": {
-            "type": "string"
-          },
-          "type": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "id",
-          "serviceEndpoint",
-          "type"
-        ]
-      },
-      "DidCommService": {
-        "properties": {
-          "recipientKeys": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array",
-            "minItems": 1
-          },
-          "routingKeys": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array"
-          },
-          "accept": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array"
-          },
-          "id": {
-            "type": "string"
-          },
-          "serviceEndpoint": {
-            "type": "string"
-          },
-          "type": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "recipientKeys",
-          "id",
-          "serviceEndpoint",
-          "type"
-        ]
-      },
-      "ServiceDecorator": {
-        "properties": {
-          "recipientKeys": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array"
-          },
-          "routingKeys": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array"
-          },
-          "serviceEndpoint": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "recipientKeys",
-          "serviceEndpoint"
-        ]
-      },
-      "BaseMessage": {
-        "properties": {
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "type": {
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$",
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "id",
-          "type"
-        ]
-      },
-      "ThreadDecorator": {
-        "properties": {
-          "threadId": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "parentThreadId": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "senderOrder": {
-            "type": "integer"
-          },
-          "receivedOrders": {}
-        },
-        "type": "object"
-      },
-      "TimingDecorator": {
-        "properties": {
-          "inTime": {
-            "oneOf": [
-              {
-                "format": "date",
-                "type": "string"
-              },
-              {
-                "format": "date-time",
-                "type": "string"
-              }
-            ]
-          },
-          "outTime": {
-            "oneOf": [
-              {
-                "format": "date",
-                "type": "string"
-              },
-              {
-                "format": "date-time",
-                "type": "string"
-              }
-            ]
-          },
-          "staleTime": {
-            "oneOf": [
-              {
-                "format": "date",
-                "type": "string"
-              },
-              {
-                "format": "date-time",
-                "type": "string"
-              }
-            ]
-          },
-          "expiresTime": {
-            "oneOf": [
-              {
-                "format": "date",
-                "type": "string"
-              },
-              {
-                "format": "date-time",
-                "type": "string"
-              }
-            ]
-          },
-          "delayMilli": {
-            "type": "number"
-          },
-          "waitUntilTime": {
-            "oneOf": [
-              {
-                "format": "date",
-                "type": "string"
-              },
-              {
-                "format": "date-time",
-                "type": "string"
-              }
-            ]
-          }
-        },
-        "type": "object"
-      },
-      "TransportDecorator": {
-        "properties": {
-          "returnRoute": {
-            "enum": [
-              "none",
-              "all",
-              "thread"
-            ],
-            "type": "string"
-          },
-          "returnRouteThread": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          }
-        },
-        "type": "object"
-      },
-      "ThreadDecoratorExtension": {
-        "properties": {
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "type": {
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$",
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "id",
-          "type"
-        ]
-      },
-      "L10nDecoratorExtension": {
-        "properties": {
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "type": {
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "id",
-          "type"
-        ]
-      },
-      "TransportDecoratorExtension": {
-        "properties": {
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "type": {
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "id",
-          "type"
-        ]
-      },
-      "TimingDecoratorExtension": {
-        "properties": {
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "type": {
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "id",
-          "type"
-        ]
-      },
-      "AckDecoratorExtension": {
-        "properties": {
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "type": {
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "id",
-          "type"
-        ]
-      },
-      "AttachmentDecoratorExtension": {
-        "properties": {
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "type": {
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "id",
-          "type"
-        ]
-      },
-      "ServiceDecoratorExtension": {
-        "properties": {
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "type": {
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          }
-        },
-        "type": "object",
-        "required": [
-          "id",
-          "type"
-        ]
-      },
-      "ProblemReportMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/notification/1.0/problem-report"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "problemItems": {},
-          "whoRetries": {
-            "enum": [
-              "YOU",
-              "ME",
-              "BOTH",
-              "NONE"
-            ],
-            "type": "string"
-          },
-          "fixHint": {},
-          "where": {
-            "enum": [
-              "CLOUD",
-              "EDGE",
-              "WIRE",
-              "AGENCY"
-            ],
-            "type": "string"
-          },
-          "impact": {
-            "enum": [
-              "MESSAGE",
-              "THREAD",
-              "CONNECTION"
-            ],
-            "type": "string"
-          },
-          "noticedTime": {
-            "type": "string"
-          },
-          "trackingUri": {
-            "type": "string"
-          },
-          "escalationUri": {
-            "type": "string"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "id"
-        ]
-      },
-      "BatchMessageMessage": {
-        "properties": {
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "message": {
-            "type": "object"
-          }
-        },
-        "type": "object",
-        "required": [
-          "id",
-          "message"
-        ]
-      },
-      "BatchMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/messagepickup/1.0/batch"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "messages": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "messages",
-          "id"
-        ]
-      },
-      "BatchPickupMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/messagepickup/1.0/batch-pickup"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "batchSize": {
-            "type": "integer"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "batchSize",
-          "id"
-        ]
-      },
-      "ForwardMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/routing/1.0/forward"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "to": {
-            "type": "string"
-          },
-          "message": {
-            "type": "object"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "to",
-          "message",
-          "id"
-        ]
-      },
-      "KeylistUpdate": {
-        "properties": {
-          "recipientKey": {
-            "type": "string"
-          },
-          "action": {
-            "enum": [
-              "add",
-              "remove"
-            ],
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "recipientKey",
-          "action"
-        ]
-      },
-      "KeylistUpdateMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/coordinate-mediation/1.0/keylist-update"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "updates": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "updates",
-          "id"
-        ]
-      },
-      "KeylistUpdated": {
-        "properties": {
-          "recipientKey": {
-            "type": "string"
-          },
-          "action": {
-            "enum": [
-              "add",
-              "remove"
-            ],
-            "type": "string"
-          },
-          "result": {
-            "enum": [
-              "client_error",
-              "server_error",
-              "no_change",
-              "success"
-            ],
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "recipientKey",
-          "action",
-          "result"
-        ]
-      },
-      "KeylistUpdateResponseMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/coordinate-mediation/1.0/keylist-update-response"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "updated": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "updated",
-          "id"
-        ]
-      },
-      "MediationGrantMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/coordinate-mediation/1.0/mediate-grant"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "routingKeys": {
-            "items": {},
-            "type": "string",
-            "minLength": 1
-          },
-          "endpoint": {
-            "type": "string",
-            "minLength": 1
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "routingKeys",
-          "endpoint",
-          "id"
-        ]
-      },
-      "MediationDenyMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/coordinate-mediation/1.0/mediate-deny"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "id"
-        ]
-      },
-      "MediationRequestMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/coordinate-mediation/1.0/mediate-request"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "sentTime": {
-            "oneOf": [
-              {
-                "format": "date",
-                "type": "string"
-              },
-              {
-                "format": "date-time",
-                "type": "string"
-              }
-            ]
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "sentTime",
-          "id"
-        ]
-      },
-      "PublicKey": {
-        "properties": {
-          "id": {
-            "type": "string"
-          },
-          "controller": {
-            "type": "string"
-          },
-          "type": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "id",
-          "controller",
-          "type"
-        ]
-      },
-      "Ed25119Sig2018": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "Ed25519VerificationKey2018"
-            ]
-          },
-          "value": {
-            "type": "string"
-          },
-          "id": {
-            "type": "string"
-          },
-          "controller": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "value",
-          "id",
-          "controller"
-        ]
-      },
-      "EddsaSaSigSecp256k1": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "Secp256k1VerificationKey2018"
-            ]
-          },
-          "value": {
-            "type": "string"
-          },
-          "id": {
-            "type": "string"
-          },
-          "controller": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "value",
-          "id",
-          "controller"
-        ]
-      },
-      "RsaSig2018": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "RsaVerificationKey2018"
-            ]
-          },
-          "value": {
-            "type": "string"
-          },
-          "id": {
-            "type": "string"
-          },
-          "controller": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "value",
-          "id",
-          "controller"
-        ]
-      },
-      "EmbeddedAuthentication": {
-        "properties": {
-          "publicKey": {
-            "$ref": "#/components/schemas/PublicKey",
-            "minLength": 1,
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "publicKey"
-        ]
-      },
-      "ReferencedAuthentication": {
-        "properties": {
-          "type": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type"
-        ]
-      },
-      "IndyAgentService": {
-        "properties": {
-          "recipientKeys": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array",
-            "minItems": 1
-          },
-          "routingKeys": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array"
-          },
-          "id": {
-            "type": "string"
-          },
-          "serviceEndpoint": {
-            "type": "string"
-          },
-          "type": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "recipientKeys",
-          "id",
-          "serviceEndpoint",
-          "type"
-        ]
-      },
-      "DidDoc": {
-        "properties": {
-          "context": {
-            "type": "string",
-            "enum": [
-              "https://w3id.org/did/v1"
-            ]
-          },
-          "id": {
-            "type": "string"
-          },
-          "publicKey": {
-            "$ref": "#/components/schemas/Array",
-            "items": {},
-            "type": "array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/Array",
-            "items": {},
-            "type": "array"
-          },
-          "authentication": {
-            "$ref": "#/components/schemas/Array",
-            "items": {},
-            "type": "array"
-          }
-        },
-        "type": "object",
-        "required": [
-          "context",
-          "id",
-          "publicKey",
-          "service",
-          "authentication"
-        ]
-      },
-      "Connection": {
-        "properties": {
-          "did": {
-            "type": "string"
-          },
-          "didDoc": {
-            "$ref": "#/components/schemas/DidDoc"
-          }
-        },
-        "type": "object",
-        "required": [
-          "did"
-        ]
-      },
-      "ConnectionInvitationMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/connections/1.0/invitation"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "label": {
-            "type": "string"
-          },
-          "did": {
-            "type": "string"
-          },
-          "recipientKeys": {
-            "items": {
-              "type": "string"
-            },
-            "minItems": 1,
-            "type": "array"
-          },
-          "serviceEndpoint": {
-            "type": "string"
-          },
-          "routingKeys": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array"
-          },
-          "imageUrl": {
-            "format": "url",
-            "type": "string"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "label",
-          "id"
-        ]
-      },
-      "ConnectionRequestMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/connections/1.0/request"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "label": {
-            "type": "string"
-          },
-          "connection": {
-            "$ref": "#/components/schemas/Connection"
-          },
-          "imageUrl": {
-            "format": "url",
-            "type": "string"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "label",
-          "connection",
-          "id"
-        ]
-      },
-      "SignatureDecorator": {
-        "properties": {
-          "signatureType": {
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$",
-            "type": "string"
-          },
-          "signatureData": {
-            "type": "string"
-          },
-          "signer": {
-            "type": "string"
-          },
-          "signature": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "signatureType",
-          "signatureData",
-          "signer",
-          "signature"
-        ]
-      },
-      "ConnectionResponseMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/connections/1.0/response"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "connectionSig": {
-            "$ref": "#/components/schemas/SignatureDecorator"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "connectionSig",
-          "id"
-        ]
-      },
-      "TrustPingMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/trust_ping/1.0/ping"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "responseRequested": {
-            "type": "boolean"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "responseRequested",
-          "id"
-        ]
-      },
-      "TrustPingResponseMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/trust_ping/1.0/ping_response"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "id"
-        ]
-      },
-      "ConnectionProblemReportMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/connection/1.0/problem-report"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          },
-          "problemItems": {},
-          "whoRetries": {
-            "enum": [
-              "YOU",
-              "ME",
-              "BOTH",
-              "NONE"
-            ],
-            "type": "string"
-          },
-          "fixHint": {},
-          "where": {
-            "enum": [
-              "CLOUD",
-              "EDGE",
-              "WIRE",
-              "AGENCY"
-            ],
-            "type": "string"
-          },
-          "impact": {
-            "enum": [
-              "MESSAGE",
-              "THREAD",
-              "CONNECTION"
-            ],
-            "type": "string"
-          },
-          "noticedTime": {
-            "type": "string"
-          },
-          "trackingUri": {
-            "type": "string"
-          },
-          "escalationUri": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "id"
-        ]
-      },
-      "AckMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/notification/1.0/ack"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "status": {
-            "enum": [
-              "OK",
-              "FAIL",
-              "PENDING"
-            ],
-            "type": "string"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "status",
-          "id"
-        ]
-      },
-      "BasicMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/basicmessage/1.0/message"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "sentTime": {
-            "oneOf": [
-              {
-                "format": "date",
-                "type": "string"
-              },
-              {
-                "format": "date-time",
-                "type": "string"
-              }
-            ]
-          },
-          "content": {
-            "type": "string"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "sentTime",
-          "content",
-          "id"
-        ]
-      },
-      "CredentialPreviewAttribute": {
-        "properties": {
-          "name": {
-            "type": "string"
-          },
-          "mimeType": {
-            "type": "string"
-          },
-          "value": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "name",
-          "value"
-        ]
-      },
-      "CredentialPreview": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/issue-credential/1.0/credential-preview"
-            ]
-          },
-          "attributes": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "attributes"
-        ]
-      },
-      "CredentialAckMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/issue-credential/1.0/ack"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          },
-          "status": {
-            "enum": [
-              "OK",
-              "FAIL",
-              "PENDING"
-            ],
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "id",
-          "status"
-        ]
-      },
-      "RequestCredentialMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/issue-credential/1.0/request-credential"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "requestAttachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "requestAttachments",
-          "id"
-        ]
-      },
-      "IssueCredentialMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/issue-credential/1.0/issue-credential"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "credentialAttachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "credentialAttachments",
-          "id"
-        ]
-      },
-      "OfferCredentialMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/issue-credential/1.0/offer-credential"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "credentialPreview": {
-            "$ref": "#/components/schemas/CredentialPreview"
-          },
-          "offerAttachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "credentialPreview",
-          "offerAttachments",
-          "id"
-        ]
-      },
-      "ProposeCredentialMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/issue-credential/1.0/propose-credential"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "credentialProposal": {
-            "$ref": "#/components/schemas/CredentialPreview"
-          },
-          "schemaIssuerDid": {
-            "type": "string"
-          },
-          "schemaId": {
-            "type": "string"
-          },
-          "schemaName": {
-            "type": "string"
-          },
-          "schemaVersion": {
-            "type": "string"
-          },
-          "credentialDefinitionId": {
-            "type": "string"
-          },
-          "issuerDid": {
-            "type": "string"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "id"
-        ]
-      },
-      "CredentialProblemReportMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/issue-credential/1.0/problem-report"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          },
-          "problemItems": {},
-          "whoRetries": {
-            "enum": [
-              "YOU",
-              "ME",
-              "BOTH",
-              "NONE"
-            ],
-            "type": "string"
-          },
-          "fixHint": {},
-          "where": {
-            "enum": [
-              "CLOUD",
-              "EDGE",
-              "WIRE",
-              "AGENCY"
-            ],
-            "type": "string"
-          },
-          "impact": {
-            "enum": [
-              "MESSAGE",
-              "THREAD",
-              "CONNECTION"
-            ],
-            "type": "string"
-          },
-          "noticedTime": {
-            "type": "string"
-          },
-          "trackingUri": {
-            "type": "string"
-          },
-          "escalationUri": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "id"
-        ]
-      },
-      "DiscloseProtocol": {
-        "properties": {
-          "protocolId": {
-            "type": "string"
-          },
-          "roles": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array"
-          }
-        },
-        "type": "object",
-        "required": [
-          "protocolId"
-        ]
-      },
-      "DiscloseMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/discover-features/1.0/disclose"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "protocols": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "protocols",
-          "id"
-        ]
-      },
-      "QueryMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/discover-features/1.0/query"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "query": {
-            "type": "string"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "query",
-          "id"
-        ]
-      },
-      "PresentationPreviewAttribute": {
-        "properties": {
-          "credentialDefinitionId": {
-            "type": "string"
-          },
-          "mimeType": {
-            "type": "string"
-          },
-          "value": {
-            "type": "string"
-          },
-          "referent": {
-            "type": "string"
-          }
-        },
-        "type": "object"
-      },
-      "PresentationPreviewPredicate": {
-        "properties": {
-          "name": {
-            "type": "string"
-          },
-          "credentialDefinitionId": {
-            "type": "string"
-          },
-          "predicate": {
-            "enum": [
-              "<",
-              "<=",
-              ">",
-              ">="
-            ],
-            "type": "string"
-          },
-          "threshold": {
-            "type": "integer"
-          }
-        },
-        "type": "object",
-        "required": [
-          "name",
-          "credentialDefinitionId",
-          "predicate",
-          "threshold"
-        ]
-      },
-      "PresentationPreview": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/present-proof/1.0/presentation-preview"
-            ]
-          },
-          "attributes": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          },
-          "predicates": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "attributes",
-          "predicates"
-        ]
-      },
-      "ProposePresentationMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/present-proof/1.0/propose-presentation"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "presentationProposal": {
-            "$ref": "#/components/schemas/PresentationPreview"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "presentationProposal",
-          "id"
-        ]
-      },
-      "AttributeValue": {
-        "properties": {
-          "name": {
-            "type": "string"
-          },
-          "value": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "name",
-          "value"
-        ]
-      },
-      "AttributeFilter": {
-        "properties": {
-          "schemaId": {
-            "type": "string"
-          },
-          "schemaIssuerDid": {
-            "type": "string"
-          },
-          "schemaName": {
-            "type": "string"
-          },
-          "schemaVersion": {
-            "type": "string"
-          },
-          "issuerDid": {
-            "type": "string"
-          },
-          "credentialDefinitionId": {
-            "type": "string"
-          },
-          "attributeValue": {
-            "$ref": "#/components/schemas/AttributeValue"
-          }
-        },
-        "type": "object"
-      },
-      "ProofIdentifier": {
-        "properties": {
-          "schemaId": {
-            "type": "string"
-          },
-          "credentialDefinitionId": {
-            "type": "string"
-          },
-          "revocationRegistryId": {
-            "type": "string"
-          },
-          "timestamp": {
-            "type": "number"
-          }
-        },
-        "type": "object",
-        "required": [
-          "schemaId",
-          "credentialDefinitionId"
-        ]
-      },
-      "ProofAttribute": {
-        "properties": {
-          "subProofIndex": {
-            "type": "integer"
-          },
-          "raw": {
-            "type": "string"
-          },
-          "encoded": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "subProofIndex",
-          "raw",
-          "encoded"
-        ]
-      },
-      "RequestedProof": {
-        "properties": {
-          "revealedAttributes": {
-            "items": {
-              "$ref": "#/components/schemas/Map"
-            },
-            "type": "array"
-          },
-          "selfAttestedAttributes": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array"
-          }
-        },
-        "type": "object",
-        "required": [
-          "revealedAttributes",
-          "selfAttestedAttributes"
-        ]
-      },
-      "PartialProof": {
-        "properties": {
-          "identifiers": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          },
-          "requestedProof": {
-            "$ref": "#/components/schemas/RequestedProof"
-          }
-        },
-        "type": "object",
-        "required": [
-          "identifiers",
-          "requestedProof"
-        ]
-      },
-      "IndyCredentialInfo": {
-        "properties": {
-          "referent": {
-            "type": "string"
-          },
-          "attributes": {
-            "items": {
-              "type": "string"
-            },
-            "type": "array"
-          },
-          "schemaId": {
-            "type": "string"
-          },
-          "credentialDefinitionId": {
-            "type": "string"
-          },
-          "revocationRegistryId": {
-            "type": "string"
-          },
-          "credentialRevocationId": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "referent",
-          "attributes",
-          "schemaId",
-          "credentialDefinitionId"
-        ]
-      },
-      "RevocationInterval": {
-        "properties": {
-          "from": {
-            "type": "integer"
-          },
-          "to": {
-            "type": "integer"
-          }
-        },
-        "type": "object"
-      },
-      "Credential": {
-        "properties": {
-          "credentialInfo": {
-            "$ref": "#/components/schemas/IndyCredentialInfo"
-          },
-          "interval": {
-            "$ref": "#/components/schemas/RevocationInterval"
-          }
-        },
-        "type": "object",
-        "required": [
-          "credentialInfo"
-        ]
-      },
-      "ProofAttributeInfo": {
-        "properties": {
-          "name": {
-            "type": "string"
-          },
-          "names": {
-            "items": {
-              "type": "string"
-            },
-            "minItems": 1,
-            "type": "array"
-          },
-          "nonRevoked": {
-            "$ref": "#/components/schemas/RevocationInterval"
-          },
-          "restrictions": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          }
-        },
-        "type": "object"
-      },
-      "ProofPredicateInfo": {
-        "properties": {
-          "name": {
-            "type": "string"
-          },
-          "predicateType": {
-            "enum": [
-              "<",
-              "<=",
-              ">",
-              ">="
-            ],
-            "type": "string"
-          },
-          "predicateValue": {
-            "type": "integer"
-          },
-          "nonRevoked": {
-            "$ref": "#/components/schemas/RevocationInterval"
-          },
-          "restrictions": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          }
-        },
-        "type": "object",
-        "required": [
-          "name",
-          "predicateType",
-          "predicateValue"
-        ]
-      },
-      "ProofRequest": {
-        "properties": {
-          "name": {
-            "type": "string"
-          },
-          "version": {
-            "type": "string"
-          },
-          "nonce": {
-            "type": "string"
-          },
-          "requestedAttributes": {
-            "items": {
-              "$ref": "#/components/schemas/Map"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Map"
-          },
-          "requestedPredicates": {
-            "items": {
-              "$ref": "#/components/schemas/Map"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Map"
-          },
-          "nonRevoked": {
-            "$ref": "#/components/schemas/RevocationInterval"
-          },
-          "ver": {
-            "type": "string",
-            "enum": [
-              "1.0",
-              "2.0"
-            ]
-          }
-        },
-        "type": "object",
-        "required": [
-          "name",
-          "version",
-          "requestedAttributes",
-          "requestedPredicates"
-        ]
-      },
-      "RequestedAttribute": {
-        "properties": {
-          "credentialId": {
-            "type": "string"
-          },
-          "timestamp": {
-            "type": "integer"
-          },
-          "revealed": {
-            "type": "boolean"
-          }
-        },
-        "type": "object",
-        "required": [
-          "credentialId",
-          "revealed"
-        ]
-      },
-      "RequestedPredicate": {
-        "properties": {
-          "credentialId": {
-            "type": "string"
-          },
-          "timestamp": {
-            "type": "integer"
-          }
-        },
-        "type": "object",
-        "required": [
-          "credentialId"
-        ]
-      },
-      "RequestedCredentials": {
-        "properties": {
-          "requestedAttributes": {
-            "items": {
-              "$ref": "#/components/schemas/Object"
-            },
-            "type": "array"
-          },
-          "requestedPredicates": {
-            "items": {
-              "$ref": "#/components/schemas/Object"
-            },
-            "type": "array"
-          }
-        },
-        "type": "object",
-        "required": [
-          "requestedAttributes",
-          "requestedPredicates"
-        ]
-      },
-      "RequestPresentationMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/present-proof/1.0/request-presentation"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "requestPresentationAttachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "requestPresentationAttachments",
-          "id"
-        ]
-      },
-      "PresentationMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/present-proof/1.0/presentation"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "presentationAttachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "presentationAttachments",
-          "id"
-        ]
-      },
-      "PresentationAckMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/present-proof/1.0/ack"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          },
-          "status": {
-            "enum": [
-              "OK",
-              "FAIL",
-              "PENDING"
-            ],
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "id",
-          "status"
-        ]
-      },
-      "PresentationProblemReportMessage": {
-        "properties": {
-          "type": {
-            "type": "string",
-            "enum": [
-              "https://didcomm.org/present-proof/1.0/problem-report"
-            ],
-            "pattern": "(.*?)([a-zA-Z0-9._-]+)\\/(\\d[^/]*)\\/([a-zA-Z0-9._-]+)$"
-          },
-          "id": {
-            "pattern": "[-_./a-zA-Z0-9]{8,64}",
-            "type": "string"
-          },
-          "thread": {
-            "$ref": "#/components/schemas/ThreadDecorator"
-          },
-          "l10n": {
-            "$ref": "#/components/schemas/L10nDecorator"
-          },
-          "transport": {
-            "$ref": "#/components/schemas/TransportDecorator"
-          },
-          "timing": {
-            "$ref": "#/components/schemas/TimingDecorator"
-          },
-          "pleaseAck": {
-            "$ref": "#/components/schemas/AckDecorator"
-          },
-          "attachments": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array",
-            "$ref": "#/components/schemas/Array"
-          },
-          "service": {
-            "$ref": "#/components/schemas/ServiceDecorator"
-          },
-          "problemItems": {},
-          "whoRetries": {
-            "enum": [
-              "YOU",
-              "ME",
-              "BOTH",
-              "NONE"
-            ],
-            "type": "string"
-          },
-          "fixHint": {},
-          "where": {
-            "enum": [
-              "CLOUD",
-              "EDGE",
-              "WIRE",
-              "AGENCY"
-            ],
-            "type": "string"
-          },
-          "impact": {
-            "enum": [
-              "MESSAGE",
-              "THREAD",
-              "CONNECTION"
-            ],
-            "type": "string"
-          },
-          "noticedTime": {
-            "type": "string"
-          },
-          "trackingUri": {
-            "type": "string"
-          },
-          "escalationUri": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "type",
-          "id"
-        ]
-      },
-      "BasicMessageRequest": {
-        "properties": {
-          "content": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "content"
-        ]
-      },
-      "InvitationConfigRequest": {
-        "properties": {
-          "autoAcceptConnection": {
-            "type": "boolean"
-          },
-          "alias": {
-            "type": "string"
-          },
-          "mediatorId": {
-            "type": "string"
-          },
-          "myLabel": {
-            "type": "string"
-          },
-          "myImageUrl": {
-            "type": "string"
-          }
-        },
-        "type": "object"
-      },
-      "ReceiveInvitationByUrlRequest": {
-        "properties": {
-          "invitationUrl": {
-            "type": "string"
-          },
-          "autoAcceptConnection": {
-            "type": "boolean"
-          },
-          "alias": {
-            "type": "string"
-          },
-          "mediatorId": {
-            "type": "string"
-          },
-          "myLabel": {
-            "type": "string"
-          },
-          "myImageUrl": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "invitationUrl"
-        ]
-      },
-      "InvitationRequest": {
-        "properties": {
-          "label": {
-            "type": "string"
-          },
-          "did": {
-            "type": "string"
-          },
-          "recipientKeys": {
-            "items": {},
-            "type": "array"
-          },
-          "serviceEndpoint": {
-            "type": "string"
-          },
-          "routingKeys": {
-            "items": {},
-            "type": "array"
-          }
-        },
-        "type": "object",
-        "required": [
-          "label"
-        ]
-      },
-      "ReceiveInvitationRequest": {
-        "properties": {
-          "invitation": {
-            "$ref": "#/components/schemas/InvitationRequest"
-          },
-          "autoAcceptConnection": {
-            "type": "boolean"
-          },
-          "alias": {
-            "type": "string"
-          },
-          "mediatorId": {
-            "type": "string"
-          },
-          "myLabel": {
-            "type": "string"
-          },
-          "myImageUrl": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "invitation"
-        ]
-      },
-      "AcceptCredentialProposalRequest": {
-        "properties": {
-          "comment": {
-            "type": "string"
-          },
-          "credentialDefinitionId": {
-            "type": "string"
-          },
-          "autoAcceptCredential": {
-            "enum": [
-              "always",
-              "contentApproved",
-              "never"
-            ],
-            "type": "string"
-          }
-        },
-        "type": "object"
-      },
-      "LinkedAttachment": {
-        "properties": {
-          "attributeName": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "attributeName"
-        ]
-      },
-      "CredentialOfferTemp": {
-        "properties": {
-          "credentialDefinitionId": {
-            "pattern": "^([a-zA-Z0-9]{21,22}):3:CL:(([1-9][0-9]*)|([a-zA-Z0-9]{21,22}:2:.+:[0-9.]+)):(.+)?$",
-            "type": "string"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "preview": {
-            "$ref": "#/components/schemas/CredentialPreview"
-          },
-          "autoAcceptCredential": {
-            "enum": [
-              "always",
-              "contentApproved",
-              "never"
-            ],
-            "type": "string"
-          },
-          "attachments": {
-            "$ref": "#/components/schemas/Array"
-          },
-          "linkedAttachments": {
-            "$ref": "#/components/schemas/Array"
-          }
-        },
-        "type": "object",
-        "required": [
-          "credentialDefinitionId",
-          "preview"
-        ]
-      },
-      "CredentialOfferRequest": {
-        "properties": {
-          "connectionId": {
-            "type": "string"
-          },
-          "credentialDefinitionId": {
-            "pattern": "^([a-zA-Z0-9]{21,22}):3:CL:(([1-9][0-9]*)|([a-zA-Z0-9]{21,22}:2:.+:[0-9.]+)):(.+)?$",
-            "type": "string"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "preview": {
-            "$ref": "#/components/schemas/CredentialPreview"
-          },
-          "autoAcceptCredential": {
-            "enum": [
-              "always",
-              "contentApproved",
-              "never"
-            ],
-            "type": "string"
-          },
-          "attachments": {
-            "$ref": "#/components/schemas/Array"
-          },
-          "linkedAttachments": {
-            "$ref": "#/components/schemas/Array"
-          }
-        },
-        "type": "object",
-        "required": [
-          "connectionId",
-          "credentialDefinitionId",
-          "preview"
-        ]
-      },
-      "CredentialProposalRequest": {
-        "properties": {
-          "connectionId": {
-            "type": "string"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "credentialProposal": {
-            "not": {
-              "type": "null"
-            },
-            "$ref": "#/components/schemas/CredentialPreview"
-          },
-          "schemaIssuerDid": {
-            "pattern": "^(did:sov:)?[a-zA-Z0-9]{21,22}$",
-            "type": "string"
-          },
-          "schemaId": {
-            "pattern": "^[a-zA-Z0-9]{21,22}:2:.+:[0-9.]+$",
-            "type": "string"
-          },
-          "schemaName": {
-            "type": "string"
-          },
-          "schemaVersion": {
-            "pattern": "^(\\d+\\.)?(\\d+\\.)?(\\*|\\d+)$",
-            "type": "string"
-          },
-          "credentialDefinitionId": {
-            "pattern": "^([a-zA-Z0-9]{21,22}):3:CL:(([1-9][0-9]*)|([a-zA-Z0-9]{21,22}:2:.+:[0-9.]+)):(.+)?$",
-            "type": "string"
-          },
-          "issuerDid": {
-            "pattern": "^(did:sov:)?[a-zA-Z0-9]{21,22}$",
-            "type": "string"
-          },
-          "attachments": {},
-          "linkedAttachments": {},
-          "autoAcceptCredential": {
-            "enum": [
-              "always",
-              "contentApproved",
-              "never"
-            ],
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "connectionId",
-          "credentialProposal"
-        ]
-      },
-      "CredentialDefinitionRequest": {
-        "properties": {
-          "tag": {
-            "type": "string"
-          },
-          "supportRevocation": {
-            "type": "boolean"
-          },
-          "schemaId": {
-            "pattern": "^[a-zA-Z0-9]{21,22}:2:.+:[0-9.]+$",
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "tag",
-          "supportRevocation",
-          "schemaId"
-        ]
-      },
-      "SchemaTemplate": {
-        "properties": {
-          "name": {
-            "type": "string"
-          },
-          "version": {
-            "pattern": "^(\\d+\\.)?(\\d+\\.)?(\\*|\\d+)$",
-            "type": "string"
-          },
-          "attributes": {
-            "items": {},
-            "type": "array"
-          }
-        },
-        "type": "object",
-        "required": [
-          "name",
-          "version",
-          "attributes"
-        ]
-      },
-      "AcceptProofProposalRequest": {
-        "properties": {
-          "request": {},
-          "comment": {
-            "type": "string"
-          }
-        },
-        "type": "object"
-      },
-      "PresentationProofRequest": {
-        "properties": {
-          "filterByPresentationPreview": {
-            "type": "boolean"
-          },
-          "comment": {
-            "type": "string"
-          }
-        },
-        "type": "object"
-      },
-      "ProofRequestTemplate": {
-        "properties": {
-          "proofRequest": {
-            "$ref": "#/components/schemas/ProofRequest"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "autoAcceptProof": {
-            "enum": [
-              "always",
-              "contentApproved",
-              "never"
-            ],
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "proofRequest"
-        ]
-      },
-      "ProofPresentationRequest": {
-        "properties": {
-          "connectionId": {
-            "type": "string"
-          },
-          "proofRequest": {
-            "$ref": "#/components/schemas/ProofRequest"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "autoAcceptProof": {
-            "enum": [
-              "always",
-              "contentApproved",
-              "never"
-            ],
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "connectionId",
-          "proofRequest"
-        ]
-      },
-      "ProofProposalRequest": {
-        "properties": {
-          "connectionId": {
-            "type": "string"
-          },
-          "attributes": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          },
-          "predicates": {
-            "items": {
-              "$ref": "#/components/schemas/Array"
-            },
-            "type": "array"
-          },
-          "autoAcceptProof": {
-            "enum": [
-              "always",
-              "contentApproved",
-              "never"
-            ],
-            "type": "string"
-          },
-          "comment": {
-            "type": "string"
-          }
-        },
-        "type": "object",
-        "required": [
-          "connectionId",
-          "attributes",
-          "predicates"
-        ]
-      }
-    }
-  },
-  "info": {
-    "title": "ssi-abstraction-agent",
-    "version": "0.8.0",
-    "description": "Rest endpoint wrapper for using your agent over HTTP"
-  },
-  "openapi": "3.0.0",
-  "paths": {
-    "/agent/": {
-      "get": {
-        "operationId": "AgentController.getAgentInfo",
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Get agent info",
-        "tags": [
-          "Agent"
-        ]
-      }
-    },
-    "/basic-messages/{connectionId}": {
-      "get": {
-        "operationId": "BasicMessageController.getBasicMessages",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "connectionId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Get basic messages",
-        "tags": [
-          "Basic Message"
-        ]
-      },
-      "post": {
-        "operationId": "BasicMessageController.sendMessage",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "connectionId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/BasicMessageRequest"
-              }
-            }
-          },
-          "description": "BasicMessageRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Send message",
-        "tags": [
-          "Basic Message"
-        ]
-      }
-    },
-    "/connections/{connectionId}": {
-      "get": {
-        "operationId": "ConnectionController.getConnectionById",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "connectionId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Get connection by id",
-        "tags": [
-          "Connection"
-        ]
-      },
-      "delete": {
-        "operationId": "ConnectionController.deleteConnection",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "connectionId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Delete connection",
-        "tags": [
-          "Connection"
-        ]
-      }
-    },
-    "/connections/": {
-      "get": {
-        "operationId": "ConnectionController.getAllConnections",
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Get all connections",
-        "tags": [
-          "Connection"
-        ]
-      }
-    },
-    "/connections/create-invitation": {
-      "post": {
-        "operationId": "ConnectionController.createInvitation",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/InvitationConfigRequest"
-              }
-            }
-          },
-          "description": "InvitationConfigRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Create invitation",
-        "tags": [
-          "Connection"
-        ]
-      }
-    },
-    "/connections/receive-invitation": {
-      "post": {
-        "operationId": "ConnectionController.receiveInvitation",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/ReceiveInvitationRequest"
-              }
-            }
-          },
-          "description": "ReceiveInvitationRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Receive invitation",
-        "tags": [
-          "Connection"
-        ]
-      }
-    },
-    "/connections/receive-invitation-url": {
-      "post": {
-        "operationId": "ConnectionController.receiveInvitationByUrl",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/ReceiveInvitationByUrlRequest"
-              }
-            }
-          },
-          "description": "ReceiveInvitationByUrlRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Receive invitation by url",
-        "tags": [
-          "Connection"
-        ]
-      }
-    },
-    "/connections/{connectionId}/accept-invitation": {
-      "post": {
-        "operationId": "ConnectionController.acceptInvitation",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "connectionId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Accept invitation",
-        "tags": [
-          "Connection"
-        ]
-      }
-    },
-    "/connections/{connectionId}/accept-request": {
-      "post": {
-        "operationId": "ConnectionController.acceptRequest",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "connectionId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Accept request",
-        "tags": [
-          "Connection"
-        ]
-      }
-    },
-    "/connections/{connectionId}/accept-response": {
-      "post": {
-        "operationId": "ConnectionController.acceptResponse",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "connectionId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Accept response",
-        "tags": [
-          "Connection"
-        ]
-      }
-    },
-    "/credentials/{credentialId}": {
-      "get": {
-        "operationId": "CredentialController.getCredentialById",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "credentialId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Get credential by id",
-        "tags": [
-          "Credential"
-        ]
-      },
-      "delete": {
-        "operationId": "CredentialController.deleteCredential",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "credentialId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Delete credential",
-        "tags": [
-          "Credential"
-        ]
-      }
-    },
-    "/credentials/": {
-      "get": {
-        "operationId": "CredentialController.getAllCredentials",
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Get all credentials",
-        "tags": [
-          "Credential"
-        ]
-      }
-    },
-    "/credentials/propose-credential": {
-      "post": {
-        "operationId": "CredentialController.proposeCredential",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/CredentialProposalRequest"
-              }
-            }
-          },
-          "description": "CredentialProposalRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Propose credential",
-        "tags": [
-          "Credential"
-        ]
-      }
-    },
-    "/credentials/{credentialId}/accept-proposal": {
-      "post": {
-        "operationId": "CredentialController.acceptProposal",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "credentialId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/AcceptCredentialProposalRequest"
-              }
-            }
-          },
-          "description": "AcceptCredentialProposalRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Accept proposal",
-        "tags": [
-          "Credential"
-        ]
-      }
-    },
-    "/credentials/offer-outofband-credential": {
-      "post": {
-        "operationId": "CredentialController.offerCredentialOutOfBand",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/CredentialOfferTemp"
-              }
-            }
-          },
-          "description": "CredentialOfferTemp",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Offer credential out of band",
-        "tags": [
-          "Credential"
-        ]
-      }
-    },
-    "/credentials/offer-credential": {
-      "post": {
-        "operationId": "CredentialController.offerCredential",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/CredentialOfferRequest"
-              }
-            }
-          },
-          "description": "CredentialOfferRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Offer credential",
-        "tags": [
-          "Credential"
-        ]
-      }
-    },
-    "/credentials/{credentialId}/accept-offer": {
-      "post": {
-        "operationId": "CredentialController.acceptOffer",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "credentialId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Accept offer",
-        "tags": [
-          "Credential"
-        ]
-      }
-    },
-    "/credentials/{credentialId}/accept-request": {
-      "post": {
-        "operationId": "CredentialController.acceptRequest",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "credentialId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Accept request",
-        "tags": [
-          "Credential"
-        ]
-      }
-    },
-    "/credentials/{credentialId}/accept-credential": {
-      "post": {
-        "operationId": "CredentialController.acceptCredential",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "credentialId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Accept credential",
-        "tags": [
-          "Credential"
-        ]
-      }
-    },
-    "/credential-definitions/{credentialDefinitionId}": {
-      "get": {
-        "operationId": "CredentialDefinitionController.getCredentialDefinitionById",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "credentialDefinitionId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Get credential definition by id",
-        "tags": [
-          "Credential Definition"
-        ]
-      }
-    },
-    "/credential-definitions/": {
-      "post": {
-        "operationId": "CredentialDefinitionController.createCredentialDefinition",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/CredentialDefinitionRequest"
-              }
-            }
-          },
-          "description": "CredentialDefinitionRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Create credential definition",
-        "tags": [
-          "Credential Definition"
-        ]
-      }
-    },
-    "/schemas/{schemaId}": {
-      "get": {
-        "operationId": "SchemaController.getSchemaById",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "schemaId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Get schema by id",
-        "tags": [
-          "Schema"
-        ]
-      }
-    },
-    "/schemas/": {
-      "post": {
-        "operationId": "SchemaController.createSchema",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/SchemaTemplate"
-              }
-            }
-          },
-          "description": "SchemaTemplate",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Create schema",
-        "tags": [
-          "Schema"
-        ]
-      }
-    },
-    "/proofs/{proofRecordId}": {
-      "get": {
-        "operationId": "ProofController.getProofById",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "proofRecordId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Get proof by id",
-        "tags": [
-          "Proof"
-        ]
-      },
-      "delete": {
-        "operationId": "ProofController.deleteProof",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "proofRecordId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Delete proof",
-        "tags": [
-          "Proof"
-        ]
-      }
-    },
-    "/proofs/": {
-      "get": {
-        "operationId": "ProofController.getAllProofs",
-        "parameters": [
-          {
-            "in": "query",
-            "name": "threadId",
-            "required": false,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Get all proofs",
-        "tags": [
-          "Proof"
-        ]
-      }
-    },
-    "/proofs/propose-proof": {
-      "post": {
-        "operationId": "ProofController.proposeProof",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/ProofProposalRequest"
-              }
-            }
-          },
-          "description": "ProofProposalRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Propose proof",
-        "tags": [
-          "Proof"
-        ]
-      }
-    },
-    "/proofs/{proofRecordId}/accept-proposal": {
-      "post": {
-        "operationId": "ProofController.acceptProposal",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "proofRecordId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/AcceptProofProposalRequest"
-              }
-            }
-          },
-          "description": "AcceptProofProposalRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Accept proposal",
-        "tags": [
-          "Proof"
-        ]
-      }
-    },
-    "/proofs/request-outofband-proof": {
-      "post": {
-        "operationId": "ProofController.requestProofOutOfBand",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/ProofRequestTemplate"
-              }
-            }
-          },
-          "description": "ProofRequestTemplate",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Request proof out of band",
-        "tags": [
-          "Proof"
-        ]
-      }
-    },
-    "/proofs/request-proof": {
-      "post": {
-        "operationId": "ProofController.requestProof",
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/ProofPresentationRequest"
-              }
-            }
-          },
-          "description": "ProofPresentationRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Request proof",
-        "tags": [
-          "Proof"
-        ]
-      }
-    },
-    "/proofs/{proofRecordId}/accept-request": {
-      "post": {
-        "operationId": "ProofController.acceptRequest",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "proofRecordId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "requestBody": {
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/PresentationProofRequest"
-              }
-            }
-          },
-          "description": "PresentationProofRequest",
-          "required": false
-        },
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Accept request",
-        "tags": [
-          "Proof"
-        ]
-      }
-    },
-    "/proofs/{proofRecordId}/accept-presentation": {
-      "post": {
-        "operationId": "ProofController.acceptPresentation",
-        "parameters": [
-          {
-            "in": "path",
-            "name": "proofRecordId",
-            "required": true,
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "content": {
-              "application/json": {}
-            },
-            "description": "Successful response"
-          }
-        },
-        "summary": "Accept presentation",
-        "tags": [
-          "Proof"
-        ]
-      }
-    }
-  }
-}
\ No newline at end of file
diff --git a/apps/ssi-abstraction/test/setEnvVars.js b/apps/ssi-abstraction/test/setEnvVars.js
index 62f9981d5da3c53245a69ab0decc1a0f78e9a7ab..8c0f63d52e54df1fb93a8863b247b37ef8794aef 100644
--- a/apps/ssi-abstraction/test/setEnvVars.js
+++ b/apps/ssi-abstraction/test/setEnvVars.js
@@ -1,6 +1,7 @@
 process.env.PORT = 3009;
 process.env.AFJ_EXT_PORT = 3010;
-process.env.DATABASE_URL = 'postgresql://postgres:postgres@localhost:5432/postgres?schema=agent';
+process.env.DATABASE_URL =
+  'postgresql://postgres:postgres@localhost:5432/postgres?schema=agent';
 process.env.NATS_URL = 'nats://localhost:4222';
 process.env.ECSURL = 'http://localhost:9200/';
 process.env.AGENT_HOST = 'http://localhost';
@@ -12,4 +13,4 @@ process.env.AGENT_AUTO_ACCEPT_CONNECTION = true;
 process.env.AGENT_AUTO_ACCEPT_CREDENTIAL = true;
 process.env.AGENT_WALLET_KEY = 'ssi-wallet-key';
 process.env.AGENT_WALLET_ID = 'ssi-wallet-id';
-process.env.AGENT_LEDGER_ID = 'ID_UNION';
\ No newline at end of file
+process.env.AGENT_LEDGER_ID = 'ID_UNION';
diff --git a/apps/ssi-abstraction/tsconfig.build.json b/apps/ssi-abstraction/tsconfig.build.json
index 62ab6b8061cdf4c5ab0bde5967ae2853ee4dbfd2..64f86c6bd2bb30e3d22e752295eb7c7923fc191e 100644
--- a/apps/ssi-abstraction/tsconfig.build.json
+++ b/apps/ssi-abstraction/tsconfig.build.json
@@ -1,4 +1,4 @@
 {
   "extends": "./tsconfig.json",
-  "exclude": ["node_modules", "test", "dist", "**/*spec.ts", "agent-spinup"]
+  "exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
 }
diff --git a/package.json b/package.json
index dedb9f0b9ca7008cf193d44e1bfc1f559003524a..ae7358eb77dd68016955e921e6edd54423694a1c 100644
--- a/package.json
+++ b/package.json
@@ -9,6 +9,8 @@
     "principal:build": "pnpm -F principal-manager build",
     "proof:build": "pnpm -F proof-manager build",
     "ssi:build": "pnpm -F ssi-abstraction build",
-    "lint": "pnpm -r lint"
+    "lint": "pnpm -r lint",
+    "prettier": "prettier --ignore-path .gitignore '**/*.+(js|json|ts|md|yml|yaml)'",
+    "format": "pnpm prettier --write"
   }
 }
diff --git a/tsconfig.json b/tsconfig.json
index 7ab2dfa3544d7c3ff06a13e51b8871ab5f87a9d4..27bad309a489c0f990bec0634145b0398bf3c673 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -6,7 +6,6 @@
     "module": "nodenext",
     "target": "esnext",
     "moduleResolution": "nodenext",
-
     "strict": true,
     "esModuleInterop": true,
     "allowSyntheticDefaultImports": true,