Institutional Vault Release v3.5.0
Versions
mothership: v3.5.0
wallet-frontend: v3.5.0
policy-node: v9.8.1
nats: v3.5.0
ev- tracker: v3.5.0
cold-wallet: v3.5.0
db-setup: v3.5.0
nats-secrets: v3.5.0
configmap-init: v0.1.0
policy-node-enclave: v3.5.0
Updates
- Transaction restrictions support blocking by default with exceptions for selected initiator groups.
- Operations views support WebSocket status updates with a polling fallback.
- NATS message broker runs as a 3-replica StatefulSet in cluster mode for high availability.
- Audit log export and search support operation ID and transaction ID filters.
- Account search uses the backend API for more complete results, and transaction detail views use snapshots of sources and destinations.
- Historical operations show Cancelled or Rejected when the corresponding failure codes are returned.
- Outgoing Canton ledger movements such as token burns and sends appear in Vault transaction history.
- Users register, reset, delete, and list flows use the CWP API.
- Canton signing userIdentifier defaults to the authenticated user email when omitted.
- Transaction status polling supports Basic Auth credentials embedded in EVM native driver URLs.
- The evm-tracker Helm chart supports optional rpcAuth tokens from Azure Key Vault.
- GCP Secret Manager is supported for the bootstrap API key and configurator secrets, enabling GKE-targeted deployments.
- Azure deployments use a self-contained Helm chart with high availability options: configurable replicas, rolling updates, and availability-zone topology spread for wallet, frontend, evm-tracker, and Policy Nodes.
- Policy Node Postgres connections support AWS RDS IAM authentication.
- Asset icons load from frontend static files instead of the backend icon API.
- Services use a 1-minute graceful shutdown timeout.
- Users API available on the Core Wallet Platform (CWP) HTTP surface.
- Balance API available on the CWP for on-chain and spendable balance for an account, and GetBalances across accounts.
- Price API available on the CWP for retrieving the USD price of an asset.
- CancelOperation accepts cancelledBy.
- CWP GET /accounts/list exposes accounts and whether each master key is external.
- Standalone CWP server supports JWT authentication via OIDC configuration.
- CWP token metadata lookup API using CAIP-19.
Fixes
- Policy Node MPC session IDs are unique across concurrent sessions.
- Outgoing Besu transfers no longer create duplicate records when the transaction hash arrives after confirmation.
- Canton incoming transfers show the actual counterparty as the sender instead of the instrument admin.
- WalletConnect relay reconnection is more reliable under heavy load.
- Tenant setup no longer creates duplicate accounts when more than 100 accounts already exist.
- Canton account balances sum only holdings the account owns, so unaccepted transfer offers are not treated as spendable and a fully transferred-out token resets to zero.
- Tenant bootstrap syncs group membership into the wallet database so groups are populated after setup.
- Prevent adding already existing token as custom asset.
- Azure PodDisruptionBudget settings allow node rollover without conflicting with subchart budgets.
- Deleting a user who remains in a group shows a clearer failure toast.
- Canton Contract Management scan-proxy authentication for Amulet CC handling is corrected, and Canton Contract Management API routing works for AWS on-premises deployments.
- ERC-20 calldata is no longer replaced incorrectly on specific contract calls.
- Error M0026 returned when a policy or group change would make future policy updates unapprovable.
- Transaction restriction filters no longer ignore other fields when amount or destination is unknown.
- Group create and rename keep the groups table in sync, including empty groups in GetAllUserGroups.
Breaking Changes
- POST /api/vaults/createVault is removed. Create accounts with POST /api/cwp/operations/start/createAccount.