The public API
Stable features and components constitute the “public API” in the sense of Semantic Versioning. The following surfaces have documented compatibility contracts:
The following are explicitly not part of the public API and may change between releases without notice:
- Splice HTTP endpoints in
*-internalAPI definitions (Splice HTTP APIs) - Daml templates and choices of the Splice applications — implementation details behind the interface-based standards (Splice API overview)
- The PQS database schema — the provisioned functions are the only database artifacts readers should interact with (PQS SQL API)
Feature status labels
Features or components covered by these docs are Stable by default. Features and components that are not Stable are called “Early Access” and called out explicitly. Early Access features are opt-in whenever possible, needing to be activated with special commands or flags needing to be started up separately, or requiring the use of additional endpoints. Alpha Alpha components and features are early preview versions of features being actively developed to become a stable part of the ecosystem. At the Alpha stage, they are not yet feature complete, may have poor runtime characteristics, are subject to frequent change, and may not be fully documented. Alpha features can be evaluated, and used in PoCs, but should not be relied upon for large projects or production use where breakages or changes to APIs would be costly. Beta Beta components and features are preview versions of features that are close to maturity. They are characterized by being considered feature complete, and the APIs close to the final public APIs. It is relatively safe to build on Beta features as long as the documented caveats to runtime characteristics are understood and bugs and minor API adjustments are not too costly.Status comparison
Early access protocol versions
Feature status and protocol version status are separate axes. A synchronizer may run an alpha or beta protocol version. The use of early access protocol versions is intended for non-production environments and is not covered by support. See Enable early access protocol features for the configuration.Compatibility
The live version pairings for each network are published on the Version Compatibility Dashboard. The rules behind those pairings:- Node to synchronizer: compatibility is governed by the Canton protocol version, negotiated when a node connects. Operators control the floor with
minimum-protocol-version; a synchronizer’s protocol version is implied by its Splice version. - Application to ledger: applications built against the Token Standard Daml interfaces remain compatible across Splice upgrades; the interfaces exist to decouple application code from Splice implementation upgrades (Splice API overview).
- Daml packages across SDK versions: governed by Smart Contract Upgrade, which defines when a new package version can replace an old one without ledger migration.
- Network upgrades: upgrades are validated through the DevNet → TestNet → MainNet progression described in Releases and Versioning.