w3c-ccg / universal-wallet-interop-spec

A data model and abstract interfaces for digital wallets
http://w3id.org/wallet
Other
56 stars 13 forks source link

Wallet interfaces and data model entities to describe requesting/receiving VCs or VPs #59

Open kimdhamilton opened 3 years ago

kimdhamilton commented 3 years ago

This one will be challenging to capture in a general way, but I'll try. Suppose I want to add function(s) representing VC/VP-related actions, such as:

There are a variety of draft specs, each with a handful of details (transport, etc) that ideally we'd abstract over.

I believe (please correct me) that Aries tends to handle such use cases by defining message types and then having a fairly generic send(message).

A very rough starting point might be (assuming we initially scope to VC/VP-related scenarios)

send_request(Message, Connection) => Promise(VP | VC)

Where Message could have different Types to express Presentation Exchange stuff, CHAPI stuff, etc.

Throw stones please.

OR13 commented 3 years ago

Related: https://github.com/w3c-ccg/vc-http-api/pull/168

Also Presentation Exchange, CHAPI, etc...

OR13 commented 3 years ago

I think generally this issue is about the "Credential Exchange" protocols... which tend to be fairly complicated, and vary widely... they can cover everything from:

  1. Identification
  2. Discovery
  3. Authentication
  4. Feature / Offer Advertisement
  5. Interactive Negotiation / Transports
  6. Query / Request / Response
  7. VC Data Models (VPs)
OR13 commented 3 years ago

I would expect wallets to handle multiple protocols, and data models.

The purpose of the spec is not define protocols, but to describe data model that might be used by protocols.

And allow for protocols to be described in flows / abstract interfaces.

mavarley commented 3 years ago

I believe (please correct me) that Aries tends to handle such use cases by defining message types and then having a fairly generic send(message)

@kimdhamilton yes, Aries has the concept of message "attachments" which are supposed to act as layered functionality. There are many "RFCs" that Aries defines for the different attachments, and not all are compatible.

OR13 commented 3 years ago

related: https://github.com/decentralized-identity/waci-presentation-exchange

I also added the protocol section which covers some of this:

https://w3c-ccg.github.io/universal-wallet-interop-spec/#protocol