Skip to main content

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.
Auth: Tenant API key Response:

Create Account

Creates an account from existing wallet IDs, newly configured wallets, or both. An account can contain at most five wallet memberships.
Auth: Tenant API key Request Body:
Response: Account object, status 201.

Get Account

Returns one account by ID.
Auth: Tenant API key

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.
Auth: Tenant API key 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 when wallet_ids, user_wallet_ids, or wallets_configuration is supplied.
Auth: Tenant API key
Assignment fields are stored by Steward under 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.
Auth: Tenant API key

Validation and Limits

  • Account IDs must be 1-64 characters and may contain letters, numbers, _, -, ., :.
  • metadata must be a JSON object and cannot exceed 16 KB. metadata.authorization is reserved and rejected on input.
  • owner_user_ids, additional_signer_ids, and signer_policy_ids accept at most 32 entries each. Each entry must be a non-empty bounded ID string using letters, numbers, _, -, ., or :.
  • owner_user_ids entries must be UUID user IDs for active members of the authenticated tenant.
  • additional_signer_ids entries must reference active signer IDs attached to wallets in the account.
  • signer_policy_ids entries must reference policies attached to wallets in the account.
  • wallet_ids must reference existing wallets in the authenticated tenant.
  • user_wallet_ids must reference existing user-owned embedded wallets in the authenticated tenant.
  • wallets_configuration can provision EVM or Solana wallets into the account.
  • Accounts can contain at most five wallet memberships.
  • All responses are no-store and account audit events are written for create, update, and delete operations.

Account Aggregations

Account aggregations are persistent snapshots of an account’s current wallet membership and chain families. They are useful when an app needs a durable reference to the grouped-wallet set at a point in time.

Aggregation Object

List Aggregations

Auth: Tenant API key

Create Aggregation

Creates a snapshot of the account’s current wallet IDs and chain families.
Auth: Tenant API key

Get Aggregation

Auth: Tenant API key

Delete Aggregation

Deletes an aggregation snapshot. It does not modify the parent account or underlying wallets.
Auth: Tenant API key