Accounts & Wallets

The Account vs. Wallet Distinction

When working with the Wallet API, it is important to understand the difference between an account and a wallet, as they are separate concepts that serve different roles.

  • An account is the authentication identity. When a user registers and logs in, a session token (or cookie) is issued that is tied to the account. This token proves who you are.
  • A wallet is the operational container — it holds the user's keys, DIDs, and credentials. Every action such as receiving credentials, presenting credentials, or managing keys is scoped to a specific wallet, not just an account.

When a new account is registered, the Wallet API automatically provisions a default wallet for it, including a key and DID (configurable via the registration defaults). The API is designed to support multiple wallets per account, so each wallet has its own unique ID.

Because a session token identifies your account, but all wallet operations require a wallet ID, you need to retrieve the wallet ID before you can perform any wallet operations such as receiving or presenting credentials.

Retrieve Wallet ID

CURL

API Reference

curl -X 'GET' \
  'http://0.0.0.0:7001/wallet-api/wallet/accounts/wallets' \
  -H 'accept: application/json' \
  -H 'authorization: Bearer {token}'

Header Parameters

  • authorization: String - Bearer token obtained from the login endpoint. Format: Bearer {token}.

Example Response

{
  "account": "108753e3-5ab4-4096-8699-ad0653c79a09",
  "wallets": [
    {
      "id": "4d7ef7c6-a76b-409b-b042-68d15a484082",
      "name": "Wallet of Test",
      "createdOn": "2025-04-16T09:19:11.585Z",
      "addedOn": "2025-04-16T09:19:11.597Z",
      "permission": "ADMINISTRATE"
    }
  ]
}

Response Fields

  • account: String - The unique ID of the authenticated account.
  • wallets: Array - The list of wallets associated with this account. Each wallet object contains:
    • id: String - The unique wallet ID. This is the value required for all subsequent wallet operations.
    • name: String - A human-readable name for the wallet.
    • createdOn: String - ISO 8601 timestamp of when the wallet was created.
    • addedOn: String - ISO 8601 timestamp of when the wallet was added to this account.
    • permission: String - The permission level of the authenticated account over this wallet (e.g. ADMINISTRATE).

Save the id value from the wallet you want to work with. It is required as a path parameter for all wallet operations including credential exchange, key management, and DID management.

Last updated on April 16, 2026