You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: sdk/credo/README.md
+35-9
Original file line number
Diff line number
Diff line change
@@ -1,18 +1,44 @@
1
1
---
2
-
description: >-
3
-
Credo, formerly Hyperledger Aries Framework JavaScript (AFJ), with cheqd
4
-
support
2
+
description: Credo with cheqd support
5
3
---
6
4
7
5
# 🍏 Credo
8
6
9
-
[Credo](https://credo.js.org/) is a framework written in TypeScript for building **SSI Agents and services** that aims to be **compliant and interoperable**with the standards defined in the European Architecture and Reference Framework.
7
+
### Get Started with Credo
10
8
11
-
The Aries Framework JavaScript project has recently been rebranded to "Credo" and was moved from the Hyperledger Foundation to the [Open Wallet Foundation](https://openwallet.foundation/). 
9
+
**Credo** is a TypeScript-based framework for building Self-Sovereign Identity (SSI) agents and services. It is designed for **modularity**, **interoperability**, and **compliance** with the European Architecture and Reference Framework (ARF).
12
10
13
-
In the recent months, Credo has heavily been expanding into a more modular and "less specific" framework. The integration with cheqd is a prime example of this, being the first true showcase of anchoring AnonCreds on non-Indy ledgers. Supporting more credential formats, ledgers and DID methods is crucial and essential to the continual development of Credo. cheqd is now fully supported in Credo and can be used for the issuance of Verifiable Credentials as well as the creation of Credential Schemas and Credential Definitions.
11
+
Previously known as _Aries Framework JavaScript_, Credo has recently been **rebranded**and transitioned from the **Hyperledger Foundation**to the **Open Wallet Foundation**, reflecting its broader mission and growing community.
14
12
15
-
AnonCreds using cheqd are facilitated using the [cheqd AnonCreds Object Method](../../advanced/anoncreds/).
13
+
Credo has evolved into a more flexible and general-purpose SSI framework. A major milestone in this evolution is the full **integration with**[**cheqd**](https://cheqd.io) — making Credo the first framework to support **AnonCreds on non-Indy ledgers**.
14
+
15
+
This integration showcases Credo’s expanding support for:
16
+
17
+
* Multiple **credential formats**
18
+
* Diverse **DID methods**
19
+
* Interoperable **ledger technologies**
20
+
21
+
Using Credo, developers can now issue **Verifiable Credentials**, create **Credential Schemas**, and define **Credential Definitions** using **cheqd-native AnonCreds**, enabled by the **cheqd AnonCreds Object Method**.
22
+
23
+
### 🌟 Why Credo?
24
+
25
+
* ✅ **TypeScript-native** — strongly typed, developer-friendly, and production-ready
26
+
* ✅ **Modular and extensible** — use only what you need, plug in new components
27
+
* ✅ **Cross-ledger compatibility** — supports Indy, cheqd, and beyond
* ✅ **Aligned with EU standards** — interoperable with EBSI & ARF
30
+
* ✅ **Backed by the Open Wallet Foundation** — with growing community adoption
31
+
32
+
### Breaking New Ground: Credo + cheqd
33
+
34
+
Credo is now the **first framework to support AnonCreds on non-Indy ledgers**, thanks to a deep integration with [**cheqd**](https://cheqd.io). ACA-Py has since followed suit.
35
+
36
+
This includes:
37
+
38
+
* Issuance of Verifiable Credentials on cheqd
39
+
* Creation of Credential Schemas and Credential Definitions
40
+
* Support for the **cheqd AnonCreds Object Method**
41
+
* Native DID and resource support for `did:cheqd`
16
42
17
43
## Architecture
18
44
@@ -26,9 +52,9 @@ AnonCreds using cheqd are facilitated using the [cheqd AnonCreds Object Method](
26
52
27
53
## Supported Credential types
28
54
29
-
Aries Framework JavaScript supports the following Credential formats:
55
+
Credo supports the following Credential formats:
30
56
31
-
<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><mark style="color:blue;"><strong>SD-JWT</strong></mark></td><td>Selective Disclosure JWT (SD-JWT) is the most <strong>commonly adopted credential format for European Digital Identity Ecosystems</strong>, allowing users to selectively disclose which attributes they would like to share in a presentation.</td><td><a href="https://docs.cheqd.io/product/learning-docs/decentralised-identity/credentials/types/sd-jwt">https://docs.cheqd.io/product/learning-docs/decentralised-identity/credentials/types/sd-jwt</a></td></tr><tr><td><mark style="color:blue;"><strong>AnonCreds</strong></mark></td><td><strong>AnonCreds</strong> is a Zero-Knowledge Credential format, offering full Holder privacy and selective disclosure.</td><td><a href="https://hyperledger.github.io/anoncreds-spec/">https://hyperledger.github.io/anoncreds-spec/</a></td></tr><tr><td><mark style="color:blue;"><strong>JSON-LD</strong></mark></td><td><strong>JSON-LD (Linked Data)</strong> Credentials are a richer data format, allowing applications to follow embedded links to other pieces of Linked Data across the web.</td><td><a href="https://learn.cheqd.io/decentralised-identity/credentials/types/json-ld">https://learn.cheqd.io/decentralised-identity/credentials/types/json-ld</a></td></tr></tbody></table>
57
+
<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><mark style="color:blue;"><strong>AnonCreds</strong></mark></td><td><strong>AnonCreds</strong> is a Zero-Knowledge Credential format, offering full Holder privacy and selective disclosure.</td><td><a href="https://hyperledger.github.io/anoncreds-spec/">https://hyperledger.github.io/anoncreds-spec/</a></td></tr><tr><td><mark style="color:blue;"><strong>SD-JWT</strong></mark></td><td>Selective Disclosure JWT (SD-JWT) is the most <strong>commonly adopted credential format for European Digital Identity Ecosystems</strong>, allowing users to selectively disclose which attributes they would like to share in a presentation.</td><td><a href="https://docs.cheqd.io/product/learning-docs/decentralised-identity/credentials/types/sd-jwt">https://docs.cheqd.io/product/learning-docs/decentralised-identity/credentials/types/sd-jwt</a></td></tr><tr><td><mark style="color:blue;"><strong>JSON-LD</strong></mark></td><td><strong>JSON-LD (Linked Data)</strong> Credentials are a richer data format, allowing applications to follow embedded links to other pieces of Linked Data across the web.</td><td><a href="https://learn.cheqd.io/decentralised-identity/credentials/types/json-ld">https://learn.cheqd.io/decentralised-identity/credentials/types/json-ld</a></td></tr></tbody></table>
Copy file name to clipboardExpand all lines: sdk/credo/decentralized-identifiers-dids/create-a-did.md
+49-21
Original file line number
Diff line number
Diff line change
@@ -4,11 +4,27 @@ description: Create a DID using the did:cheqd method from Credo Agent
4
4
5
5
# Create a DID
6
6
7
-
Follow these instructions to create a new DID from Credo Agent and publish the associated DID Document on cheqd ledger.
7
+
This tutorial shows you how to create a **cheqd DID** using your configured **Credo Agent**, and how to publish the associated **DID Document** to the **cheqd ledger**.
8
8
9
-
> ⚠️ **Before you begin...**
10
-
>
11
-
> Make sure you've correctly configured [the Credo agent with cheqd](../setup-credo-agent.md).
9
+
## ⚠️ Prerequisites
10
+
11
+
Before you begin:
12
+
13
+
* ✅ Ensure your **Credo agent** is correctly configured with the `@credo-ts/cheqd` module
14
+
* ✅ You’ve set up a `cosmosPayerSeed` for publishing to the cheqd network
15
+
* ✅ You're connected to the correct network (`mainnet` or `testnet`)
16
+
17
+
## Method Overview
18
+
19
+
Credo supports two approaches to creating a DID:
20
+
21
+
#### Option 1 – Manually construct a full DID Document
22
+
23
+
Use when you want full control over the DID structure and already have key(s) in your wallet.
24
+
25
+
#### Option 2 – Auto-generate the DID Document
26
+
27
+
Use when you want Credo to create the DID Document from a key you specify in `secret`.
12
28
13
29
## Create DID
14
30
@@ -19,25 +35,29 @@ Follow these instructions to create a new DID from Credo Agent and publish the a
Provide a DID Document payload according to the w3c did core specification in the request body. This is possible when the keys corresponding to the verification methods provided in the DID Document are already created in the wallet
38
+
### Option 1: Create a DID from a full DID Document
25
39
26
-
```typescript
40
+
1. First, generate a key pair:
27
41
28
-
// create a key pair
42
+
```ts
29
43
const key =awaitagent.wallet.createKey({
30
44
keyType: KeyType.Ed25519,
31
45
})
32
46
33
-
// encode public key according to the verification method
34
47
const ed25519PublicKeyBase58 =key.publicKeyBase58
48
+
```
49
+
50
+
2. Use that key to construct and register the DID Document:
51
+
52
+
```ts
53
+
import { DidDocument } from'@credo-ts/core'
35
54
36
-
// Create a DID
37
55
awaitagent.dids.create<CheqdDidCreateOptions>({
38
56
method: 'cheqd',
39
-
secret: {},
40
-
options: {},
57
+
secret: {}, // No secret needed if key is already in wallet
If a DID Document is not passed to the registrar, it requires the secret parameter with a verificationMethod to construct the DID Document.
84
+
If you don’t want to manually build a DID Document, you can let Credo handle it based on your input key type and ID.
60
85
61
-
```typescript
86
+
```ts
62
87
awaitagent.dids.create({
63
88
method: 'cheqd',
64
-
// the secret contains a the verification method type and id
65
89
secret: {
66
90
verificationMethod: {
67
-
id: 'key-1',
68
-
type: 'Ed25519VerificationKey2020',
91
+
id: 'key-1',// Logical key name
92
+
type: 'Ed25519VerificationKey2020',// Or another supported type
69
93
},
70
94
},
71
-
// an optional methodSpecificIdAlgo parameter
72
95
options: {
73
96
network: 'testnet',
74
-
methodSpecificIdAlgo: 'uuid',
97
+
methodSpecificIdAlgo: 'uuid',// Optional: 'uuid' (default) or 'base58'
75
98
},
76
99
})
77
100
```
78
101
102
+
> 🔐 Credo will generate the DID Document using the key referenced in `secret` and publish it to the network.
103
+
104
+
## What’s Next?
79
105
106
+
Now that your DID is live on the cheqd network, try:
80
107
108
+
<tabledata-card-size="large"data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><markstyle="color:blue;"><strong>Create DID-Linked Resource</strong></mark></td><td>Associate DID-Linked Resources to your DID.</td></tr><tr><td><markstyle="color:blue;"><strong>Issue Verifiable Credentials</strong></mark></td><td>Issue Credentials using your cheqd DID.</td></tr></tbody></table>
Copy file name to clipboardExpand all lines: sdk/credo/decentralized-identifiers-dids/deactivate-a-did.md
+31-9
Original file line number
Diff line number
Diff line change
@@ -4,23 +4,45 @@ description: Deactivate a did:cheqd from Credo Agent
4
4
5
5
# Deactivate a DID
6
6
7
-
Follow these instructions to deactivate a did:cheqd DID from Credo Agent
7
+
This guide explains how to **deactivate a `did:cheqd`** using a configured Credo Agent. Deactivating a DID marks it as no longer usable but does **not** remove it from the ledger — the DID can still be resolved and its deactivated state will be reflected in its metadata.
8
8
9
-
## Deactivate DID
9
+
## Prerequisites
10
10
11
-
A DID can be deactivated, it can still be resolved
Copy file name to clipboardExpand all lines: sdk/credo/decentralized-identifiers-dids/update-a-did.md
+41-15
Original file line number
Diff line number
Diff line change
@@ -4,32 +4,44 @@ description: Update a did:cheqd DID from Credo Agent
4
4
5
5
# Update a DID
6
6
7
-
Follow these instructions to update a did:cheqd DID from Credo Agent.
7
+
This guide walks you through how to **update an existing cheqd DID** using your configured **Credo Agent**. Updating a DID Document lets you add or modify keys, service endpoints, or other metadata associated with the DID.
8
8
9
-
## Update DID
9
+
## Prerequisites
10
10
11
-
To update a DID Document, fetch the body of the DID Document you want to change from the DID Resolver, make the relevant updates and pass it as the parameter
0 commit comments