# April 2023 IIW - DIDComm v2 Interop DIDComm v2 connect-a-thon at the April 2023 IIW Conference! We will build on the work done at the November 2022 IIW where JFF participants exchanged creds over DIDComm v2 (simplified WACI-DIDComm) and where RootsID showed DIDComm v2 mobile chat and where Veramo/RootsID/others did a DIDComm v2 interop-a-thon. ## IIW Demo Connect-a-thon * Tuesday April 18 lunch time pre-connect-a-thon-connect-a-thon * Wednesday lunch prep time * Wednesday April 19 from 1:30 – 2:30 (after lunch) pacific time * Table: #11 * [Demo tables list]( https://iiw.idcommons.net/IIW_36_Speed_Demo_Hour) (IIW updated the description to be the connect-a-thon) * Posters for each team? Use whiteboard? Have each team's laptop have a summary of our agent capabilities * Visual aid that lists features * Diagram the relationships, similar to [CNCF](https://landscape.cncf.io/) * Answer how this fits in the Aries, DIF, and OIDC * Highlight the different agents and their interoperability * Table of protocols * How does this relate to [Continous authentication](https://spiffe.io/docs/latest/spire-about/spire-concepts/) * SPIFFE and SPIRE help enable zero trust by delivering continuously attested service identity across cloud, container, and on-premise enterprise IT infrastructure. In this video Evan Gilman, co-author O'Reilly's * Post IIW highlight video ## Participants * [RootsID](https://rootsid.com/) (Rodolfo Miranda, Alex Andrei, Lance Byrd) - CONFIRMED/Attending * RootsWallet Lab (iOS and Android) * RootsWallet Veramo (iOS and Android) * RootsWallet Prism swift SDK (iOS) * Mediator * [BlockTrust](https://blocktrust.dev/) (Bjorn Sandmann) - CONFIRMED/Attending * .NET and SICPA JVM port and BouncyCastle * [Mediator](https://mediator.blocktrust.dev/) * Agent * [Veramo](https://veramo.io/) (Nick Reynolds, Alex Andrei) - CONFIRMED/Attending * [Atala Prism](https://atalaprism.io/) (Tony Rose) - CONFIRMED/Attending * [Nessus](https://github.com/tdiesler/nessus-didcomm) (Thomas Diesler) - CONFIRMED/Recording * [AviaryTech](https://aviary.tech/) (Brian Richter) * [PicoLabs](http://picolabs.io/) (Bruce Conrad, Phil Windley, BYU students) ## Debrief ### Photos ![](https://i.imgur.com/BdIoRSC.jpg) ![](https://i.imgur.com/VdnuMyb.jpg) ![](https://i.imgur.com/elkS3HQ.jpg) ![](https://i.imgur.com/87SZ3lK.jpg) ![](https://i.imgur.com/c02PSRA.jpg) ## Follow-on goals * Lightweight DIDComm v2 test-harness * Should this be a live service.... or able to be run locally? Eventually both, but a live service like our mediators is probably the most effective. * AIP 3.0 RFCs * Might include did:peer numalgo3 * Feedback from all participants ## Required * Live @IIW [Out-of-band](https://didcomm.org/out-of-band/2.0/) * Live @IIW [Basic messaging](https://didcomm.org/basicmessage/2.0/) * Live @IIW [Routing](https://didcomm.org/routing/2.0/) * Post-recorded video showing interop: we will collect all video submissions into a united presentation that DIF, RootsID, and anyone else can promote. ## Optional * Live @IIW [Mediation Coordinator](https://didcomm.org/mediator-coordination/2.0/) * Live @IIW [Trust ping](https://didcomm.org/trust-ping/2.0/) * Live @IIW [Discover Features](https://didcomm.org/discover-features/2.0/) * Live @IIW [Pickup](https://didcomm.org/pickup/3.0/) ## Provided Services * [RootsID Mediator](https://mediator.rootsid.cloud/) * [Mediator/Cloud agent protocols and instructions](https://github.com/roots-id/didcomm-mediator) * [Jupyter Notebook](https://github.com/roots-id/didcomm-mediator/tree/main/sample-notebooks) * [BlockTrust Mediator](https://mediator.blocktrust.dev/) * [Veramo Mediator](test-didcomm-mediator.herokuapp.com) - Will be live soon * [Nessus Playground](http://nessus-tech.io:9100/playground) * [DID Peer](http://nessus-tech.io:9100/playground?method=peer) standard service endpoint ## Story/Use Case? * [Air travel](https://www.w3.org/TR/vc-use-cases/#international-travel-with-minor-and-upgrade) * [Nessus Script](https://github.com/tdiesler/nessus-didcomm/tree/main/cli/etc/script) * [Open Policy Agent](https://www.openpolicyagent.org/docs/latest/#overview) ## Minimum Interop Profile * did:peer:2 (numAlgo 2) * test your agent/service against of the mediators listed in Provided Services (basic message or trust ping) ## Documenting/Recording our interactions * Video interactions * What messages did you send? * What errors were received? ## Prep for live demo * RootsWallet/Prism(Swift SDK/App) * RootsWallet/Blocktrust * When? * Blocktrust(web app)/Prism(Swift SDK/app,cloud agent) * RootsWallet/Veramo * RootsWallet using Veramo Framework * Veramo Mediator * Veramo web app * PicoLabs(cloud agent)/Mediators(cloud agent) * Nessus(cloud agent)/RootsWallet(mobile) * AviaryTech/RootsWallet? ## Updates * Nessus - Present Proof v3 complete * Fixed a macbook issue (multi-arc image) * Simplified the body of code by removing the additional Aca-Py integration * did:key and did:peer:2 implementations are available (did:peer:2 is standard) * Scripts to run the whole scenario (nessus to nessus) * Can you encode the invitation as a QR code to make mobile interactions easier? Yes. * No support for mediated peer dids * Mobile devices don't have an endpoint for peer-to-peer comms, they require mediation. Instead, the did document contains the mediation did so that you can wrap the message, this is part of the forward implementation. * did:peer encodes the resolution in the identifier * Will try to implement this forwarding scheme for wrapping all messages so that the mediator can forward them to the non-addressable peer * [Nessus travel w/ minor script](https://github.com/tdiesler/nessus-didcomm/blob/main/cli/etc/script/travel-with-minor-client.txt) * Expected interaction: * OOB * [Trust-ping](https://didcomm.org/trust-ping/2.0/) to establish 'connection' * Return route set to all? Not mandatory. * RootsID * Inter-team testing happening this week * Using [Basic Message v2](https://didcomm.org/basicmessage/2.0/) * BlockTrust * Mobile mediation needs to be tested ## Considerations for November 2023 IIW * Advanced topic: OIDC4VC and [DIDComm v2 present proof](https://didcomm.org/present-proof/3.0/)? * Consider Group Chat in Fall IIW 2023? ## Issues found during preparation * RootsWallet-Lab (iOS and Android) <-> BlockTrust Web Agent * Fix short_url for infinity expiration case in RootsID mediator * Fix pickup for specific DID in RootsID mediator * Fix forward message parsing when the sender's Peer DID has no `serviceEndpoint` in BlockTrust mediator * Make `serviceEndpoint` compliant with DIDComm Spec (`serviceEndpoint: [{uri: ....}]`) * RootsWallet <-> Veramo * Support ECDH-ES+A256KW for autheticated encryption [PR implemented](https://github.com/decentralized-identity/did-jwt/pull/279) * ## Interoperability matrix | |RW Android|RW iOS|RW Prism iOS|RW Veramo|BT Web Agent|Nessus Agent|Prism Swift SDK|Prism Agent|Roots Mediator|BlockT Mediator|Veramo Mediator| | --------------- | -------- | ---- | ---------- | ------- | ---------- | ---------- | ------------- | --------- | --------- | --------- | --------- | | RW Android | TP-BM |TP-BM | BM | | BM | TP | | | | | | | RW iOS | TP-BM |TP-BM | BM | | BM | TP | | | | | | | RW Prism iOS | BM | BM | | | BM | | | | | | | | RW Veramo | | | | | | | | | | | | | BT web agent | BM | BM | BM | | TP-BM | TP-BM | | | | | | | Nessus agent | TP |TP | | | TP-BM | TP-BM | | | | | | | Prism Swift SDK | | | | | | | | | | | | | Prism Agent | | | | | | | | | | | | | Python Notebook | TP-BM |TP-BM | | | TP-BM | TP | | | MC-MP-F | MC-MP-F | | | Roots Mediator | MC-MP-F | MC-MP-F|MC-MP-F | |MC-MP-F | F | MC-MP-F | F | MC-MP-F | MC-MP-F | | | BlockT Mediator | MC-MP-F |MC-MP-F| | |MC-MP-F | F | | F | MC-MP-F | MC-MP-F | | | Veramo Mediator | | | | | | | | | | | | References: * TP: Trust Ping * BM: Basic Message * IC: Issue Credential * MC: Mediator Coordination * MP: Message Pickup * F: Forward # How DIDComm fits in the SSI Ecosystem * [DIDComm, CHAPI, OIDC, DWN comparison](https://daniel-hardman.medium.com/sentries-confessionals-vaults-and-envelopes-4a58cf4f8a5a)