https://i.ibb.co/tBnfz6N/Screen-Shot-2019-05-21-at-2-07-33-PM.pngmoved to github.com/hyperledger/aries-rfcs repo

New location: aries-rfcs/concepts/0021-didcomm-message-anatomys

0017: Agent Message Structure

Status

  • Status: SUPERSEDED
  • Status Date: (date of first submission or last status change)
  • Status Note: (explanation of current status; if adopted, links to impls or derivative ideas; if superseded, link to replacement)

Summary

This HIPE describes Agent Messages, the messages exchanged between agents via “wire” messages.

Motivation

Establishing an agent message structure for interoperability.

Tutorial

Agent Messages

Agent messages are the messages sent between agents through wire messages.

Structure

The following json-like object is a representation of the proposed agent message structure before being packaged and sent over the transport layer or after it is received through the transport layer and unpackaged. However, using json for messages is not necessarily part of this proposal.

{
  "@type": "message_type",
  <other attributes as specified by type>
}
  • The @type attribute is the only attribute required and is a type string as outlined by 0021: Message Types. The value of type string must be a recognized type as defined by future HIPEs for message families. Additionally, the type attribute must always be visible after unpacking the message from the transport layer.
  • All other attributes used in messaging are dictated by the message type following the guidelines given in 0021: Message Types

Reference

Drawbacks

Up to this point, no drawbacks for this agent message structure have been identified.

Rationale and alternatives

At this point, just having a message structure outlined will continue to facilitate development of agents. By introducing this structure, necessary modifications will hopefully come to light as agent development continues.

Prior art

  • The structure formerly proposed included an id and generic content attributes in addition to the type attribute described as required here.