This message is an explicit acknowledgment for a message referenced by ~thread.thid (this
message must have a thread decorator with a thread ID). AckMessage is adopted by other
protocols, so the implementations must specify the correct type so that the correct message
processor receives the message.
This is a handle for everything related to an agent instance.
Agent endpoint information.
Describes a manager for agents.
An abstract model for all messages between agents. Note: all fields are marked as transient,
because a custom adapter is used for converting these fields to JSON. If an implementation
(re)declares any of these fields, it should also mark them as transient.
The agent message provider
Agent configuration properties used to represent agent
Object represents ownership information of agent
Aries framework exceptions
Attachment descriptors can be used to exchange arbitrary data with DIDComm messages. Note that
an attachment decorator uses the "~attach" key and its value is a list of descriptors. But
protocols can also use descriptors as values for other keys, e.g. "presentations~attach".
Represents the actual data of the attachment.
Attribute value object
Each proof request can hold one or multiple AvailableAttributeGroup models
Each proof request can hold one or multiple AvailablePredicateGroup models
Hold all available attributes, predicates for requested proof request
Utils object for easier build onf AvailableProofCredentials model
Represents a result from exporting the backup. You must save this information;
Backup service for local backup and restore.
We must use this adapter for correct JSON serialization and deserialization. This is because
the Base64NormalString is a wrapper around a String, so we would get an object in JSON
after serializing.
The base64 normal provider
See Base64String. This subclass uses "normal" base64 encoding and decoding. The resulting
encoded string is not split into chunks, as is the case when using Base64.DEFAULT mode.
Note: the constructor expects an already encoded string. You can use companion object
functions to get an encoded string or byte array.
This class represents a base64 string. It uses an Android implementation of base64
encoding and decoding, because the one from Java is available only for API >= 26.
We must use this adapter for correct JSON serialization and deserialization. This is because
the Base64UrlString is a wrapper around a String, so we would get an object in JSON
after serializing.
The base64 url provider
See Base64String. This subclass uses URL safe base64 encoding and decoding.
Note: the constructor expects an already encoded string. You can use companion object
functions to get an encoded string or byte array.
Base record
An agent message for the basic message protocol.
See MessageHandler.
A record that represents state of the basic message protocol (see service for details).
Tags are set for direction and connectionContext (connection ID) for filtering.
A service for working with basic messages according to the
Aries RFC 0095.
Connection data of the user requesting connection
Represents context for creating and sending a (response) message. One of the fields should not
be null.
Connection invitation message
See MessageHandler.
Represents a problem report message used to communicate problems during the request and
response phase. There are no errors during the invitation phase.
Represents a connection record in the agency wallet.
The connection record provider
The connection request message is used to communicate the DID document
of the invitee to the inviter using the provisional connection information
present in the connection_invitation message.
The connection response message is used to complete the connection
Connection service manages connection records, create and accept invitations
Represents a credential stored in the wallet.
AckMessage implementation for credential protocol.
Represents a credential info stored in the wallet.
Credential issue message
This handler is used for processing AgentMessage which are related to issue credential.
Credential mime types
Credential offer message
This is not a message! It is an inner object for other messages in issue credential protocol.
It is used to construct a preview of the data for the credential to be issued.
Represents credential preview attribute
Credential record
The credential record provider
Credential request message
Credential service manages credentials and protocol state according to the issue credential
protocol as defined in Aries RFC 0036.
DateTimeFormatUtils
This class contains set of predefined decorator names
THREADING - the thread decorator key name
Community tries to standardize deeplinks formatting data to support interoperability between different agents
More info: https://github.com/hyperledger/aries-rfcs/tree/8033be264c2cfa7e7a2a79758a5c49268a92e72f/concepts/0268-unified-didcomm-agent-deeplinking
An implementation of Agent using EnvelopeService to unpack incoming packed messages for
processing and a list of MessageHandler that handle the unpacked messages. In addition,
ConnectionService is used to connect a given unpacked agent message to a specific connection.
Already unpacked messages are checked for a service decorator and are sent to the handlers
for processing.
An implementation of AgentManager that creates instances of DefaultAgent.
See BackupService. Uses indy-sdk to export/import the wallet.
See BasicMessageService.
See ConnectionService.
Default implementation of CredentialService.
Used to define agent mediator configuration that contains needed configuration
data to connect a mediator to agent.
See ProvisioningManager. This manager uses only AgentOptions to provision an agent.
Default implementation of ProvisioningService
Default tail service
DID document
DID document authentication
DID document key
Represents options for generating a Did/VerKey pair.
Utilities for handling DIDs.
Communication between different agents is encrypted
Envelope Service is responsible to correctly encrypt and decrypt messages
Possible error codes that framework returns
RECORD_NOT_FOUND - The record not found
RECORD_IN_INVALID_STATE - The record in invalid state
A2A_MESSAGE_INVALID - The message is in invalid state
A2A_MESSAGE_TRANSMISSION_ERROR - Agent to Agent message transmission error
A2A_MESSAGE_INVALID_JSON - Agent to Agent message JSON parsing error
A2A_MESSAGE_MISSING_DECORATOR - The required decorator is missing
A2A_MESSAGE_UNKNOWN - The message is unknown to the agent
INVALID_SIGNATURE - The signature from a signature decorator is invalid
DID_DOC_MISSING_KEY - The VerKey is missing from the DIDDoc
DID_DOC_MISSING_SERVICE_ENDPOINT - The service endpoint is missing from the DIDDoc
CREDENTIAL_ATTACHMENT_NOT_FOUND - The credential attachment with id libindy-cred-0 not found
ATTACHMENT_DATA_NOT_FOUND - The attachment data is missing
JSON_PARSE_ERROR - The json string could not be parsed
TRUST_PING_MUST_NOT_RESPOND - Must not respond to the received trust ping
PRESENT_PROOF_INVALID_PRESENTATION - The presentation for a proof is invalid
PRESENT_PROOF_REQUEST_NO_ATTACHMENT - The request does not have an attachment.
PRESENT_PROOF_REQUEST_NO_ATTACHMENT_DATA - The request attachment does not have data.
PRESENT_PROOF_REQUESTED_CREDENTIAL_NOT_FOUND - The requested credential didn't find by
the credential id
REVOCATION_REGISTRY_UNAVAILABLE - The revocation registry folder or file unavailable
Forward message is used when sending message across multiple agents that do not need to know the details of a domain
Get record options
Indy agent DID document service
Implements the ledger service using the indy-sdk.
The json adapter provider
Json manager
Represents schema stored in cache or ledger
A service for communicating with the ledger.
Manages mediator state for a given agent.
Holds data specific to using a mediator.
Used to define agent mediator configuration that contains needed configuration
data to connect a mediator to agent.
Message dispatcher
Represents an exception that occurred during message handling.
Represents a result of message handling.
Represents a result of message processing.
Message type instructs the receiving agent how to interpret
the content and what content to expect as part of a given message
Message type instructs the receiving agent how to interpret
the content and what content to expect as part of a given message
Moshi JSON manager
A pair of an agent message, that the agent wants to send, and the corresponding connection
record. Based on the connection record data, the agent message should be appropriately
encrypted and forwarded/routed.
Represents an outbound agent message with additional context. An outbound message must be
associated with some "connection context" to know which keys to use for encryption and
where to send the packed message.
A package with all the info that is needed to send a message.
A manager for opening and closing pools. Supports opening the same pool "more than once"; this
is done by keeping track of already opened pools. Note that pool config (genesis) must already
be saved to a file when using this provider.
Represents options for opening a pool.
AckMessage implementation for present proof protocol.
This is not a message! It is an inner object for other messages in present proof protocol.
It is used to construct a preview of the data for the presentation.
Represents a specification for an attribute. This specification proposes its attribute's
characteristics for creation within a presentation.
Represents a predicate specification for an attribute. Each specification proposes its
predicate's characteristics for creation within a presentation.
This is an optional message sent by the prover to the verifier:
This is a message from a verifier to a prover. It describes values that need to be revealed
and predicates that need to be fulfilled.
This is a response to a presentation request
This handler is used for processing AgentMessage which are related to present proof protocol.
The present proof record provider
Proof attribute info
Proof predicate info
Represents a wallet record for the present proof protocol.
The proof request
Manages provisioning for a given agent.
Represents a "base" provisioning record of an agent with the basic configuration properties
that are needed for Aries agent operations and actions.
Used to define agent and access the provisioning configuration that contains endpoint data,
ownership info, service endpoints, etc.
Query builder
Query combiantor
Query combinator builder
Query combinators
Requested attribute
Requested credentials
Represents information for restoring a backup.
Proof revocation interval
RX wrappers for Pool from indy-sdk.
Search record item
Search record options
Search result
This decorator describes a DID service endpoint inline to a message. This allows for
connectionless protocol messages (e.g. a proof request that is not bound to a connection).
Signature decorator contains data of standard signature scheme(ed25519Sha512_single)
This is an utility for:
Subquery builder This interface is used for better interop between Java and Kotlin at QueryCombinatorBuilder#subquery
Tag constants
The tail service interface
Thread decorator is generally required on any type of response
This decorator signifies that the receiver of the message should return the response
in the same flow (e.g. in the same HTTP POST call). Using Websockets allows us to send and
receive multiple messages in the same flow.
The trust ping message is used as the first message in the trust ping protocol.
Represents a wallet record for the trust ping protocol.
The trust ping record provider
The trust ping response message is used as the second message in the trust ping protocol.
Note: don't forget to add a ThreadDecorator before sending the response.
Decrypted message that was received from cloud agent.
Represents an unpacked agent message with additional context. Message can be associated with
some form of "connection context" - who the message is from and/or how do we send a message
back to them. In some cases, no context is needed (e.g. connection invitation).
Decrypted message that was received from cloud agent. This is a model between the received
packed message in form of a string, and the UnpackedMessage, which holds an AgentMessage.
The agent message is represented as a string in this model.
A manager for VersionRecord.
Wallet configuration
Wallet credentials
The class WalletManager
Options for opening/creating a wallet.
Wallet storage configuration
Wallet storage manager