Skip to main content

Overview

The Cloud Wallet API provides a holder-side interface for managing decentralized identity wallets. Using this API, a user can:
  • Create a personal cloud wallet tied to their account.
  • Configure the underlying agent’s base wallet.
  • Establish DIDComm connections with issuers and verifiers.
  • Receive and accept verifiable credential offers.
  • Respond to proof presentation requests.
  • Create and manage DIDs within the wallet.
  • Send and receive basic messages over established connections.
All endpoints require a JWT bearer token. The userId and email are resolved from the authenticated token — they do not need to be included in the request body.

Holder Journey

1

Configure base wallet (first-time setup)

Call POST /configure/base-wallet with the agent endpoint and credentials to bind the underlying agent wallet to the user’s account.
2

Create a cloud wallet

Call POST /create-wallet with a wallet label to provision a new tenant wallet for the user.
3

Receive a connection invitation

When an issuer or verifier shares an invitation URL, call POST /receive-invitation-url with the invitationUrl to establish a DIDComm connection.
4

Accept a credential offer

Once a connection exists, an issuer can offer a credential. Call POST /accept-offer with the credentialRecordId and desired autoAcceptCredential behavior to accept it.
5

Respond to a proof request

When a verifier requests a proof, call POST /proofs/accept-request with the proofRecordId to present the matching credential.

Endpoints

Configure Base Wallet

Configures the base agent wallet for the authenticated user. This is a one-time setup step required before creating a cloud wallet.
string
required
The wallet encryption key used by the agent.
string
required
API key for authenticating with the agent endpoint.
string
required
The agent’s base URL. Must be a valid protocol://host:port or domain (e.g., http://0.0.0.0:4001).
number
201 on success.
string
Human-readable result message.
object
Configuration result from the agent.

Create Cloud Wallet

Provisions a new cloud wallet for the authenticated user.
string
required
Display label for the wallet (e.g., "Credential Wallet"). Must not be empty.
string
Optional URL for the wallet’s profile image (e.g., "https://picsum.photos/200").
number
201 on success.
string
Human-readable result message.
object
The created wallet object, including the tenant ID.

Create Connection Invitation

Creates a DIDComm out-of-band connection invitation that can be shared with another party.
string
Optional human-readable label for the connection.
string
Optional alias for identifying this connection locally.
string
Optional image URL associated with this connection.
boolean
When true, the invitation URL can be used by multiple parties.
boolean
When true, the connection is accepted automatically without manual approval.
string
Optional goal code describing the intent of the connection.
string
Optional free-text goal description.
boolean
Whether to include a handshake in the invitation.
string[]
Array of handshake protocol URLs (e.g., ["https://didcomm.org/didexchange/1.x"]).
string
Optional DID to use in the invitation.
string
Optional recipient verification key.

Get All Connections

Returns all DIDComm connections for the authenticated user’s wallet, with optional filters.
string
Filter by the out-of-band invitation ID (e.g., e315f30d-9beb-4068-aea4-abb5fe5eecb1).
string
Filter connections by alias (e.g., Test).
string
Filter by the local DID used in the connection.
string
Filter by the remote party’s DID.
string
Filter by the remote party’s label (e.g., Bob).

Get Connection by ID

Retrieves details for a specific connection.
string
required
The connection record ID.

Receive Invitation by URL

Accepts an out-of-band invitation URL to establish a new DIDComm connection.
string
required
The full invitation URL received from the inviting party.
string
Optional alias to assign to this connection.
string
Optional label to assign to this connection.
string
Optional image URL to associate with this connection.
boolean
When true, automatically accepts the connection without a separate confirmation step.
boolean
When true, automatically accepts the invitation.
boolean
When true, reuses an existing connection if one already exists with the inviting party.
integer
Timeout in milliseconds to wait for the invitation to be accepted.
string
Optional local DID to use when establishing the connection.

Get Credential List

Returns all credentials in the wallet, with optional filters.
string
Filter credentials by DIDComm thread ID.
string
Filter credentials by the connection they were issued over.
string
Filter by credential exchange state (e.g., offer-received, credential-issued, done).

Get Credential by Record ID

Retrieves a specific credential record.
string
required
The credential exchange record ID.

Accept Credential Offer

Accepts a pending credential offer in the wallet.
string
required
The ID of the credential exchange record to accept.
string
required
Controls acceptance behavior. Enum: always, contentApproved, never.
object
required
Credential format configuration object passed to the agent. Shape depends on the credential format (e.g., AnonCreds, JSON-LD).
string
Optional comment to include with the acceptance.

Get Proof Presentations

Returns all proof presentations for the wallet, with an optional thread filter.
string
Optional DIDComm thread ID to filter proof presentations.

Get Proof by ID

Retrieves a specific proof presentation record.
string
required
The proof exchange record ID.

Accept Proof Request

Submits a proof presentation in response to a verifier’s proof request.
string (UUID)
required
The UUID of the proof exchange record to respond to.
boolean
When true, filters the credentials presented to match the presentation preview. Default: false.
boolean
When true, filters credentials by non-revocation requirements. Default: false.
string
Optional comment to include with the proof presentation.

Create DID

Creates a new Decentralized Identifier (DID) in the cloud wallet.
string
required
The cryptographic key type for the DID (e.g., ed25519).
string
required
The DID method (e.g., indy, key, web).
string
Optional 32-character seed for deterministic DID generation. Spaces are not allowed.
string
Optional network identifier (e.g., bcovrin:testnet). Required for ledger-based DID methods.
string
Optional domain for did:web (e.g., www.github.com).
string
Optional endorser role on the ledger (e.g., endorser).
string
Optional private key in hex format (e.g., 651727dab6dfdbb4f18afff5f368d13b0dca41fd26bd5e1c7953457524d645e6).
string
Optional DID endpoint URL.
string
Optional existing DID identifier to import (e.g., XzFjo1RTZ2h9UVFCnPUyaQ).
string
Optional endorser DID for ledger registration (e.g., did:indy:bcovrin:testnet:UEeW111G1tYo1nEkPwMcF).

Get DID List

Returns all DIDs registered in the authenticated user’s cloud wallet.

Send Basic Message

Sends a plaintext basic message to a connected party over an established DIDComm connection.
string
required
The ID of the connection to send the message over.
string
required
The text content of the message.

Get Basic Messages by Connection ID

Retrieves all basic messages exchanged on a specific connection.
string
required
The ID of the connection whose messages to retrieve.

Error Responses