Skip to content

(WIP) wallet messaging protocol #3

Description

@leifj

I've been working on a proposal for a messaging layer for the wallet: https://github.com/leifj/wmp

wmp was designed to meet a range of issues that SIROS has come across developing our wallet, for instance

  • sometimes you need to delegate the issuing or presentation flows to a backend, for instance when the client is on a network that is unreliable or with restricted policy (only able to talk to your backend). Major platform wallets do this already. SIROS does this via a proprietary protocol today.
  • wallets will need to talk to each other sometimes - eg for backup, key migration etc
  • sometimes flows are split across several devices - eg for some common agentic patters (eg an MCP server orchestrating a presentation with the client watching)

And then of course there is the EU business wallet. In the QERDS group we are looking at AS4 as one possible transport for wallet-to-wallet messaging but the challengines involved n migrating the xml ecosystem to post-quantum cryptography has led us to also look at alternatives.

I am designing wmp to be one such possibility.

wmp is designed do many things:

  • orchestrate issuing and presentation flows between backend and frontend
  • provide an end2end encrypted channel betwen N peers (wallets) using MLS
  • be roughly compatible with MCP
  • be easy to implement

We are still experimenting with wmp and the implementations on sirosfoundation github are neither stable nor complete. For now focus on the specifications and the ideas. Happy to get feedback here or in the wmp repo.

wmp was influenced by didcomm but is both more complex and signifficantly simpler. It is more complex because it adds multi-point communications as a native capability which didcomm lacks (agents!) but in some ways (imo) it is a simpler and more straight-forward design.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions