Accounts
Accounts are an organizational layer inside a vault. They do not create a new cryptographic boundary; instead, they help structure operations and reporting within the same vault.
Create an Account
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"vaultId": "kR7mNpX2wQvL9sYhBjD4eT",
"name": "Hot Wallet",
"data": { "purpose": "daily_operations" }
}' \
https://api.carabaas.com/api/v1/accounts
Returns 200 if the account already exists, 201 if newly created.
List Accounts
curl -H "Authorization: Bearer $TOKEN" \
"https://api.carabaas.com/api/v1/accounts?organizationId=djk2wDuMhsx9KR2r7JgBQW"
Filter by Vault
curl -H "Authorization: Bearer $TOKEN" \
"https://api.carabaas.com/api/v1/accounts?organizationId=djk2wDuMhsx9KR2r7JgBQW&filter[vaultId]=kR7mNpX2wQvL9sYhBjD4eT"
With Relations
# Include addresses, balances, and vault info
curl -H "Authorization: Bearer $TOKEN" \
"https://api.carabaas.com/api/v1/accounts?organizationId=djk2wDuMhsx9KR2r7JgBQW&relations[]=vault&relations[]=addresses&relations[]=balances"
Get Account Details
curl -H "Authorization: Bearer $TOKEN" \
"https://api.carabaas.com/api/v1/accounts/{accountId}?relations[]=balances"
Update an Account
curl -X PATCH \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Settlement Account",
"data": { "purpose": "settlement" }
}' \
https://api.carabaas.com/api/v1/accounts/{accountId}
Account Organization Patterns
| Pattern | Description |
|---|---|
| Per-customer | One account per customer; generate deposit addresses inside it |
| Operational buckets | Separate accounts for collection, transit, and settlement |
| Departmental | Finance, ops, and risk teams operate distinct accounts |
| Single account | Simplest setup — one account with as many addresses as needed |