# Standards and Protocols

## Secure Channel

<table><thead><tr><th width="156"></th><th>Description</th></tr></thead><tbody><tr><td><strong>DIDComm V1</strong></td><td>DIDComm V1 over HTTP/s is used by the Edge Agent to transmit and receive E2EE messages (credential exchanges, proof presentations, chat messages, etc).</td></tr></tbody></table>

## Credential & Presentation Formats

<table><thead><tr><th width="176"></th><th>Description</th></tr></thead><tbody><tr><td><strong>Anoncreds V1</strong></td><td><a href="https://hyperledger.github.io/anoncreds-spec/">Hyperledger Anoncreds V1</a> credentials and presentation can be used by the Edge Agent. Allowing the full zero-knowledge proof capabilities of Anoncreds to be taken advantage of by applications.</td></tr><tr><td><strong>W3C VCs/VPs</strong></td><td><a href="https://www.w3.org/TR/vc-data-model/">W3C Verifiable Credentials and Verifiable Presentations</a> (VCDM 1.1 &#x26; 2.0) are supported by the Edge Agent. Including Linked Data Proofs (LDP) signatures and SD-JWT signatures (vc+sd-jwt).</td></tr><tr><td><strong>SD-JWT VC</strong></td><td><a href="https://datatracker.ietf.org/doc/draft-ietf-oauth-sd-jwt-vc/">IETF SD-JWT VCs</a> are supported by the Edge Agent.</td></tr></tbody></table>

## Credential & Proof Exchange

<table data-full-width="true"><thead><tr><th width="116.33333333333331"></th><th>Description</th><th>VC/VP Formats</th><th>Other</th></tr></thead><tbody><tr><td><strong>AIP1</strong></td><td>Hyperledger Aries protocols from the AIP1 suite can be used to receive credentials and present proofs. This includes the protocols <a href="https://github.com/hyperledger/aries-rfcs/blob/main/features/0036-issue-credential/README.md">issue-credential-v1</a> and <a href="https://github.com/hyperledger/aries-rfcs/tree/main/features/0037-present-proof">present-proof-v1</a> respectively.</td><td><ul class="contains-task-list"><li><input type="checkbox" checked><a href="https://github.com/hyperledger/aries-rfcs/tree/main/features/0592-indy-attachments">Indy</a></li></ul></td><td></td></tr><tr><td><strong>AIP2</strong></td><td>Hyperledger Aries protocols from the AIP2 suite can also be used to receive credentials and present proofs. This includes the protocols <a href="https://github.com/hyperledger/aries-rfcs/tree/main/features/0453-issue-credential-v2">issue-credential-v2</a> and <a href="https://github.com/hyperledger/aries-rfcs/tree/main/features/0454-present-proof-v2">present-proof-v2</a> respectively.</td><td><ul class="contains-task-list"><li><input type="checkbox" checked><a href="https://github.com/hyperledger/aries-rfcs/tree/main/features/0592-indy-attachments">Indy</a></li><li><input type="checkbox" checked><a href="https://github.com/hyperledger/aries-rfcs/tree/main/features/0771-anoncreds-attachments">Anoncreds</a></li><li><input type="checkbox" checked><a href="https://github.com/hyperledger/aries-rfcs/tree/main/features/0593-json-ld-cred-attach">Aries LD Proof (W3C)</a></li><li><input type="checkbox" checked><a href="https://github.com/hyperledger/aries-rfcs/tree/main/features/0510-dif-pres-exch-attach">DIF Presentation Exchange (W3C)</a></li></ul></td><td></td></tr><tr><td><strong>OID4VCI</strong></td><td><a href="https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html">OpenID4VCI 1.0</a> protocol can be used to receive credentials from OpenID4VC issuers.</td><td><ul class="contains-task-list"><li><input type="checkbox" checked><a href="https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html#name-ietf-sd-jwt-vc">dc+sd-jwt (IETF SD-JWT VC)</a></li><li><input type="checkbox" checked><a href="https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html#name-vc-secured-using-data-integ">ldp_vc (W3C VCDM 1.1/2.0)</a></li><li><input type="checkbox" checked><a href="https://www.w3.org/TR/vc-jose-cose/#with-sd-jwt">vc+sd-jwt (W3C VCDM 2.0)</a></li></ul></td><td><ul class="contains-task-list"><li><input type="checkbox" checked>JWK binding</li><li><input type="checkbox" checked>Pre-authorization flow</li><li><input type="checkbox">🚧 authorization flow</li></ul></td></tr><tr><td><strong>OID4VP</strong></td><td><a href="https://openid.net/specs/openid-4-verifiable-presentations-1_0.html">OpenID4VP 1.0</a> protocol can be used to present credentials to OpenID4VP verifiers. </td><td><p></p><ul class="contains-task-list"><li><input type="checkbox" checked><a href="https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html#name-ietf-sd-jwt-vc">dc+sd-jwt (IETF SD-JWT VC)</a></li><li><input type="checkbox" checked><a href="https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html#name-vc-secured-using-data-integ">ldp_vc (W3C VCDM 1.1/2.0)</a></li><li><input type="checkbox" checked><a href="https://www.w3.org/TR/vc-jose-cose/#with-sd-jwt">vc+sd-jwt (W3C VCDM 2.0)</a></li></ul></td><td><ul class="contains-task-list"><li><input type="checkbox" checked>DID-based verifiers</li><li><input type="checkbox" checked>direct_post flow</li><li><input type="checkbox">🚧 fragment/ redirect flow</li></ul></td></tr></tbody></table>

{% hint style="info" %}
[vc+sd-jwt](https://www.w3.org/TR/vc-jose-cose/#with-sd-jwt) (SD-JWT signed W3C VCDM 2.0) over OID4VCI/OID4VP is not a registered format yet. In the absence of a registered specification, we target interop with key libraries such as **credo-ts**.
{% endhint %}

## Supported DID Methods

<table data-full-width="true"><thead><tr><th width="128"></th><th width="566">Description</th><th width="96" data-type="checkbox">Resolve</th><th data-type="checkbox">Create</th></tr></thead><tbody><tr><td><a href="https://w3c-ccg.github.io/did-method-key/"><strong>did:key</strong></a></td><td>DID Keys can be used by the Edge Agent. They are particularly useful for creating a holder binding with some entity (e.g. W3C VC)</td><td>true</td><td>true</td></tr><tr><td><a href="https://github.com/quartzjer/did-jwk/blob/main/spec.md"><strong>did:jwk</strong></a></td><td>DID JWKs can be used by the Edge Agent. Like did:key, they are ideal for holder bindings, and have seen adoption in the OpenID4VC ecosystem.</td><td>true</td><td>true</td></tr><tr><td><a href="https://identity.foundation/peer-did-method-spec/index.html"><strong>did:peer</strong></a></td><td>did:peer V4 is used by the Edge Agent in the process of establishing peer to peer connections.</td><td>true</td><td>true</td></tr><tr><td><a href="https://docs.cheqd.io/product/architecture/adr-list/adr-001-cheqd-did-method"><strong>did:cheqd</strong></a></td><td>DID Cheqd is supported by the Edge Agent for DID and Anoncreds resolution. This method is a highly attractive public DID type, as it bridges modern DID features with an open decentralized ledger.</td><td>true</td><td>false</td></tr><tr><td><a href="https://w3c-ccg.github.io/did-method-web/"><strong>did:web</strong></a></td><td>Resolution of DID Web is supported by the Edge Agent. This method is one of the simplest public DID methods, but has gained adoption for it's simplicity in many OpenID4VC implementations.</td><td>true</td><td>false</td></tr><tr><td><a href="https://sovrin-foundation.github.io/sovrin/spec/did-method-spec-template.html"><strong>did:sov</strong></a></td><td>Sovrin DIDs and Anoncreds can be resolved by the Edge Agent against the configured sovrin network (any indy network). Supporting the public DID type preferred by many Aries Issuers.</td><td>true</td><td>false</td></tr><tr><td><a href="https://identity.foundation/didwebvh/next/"><strong>did:webvh</strong></a></td><td>🚧 <em>Coming soon..</em></td><td>false</td><td>false</td></tr><tr><td><a href="https://hyperledger.github.io/indy-did-method/"><strong>did:indy</strong></a></td><td>🚧 <em>Coming soon.. (replacing vague did:sov usage)</em></td><td>false</td><td>false</td></tr></tbody></table>

## Other Protocols

Some other major protocols supported by Edge Agent include (but not limited to):

<table><thead><tr><th width="180"></th><th>Description</th></tr></thead><tbody><tr><td><strong>AIP2 Connection Protocols</strong></td><td>Out of Band protocol (<a href="https://github.com/hyperledger/aries-rfcs/tree/main/features/0434-outofband">RFC 0434</a>) &#x26; DIDExchange protocol (<a href="https://github.com/hyperledger/aries-rfcs/tree/main/features/0023-did-exchange">RFC 0023</a>) is supported by the Edge Agent as a means for bootstrapping DIDComm connections.</td></tr><tr><td><strong>AIP1 Connection Protocol</strong></td><td>The AIP1 connection protocol (<a href="https://github.com/hyperledger/aries-rfcs/tree/main/features/0160-connection-protocol">RFC 0160</a>) is supported by the Edge Agent as a means for bootstrapping DIDComm connections.</td></tr><tr><td><strong>Aries Basic Messages</strong></td><td>The AIP2 protocol for exchanging text messages along a DIDComm connection (<a href="https://github.com/hyperledger/aries-rfcs/tree/c3b0e2120ad24810598375663b6922b980f85d00/features/0095-basic-message">RFC 0095</a>) is supported by the Edge Agent (see <a href="/pages/eXN4pAzhxLEOZ9z8iIed">Messaging</a>).</td></tr><tr><td><strong>Aries BBS+ Derived W3C VCs</strong></td><td>As an extension to supporting W3C credentials, the Edge Agent can receive and derive selectively disclosed variants of BBS+ signed credentials (as described in <a href="https://github.com/hyperledger/aries-rfcs/tree/main/features/0646-bbs-credentials">RFC 0646</a>). This means the agent can selectively disclose a subset of their BBS+ W3C credential attributes when performing a presentation.</td></tr><tr><td><strong>OpenID SIOPv2</strong></td><td>🚧 <em>Coming soon..</em></td></tr></tbody></table>

## Data Encryption

{% hint style="success" %}
All Agent wallet data (Connections, Credentials, Keys, Exchange states, Messages, etc) is encrypted at rest, using a combination of [Aries Askar](https://github.com/hyperledger/aries-askar) and SQLite encryption.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sudoplatform.com/guides/decentralized-identity/decentralized-identity/edge-agent-sdk/standards-and-protocols.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
