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