# API releases

## v0.3

*Operator controls and API-driven network discovery.* Spec version 0.3.0.

**New API capabilities**

* **System settings.** Read deployment-wide settings with `GET /v1/system-settings` and update them with `PATCH /v1/system-settings`. The initial settings control testnet availability and USD value conditions in Signing Policies.
* **Supported blockchain catalog.** `GET /v1/system-info` now returns `supported_blockchain_networks`, including network families, networks, testnet markers, enabled states, and supported assets. Clients should render network and asset choices from this response instead of hardcoding them.
* **Settings authorization.** Administrative Policy adds `modify_system_settings`. Reading settings remains governed by `view_system_resources`.

**Operator experience**

* The web app now provides a complete vault workspace for creating, editing, searching, freezing, and unfreezing vaults. Vaults are permanent and cannot be deleted after creation.
* Each vault has Wallets, Security Groups, and Signing Policy tabs. Operators can generate and manage wallets using network choices supplied by the API.
* The Signing Policies page separates the Offchain policy from each vault's on-chain policy. On-chain rules support network, asset amount, destination, and optional USD value conditions.
* The System Settings page lets authorized operators enable or disable testnets and price-based policies.
* Administrative Policy can scope wallet, security group, and Signing Policy management to selected vaults. Audit Logs can be filtered by vault and wallet.

**API behavior changes**

* `SystemInfo` gains the required `supported_blockchain_networks` field.
* `AdminPolicyType` gains the `modify_system_settings` value.
* Disabling testnets is rejected while a wallet or Signing Policy still references a testnet. Disabling price-based policies is rejected while a Signing Policy still contains a USD value condition.
* When a setting is disabled, new dependent writes fail closed. Testnet networks remain in the catalog with `enabled: false` so clients can explain why they are unavailable.

**Breaking changes**

Clients that use strict response decoding or exhaustive enum handling must accept the new required `SystemInfo` field and the new `AdminPolicyType` value before upgrading.

**Migration notes**

* Update network and asset selectors to use `supported_blockchain_networks` from `GET /v1/system-info`.
* Update strict decoders for the new `SystemInfo` field and `modify_system_settings` enum value.
* Before changing settings, read the current settings version. If an update returns `409 resource_conflict`, read the settings again, review the latest values, and retry with the new version.

**OpenAPI spec**

[Download the v0.3 OpenAPI spec](/specs/v0.3/openapi.json), or [browse it in the API Reference](/api-reference).

## v0.2

*Second OpenAPI release.* Spec version 0.2.0.

**New API capabilities**

* **Vault management.** Create, update, freeze, unfreeze, and list vaults using new endpoints: `POST /v1/vaults`, `PUT /v1/vaults/{vault_id}`, `GET /v1/vaults`, `GET /v1/vaults/{vault_id}`, `POST /v1/vaults/freeze`, `POST /v1/vaults/unfreeze`.
* **Wallet management within vaults.** Add, update, remove, freeze, unfreeze, and list wallets for a vault: `POST /v1/vaults/{vault_id}/wallets`, `PUT /v1/vaults/{vault_id}/wallets/{address}`, `DELETE /v1/vaults/{vault_id}/wallets`, `GET /v1/vaults/{vault_id}/wallets`, `GET /v1/vaults/{vault_id}/wallets/{address}`, `POST /v1/vaults/{vault_id}/wallets/freeze`, `POST /v1/vaults/{vault_id}/wallets/unfreeze`.
* **Wallet signing.** Sign and raw-sign messages with a vault wallet: `POST /v1/vaults/{vault_id}/wallets/{address}/sign`, `POST /v1/vaults/{vault_id}/wallets/{address}/raw-sign`.
* **Security group member management.** Add, update, remove, and patch security group members: `PUT /v1/security-groups/{group_id}/members/{member_id}`, `PATCH /v1/security-groups/{group_id}/members`, `DELETE /v1/security-groups/{group_id}/members`.
* **Additional query and error handling.** Many endpoints now support response code 504 and new query parameters, including expanded filtering for audit logs and security groups.

**API behavior changes**

* **Audit log filtering.** `GET /v1/audit-logs` now supports filtering by `vault_ids` and `wallet_addresses`.
* **Security group filtering.** `GET /v1/security-groups` now supports filtering by `signing_policy_id`.
* **Key listing.** `GET /v1/keys` now uses `venue_ids` instead of `venues` for query filtering.
* **Freeze/unfreeze keys.** `POST /v1/keys/freeze` and `POST /v1/keys/unfreeze` now use `venue_id` instead of `venue` for query filtering.
* **Consistent error responses.** Response code 504 added to many endpoints for improved error handling.

**Breaking changes**

* **Security group key management removed.**
  * `DELETE /v1/security-groups/{group_id}/keys`
  * `PATCH /v1/security-groups/{group_id}/keys`
  * `PUT /v1/security-groups/{group_id}/keys/{key_id}`
* **Key listing and freeze/unfreeze parameter changes.**
  * `GET /v1/keys`: query parameter `venues` removed, `venue_ids` added
  * `POST /v1/keys/freeze`: query parameter `venue` removed, `venue_id` added
  * `POST /v1/keys/unfreeze`: query parameter `venue` removed, `venue_id` added

**Migration notes**

* Update integrations to use `venue_ids` for key listing and `venue_id` for freeze/unfreeze operations.
* Security group key management endpoints are removed; migrate any workflows using these to the new vault and wallet management endpoints.
* Review new error handling (response code 504) and expanded filtering options for audit logs and security groups.

**OpenAPI spec**

[Download the v0.2 OpenAPI spec](/specs/v0.2/openapi.json), or [browse it in the API Reference](/api-reference).

## v0.1

*First published OpenAPI release.* Spec version 0.1.0.

**New API capabilities**

* **Key management.** Import exchange API secrets without ever exposing them, and generate Ed25519 and RSA keys using MPC.
* **Policy-driven governance.** Configure Administrative Policy over users, groups, and actions, plus ordered Signing Policies that control how each key may sign.
* **Signing for humans and agents.** Human users sign state-changing requests with Passkeys. Machine Users & Agents sign requests with Ed25519 assertions.
* **Kill switch and audit.** Freeze at key, user, venue, or whole-system scope, and export a SIEM-ready audit log of every action.

**API behavior changes**

First API release, so there are no behavior changes from a previous version.

**Breaking changes**

None.

**Migration notes**

First API release, so no API migration applies.

**OpenAPI spec**

[Download the v0.1 OpenAPI spec](/specs/v0.1/openapi.json), or [browse it in the API Reference](/api-reference).
