# 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)