# Aries Interop Profile 3 Proposed This is just a sketch to use in proposing what AIP 3.0 might look like. Note that the presence of DIDComm v2 as a referenced spec consolidates concepts that were present in a variety of Aries RFCs. The list is shorter, but no concepts have been dropped. #### Base Requirements RFC Type | RFC/Link to RFC Version | Note --- | --- | --- Spec | [DIDComm v2](https://identity.foundation/didcomm-messaging/spec/v2.0/) | includes: [trust-ping/2.0](https://identity.foundation/didcomm-messaging/spec/#trust-ping-protocol-20), [out-of-band/2.0](https://identity.foundation/didcomm-messaging/spec/#out-of-band-messages), [discover-features/2.0](https://github.com/hyperledger/aries-rfcs/blob/main/features/0557-discover-features-v2/README.md), and [routing/2.0](https://identity.foundation/didcomm-messaging/spec/#routing-protocol-20) protocols. <br/>[See Envelope/Routing profiles](https://identity.foundation/didcomm-messaging/spec/#negotiating-compatibility), <br/>[Also see DIDComm.org protocols list](https://didcomm.org/search/?page=1). <br/>DIDComm v2 supersedes:<br/>* [0005-didcomm](https://github.com/hyperledger/aries-rfcs/tree/1b4b014246d19c865c9b5520b97fe0376a86d8c4/concepts/0005-didcomm), see [DIDComm v2](https://identity.foundation/didcomm-messaging/spec/v2.0/)<br/>* [0008-message-id-and-threading](https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/concepts/0008-message-id-and-threading), see [Message Ids and Threading](https://identity.foundation/didcomm-messaging/spec/#message-ids)<br/>* [0035-report-problem](https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0035-report-problem), see [Problem Report](https://identity.foundation/didcomm-messaging/spec/#problem-reports)<br/>* [0048-trust-ping](https://github.com/hyperledger/aries-rfcs/tree/4e78319e5f79df2003ddf37f8f497d0fae20cc63/features/0048-trust-ping), see [Ping](https://identity.foundation/didcomm-messaging/spec/#ping)<br/>* [0557-discover-features-v2](https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0557-discover-features-v2), see [Discover Features](https://identity.foundation/didcomm-messaging/spec/#discover-features-protocol-20) Feature | [0183-revocation-notification](https://github.com/hyperledger/aries-rfcs/tree/4e78319e5f79df2003ddf37f8f497d0fae20cc63/features/0183-revocation-notification) | Feature Update | [WACI PEx issue-credential 3.0](https://didcomm.org/issue-credential/3.0/) | Updates [0453-issue-credential-v2](https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0453-issue-credential-v2) Feature Update | [WACI PEx present-proof 3.0](https://didcomm.org/present-proof/3.0/) | Updates [0454-present-proof-v2](https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0454-present-proof-v2) Feature | [0627-static-peer-dids](https://github.com/hyperledger/aries-rfcs/tree/4739fbf6de07a54c3fee072bd85741422730b3cd/features/0627-static-peer-dids) | :new:did:peer method 2 RFC ? ##### Base DID method support See [discord thread](https://discord.com/channels/905194001349627914/1078014171536445562) legacypeer doc example (ACA-Py compatible): ```json { "@context": "https://w3id.org/did/v1", "id": "McJHdsnWRHovRXoUZL2FMW", # first 16 bytes of verkey, base58 encoded "publicKey": [ { "id": "McJHdsnWRHovRXoUZL2FMW#keys-1", "type": "Ed25519VerificationKey2018", "controller": "McJHdsnWRHovRXoUZL2FMW", "publicKeyBase58": "CEUjD2ecZi87wtfgaWVv1vQqcH2TRE3K2ZdCFBcghJPQ", } ], "service": [ { "id": "McJHdsnWRHovRXoUZL2FMW;indy", "type": "IndyAgent", "recipientKeys": ["CEUjD2ecZi87wtfgaWVv1vQqcH2TRE3K2ZdCFBcghJPQ"], "serviceEndpoint": "https://example.com", } ], } ``` AFJ didpeer2 example: ```json { "id": "did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SW3sidCI6ImRtIiwicyI6Imh0dHBzOi8vZXhhbXBsZS5jb20vZW5kcG9pbnQiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5Il19LHsidCI6ImV4YW1wbGUiLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDIiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MiJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfV0", "authentication": [ { "id": "did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SW3sidCI6ImRtIiwicyI6Imh0dHBzOi8vZXhhbXBsZS5jb20vZW5kcG9pbnQiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5Il19LHsidCI6ImV4YW1wbGUiLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDIiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MiJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfV0#6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V", "type": "Ed25519VerificationKey2018", "controller": "did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SW3sidCI6ImRtIiwicyI6Imh0dHBzOi8vZXhhbXBsZS5jb20vZW5kcG9pbnQiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5Il19LHsidCI6ImV4YW1wbGUiLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDIiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MiJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfV0", "publicKeyBase58": "ByHnpUCFb1vAfh9CFZ8ZkmUZguURW8nSw889hy6rD8L7" } ], "keyAgreement": [ { "id": "did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SW3sidCI6ImRtIiwicyI6Imh0dHBzOi8vZXhhbXBsZS5jb20vZW5kcG9pbnQiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5Il19LHsidCI6ImV4YW1wbGUiLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDIiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MiJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfV0#6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud", "type": "X25519KeyAgreementKey2019", "controller": "did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SW3sidCI6ImRtIiwicyI6Imh0dHBzOi8vZXhhbXBsZS5jb20vZW5kcG9pbnQiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5Il19LHsidCI6ImV4YW1wbGUiLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDIiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MiJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfV0", "publicKeyBase58": "DmgBSHMqaZiYqwNMEJJuxWzsGGC8jUYADrfSdBrC6L8s" } ], "service": [ { "id": "did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SW3sidCI6ImRtIiwicyI6Imh0dHBzOi8vZXhhbXBsZS5jb20vZW5kcG9pbnQiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5Il19LHsidCI6ImV4YW1wbGUiLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDIiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MiJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfV0#didcommmessaging-0", "type": "DIDCommMessaging", "serviceEndpoint": "https://example.com/endpoint", "routingKeys": ["did:example:somemediator#somekey"] }, { "id": "did:peer:2.Ez6LSpSrLxbAhg2SHwKk7kwpsH7DM7QjFS5iK6qP87eViohud.Vz6MkqRYqQiSgvZQdnBytw86Qbs2ZWUkGv22od935YF4s8M7V.SW3sidCI6ImRtIiwicyI6Imh0dHBzOi8vZXhhbXBsZS5jb20vZW5kcG9pbnQiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5Il19LHsidCI6ImV4YW1wbGUiLCJzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9lbmRwb2ludDIiLCJyIjpbImRpZDpleGFtcGxlOnNvbWVtZWRpYXRvciNzb21la2V5MiJdLCJhIjpbImRpZGNvbW0vdjIiLCJkaWRjb21tL2FpcDI7ZW52PXJmYzU4NyJdfV0#example-1", "type": "example", "serviceEndpoint": "https://example.com/endpoint2", "routingKeys": ["did:example:somemediator#somekey2"], "accept": ["didcomm/v2", "didcomm/aip2;env=rfc587"] } ] } ``` DID Method | size initial/ongoing | key rotation | ease of transform | libs | future path | multi-key --- | --- | --- | --- | ---| --- | --- did:legacypeer | small*/small | no | both | none needed | Nope | No did:peer:1 | large/small | yes | both (serialization needs definition) | Example Impl | shaky | Yes did:peer:2 | large/large | no | both? | python/js veramo? | likely | Yes did:keri (lite=self-addresing) | large/44 bytes | No | both | KeriPy. Others in development | likely | Yes Ease of Transform: Can be transformed by owner, both > All targets need to be updated to new protocol versions. Some may be defined, some may need definition. #### MEDIATE: Mediator Coordination RFC Type | RFC/Link to RFC Version | Note --- | --- | --- Feature Update | [coordinate-mediation/2.0](https://didcomm.org/mediator-coordination/2.0/) | Updates [0211-route-coordination](https://github.com/hyperledger/aries-rfcs/tree/55e1e1c6e339ef0843268b4f3349b95cb7bd49a5/features/0211-route-coordination) Feature Update | [DIDComm v2 Return-Route extension](https://github.com/decentralized-identity/didcomm-messaging/blob/main/extensions/return_route/main.md) | Updates [0092-transport-return-route](https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0092-transport-return-route) Feature | [messagepickup/3.0](https://didcomm.org/pickup/3.0/) | :new: #### INDYCRED: Indy Based Credentials RFC Type | RFC/Link to RFC Version | Note --- | --- | --- Feature | [0592-indy-attachments](https://github.com/hyperledger/aries-rfcs/tree/26344513082af4d76c77b8b4f5064e72d0a83b58/features/0592-indy-attachments) | Concept | [0441-present-proof-best-practices](https://github.com/hyperledger/aries-rfcs/tree/4e78319e5f79df2003ddf37f8f497d0fae20cc63/concepts/0441-present-proof-best-practices) | #### LDCRED: JSON-LD Based Credentials RFC Type | RFC/Link to RFC Version | Note --- | --- | --- Feature | [0593-json-ld-cred-attach](https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0593-json-ld-cred-attach) | Feature | [0510-dif-pres-exch-attach](https://github.com/hyperledger/aries-rfcs/tree/7a44f650d3cebf5b3047c1680618978393a497d5/features/0510-dif-pres-exch-attach) | #### BBSCRED: BBS+ Based Credentials RFC Type | RFC/Link to RFC Version | Note --- | --- | --- Feature | [0593-json-ld-cred-attach](https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0593-json-ld-cred-attach) | Feature | [0646-bbs-credentials](https://github.com/hyperledger/aries-rfcs/blob/7a44f650d3cebf5b3047c1680618978393a497d5/features/0646-bbs-credentials/README.md) | Feature | [0510-dif-pres-exch-attach](https://github.com/hyperledger/aries-rfcs/tree/7a44f650d3cebf5b3047c1680618978393a497d5/features/0510-dif-pres-exch-attach) | #### CHAT: Chat related features RFC Type | RFC/Link to RFC Version | Note --- | --- | --- Feature | [basicmessage 2.0](https://didcomm.org/basicmessage/2.0/) | Updates [0095-basic-message](https://github.com/hyperledger/aries-rfcs/tree/b3a3942ef052039e73cd23d847f42947f8287da2/features/0095-basic-message)