Accounts API
Digital asset accounts are tenant-scoped resources that group one or more wallets under a stable account ID. Use them when you need a Privy-style account object that can reference existing Steward wallets or provision new grouped wallets. These routes are mounted at both/accounts and /v1/accounts.
Account and balance responses include non-secret capability metadata derived
from wallet membership, custody type, and signer/quorum records. Metadata is
tenant scoped and never includes private keys, signing secrets, or encrypted
key material.
Account Object
List Accounts
Returns all digital asset accounts for the authenticated tenant.Create Account
Creates an account from existing wallet IDs, newly configured wallets, or both. An account can contain at most five wallet memberships.201.
Get Account
Returns one account by ID.Get Account Balance
Returns a balance-compatible account wrapper with grouped wallets. This endpoint returns best-effort native balance rows, ERC20 token rows for EVM wallets, SPL token rows for Solana wallets, and per-chain native/token rollups. Provider failures are reported per wallet without failing the whole account response.tokens accepts up to 25 comma-separated EVM token contract addresses. SPL
token rows are discovered from parsed Solana RPC token accounts for the wallet;
they use the mint address in token and do not infer ticker metadata from an
indexer.
Update Account
Updates account metadata, display name, authorization assignments, or replaces wallet membership whenwallet_ids, user_wallet_ids, or
wallets_configuration is supplied.
metadata.authorization and
returned at the top level in both camel-case and snake-case. Treat
metadata.authorization as reserved output: create and update requests must use
owner_user_ids, additional_signer_ids, or signer_policy_ids instead.
Replacing metadata on PATCH preserves existing authorization assignments
unless one of those assignment fields is supplied. Replacing wallet membership
also revalidates preserved assignments against the new wallet set.
Delete Account
Deletes the account resource and its membership rows. This does not delete the underlying wallets.Validation and Limits
- Account IDs must be 1-64 characters and may contain letters, numbers,
_,-,.,:. metadatamust be a JSON object and cannot exceed 16 KB.metadata.authorizationis reserved and rejected on input.owner_user_ids,additional_signer_ids, andsigner_policy_idsaccept at most 32 entries each. Each entry must be a non-empty bounded ID string using letters, numbers,_,-,., or:.owner_user_idsentries must be UUID user IDs for active members of the authenticated tenant.additional_signer_idsentries must reference active signer IDs attached to wallets in the account.signer_policy_idsentries must reference policies attached to wallets in the account.wallet_idsmust reference existing wallets in the authenticated tenant.user_wallet_idsmust reference existing user-owned embedded wallets in the authenticated tenant.wallets_configurationcan provision EVM or Solana wallets into the account.- Accounts can contain at most five wallet memberships.
- All responses are
no-storeand account audit events are written for create, update, and delete operations.