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
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.Create a cloud wallet
Call
POST /create-wallet with a wallet label to provision a new tenant wallet for the user.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.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.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.The wallet encryption key used by the agent.
API key for authenticating with the agent endpoint.
The agent’s base URL. Must be a valid
protocol://host:port or domain (e.g., http://0.0.0.0:4001).201 on success.Human-readable result message.
Configuration result from the agent.
Create Cloud Wallet
Provisions a new cloud wallet for the authenticated user.Display label for the wallet (e.g.,
"Credential Wallet"). Must not be empty.Optional URL for the wallet’s profile image (e.g.,
"https://picsum.photos/200").201 on success.Human-readable result message.
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.Optional human-readable label for the connection.
Optional alias for identifying this connection locally.
Optional image URL associated with this connection.
When
true, the invitation URL can be used by multiple parties.When
true, the connection is accepted automatically without manual approval.Optional goal code describing the intent of the connection.
Optional free-text goal description.
Whether to include a handshake in the invitation.
Array of handshake protocol URLs (e.g.,
["https://didcomm.org/didexchange/1.x"]).Optional DID to use in the invitation.
Optional recipient verification key.
Get All Connections
Returns all DIDComm connections for the authenticated user’s wallet, with optional filters.Filter by the out-of-band invitation ID (e.g.,
e315f30d-9beb-4068-aea4-abb5fe5eecb1).Filter connections by alias (e.g.,
Test).Filter by the local DID used in the connection.
Filter by the remote party’s DID.
Filter by the remote party’s label (e.g.,
Bob).Get Connection by ID
Retrieves details for a specific connection.The connection record ID.
Receive Invitation by URL
Accepts an out-of-band invitation URL to establish a new DIDComm connection.The full invitation URL received from the inviting party.
Optional alias to assign to this connection.
Optional label to assign to this connection.
Optional image URL to associate with this connection.
When
true, automatically accepts the connection without a separate confirmation step.When
true, automatically accepts the invitation.When
true, reuses an existing connection if one already exists with the inviting party.Timeout in milliseconds to wait for the invitation to be accepted.
Optional local DID to use when establishing the connection.
Get Credential List
Returns all credentials in the wallet, with optional filters.Filter credentials by DIDComm thread ID.
Filter credentials by the connection they were issued over.
Filter by credential exchange state (e.g.,
offer-received, credential-issued, done).Get Credential by Record ID
Retrieves a specific credential record.The credential exchange record ID.
Accept Credential Offer
Accepts a pending credential offer in the wallet.The ID of the credential exchange record to accept.
Controls acceptance behavior. Enum:
always, contentApproved, never.Credential format configuration object passed to the agent. Shape depends on the credential format (e.g., AnonCreds, JSON-LD).
Optional comment to include with the acceptance.
Get Proof Presentations
Returns all proof presentations for the wallet, with an optional thread filter.Optional DIDComm thread ID to filter proof presentations.
Get Proof by ID
Retrieves a specific proof presentation record.The proof exchange record ID.
Accept Proof Request
Submits a proof presentation in response to a verifier’s proof request.The UUID of the proof exchange record to respond to.
When
true, filters the credentials presented to match the presentation preview. Default: false.When
true, filters credentials by non-revocation requirements. Default: false.Optional comment to include with the proof presentation.
Create DID
Creates a new Decentralized Identifier (DID) in the cloud wallet.The cryptographic key type for the DID (e.g.,
ed25519).The DID method (e.g.,
indy, key, web).Optional 32-character seed for deterministic DID generation. Spaces are not allowed.
Optional network identifier (e.g.,
bcovrin:testnet). Required for ledger-based DID methods.Optional domain for
did:web (e.g., www.github.com).Optional endorser role on the ledger (e.g.,
endorser).Optional private key in hex format (e.g.,
651727dab6dfdbb4f18afff5f368d13b0dca41fd26bd5e1c7953457524d645e6).Optional DID endpoint URL.
Optional existing DID identifier to import (e.g.,
XzFjo1RTZ2h9UVFCnPUyaQ).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.The ID of the connection to send the message over.
The text content of the message.
Get Basic Messages by Connection ID
Retrieves all basic messages exchanged on a specific connection.The ID of the connection whose messages to retrieve.
Error Responses
| Status | Meaning |
|---|---|
400 Bad Request | Invalid request body or parameters (e.g., seed too long, invalid URL). |
401 Unauthorized | JWT token missing or expired. |
403 Forbidden | The user does not have permission to perform this action. |
404 Not Found | The requested credential, proof, connection, or DID record does not exist. |