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.
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.