Skip to main content

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

PatternDescription
Per-customerOne account per customer; generate deposit addresses inside it
Operational bucketsSeparate accounts for collection, transit, and settlement
DepartmentalFinance, ops, and risk teams operate distinct accounts
Single accountSimplest setup — one account with as many addresses as needed

See Also