Skip to content

Migrations

Sigilry’s dApp RPC contract is still evolving alongside CIP-0103 and downstream implementations. This section tracks breaking changes and gives consumers a concrete migration path per release line.

Each published package follows semver, but the way we cut versions differs by maturity:

PackageLinePre-release tagStability
@sigilry/dapp2.x2.0.0-next.N on next dist-tagPre-stable — breaking changes expected until the RPC contract settles
@sigilry/react2.x2.0.0-next.N on next dist-tagPre-stable — tracks @sigilry/dapp
@sigilry/canton-json-api1.xStable on wire shape; new endpoints are additive
@sigilry/cli0.xPre-1.0; breaking changes bump 0.MINOR
@sigilry/splice-dars0.xTracks a vendored Splice release; bumps with upstream

Pre-stable pre-release policy (@sigilry/dapp, @sigilry/react)

Section titled “Pre-stable pre-release policy (@sigilry/dapp, @sigilry/react)”

While the 2.x line is pre-stable we publish to the next dist-tag rather than latest. Install with an explicit version:

Terminal window
# Pin to a specific pre-release
yarn add @sigilry/dapp@2.0.0-next.3
# Or track the rolling next tag (expect breaks, re-read the migration guide on bumps)
yarn add @sigilry/dapp@next

A break within the 2.0.0-next.* series increments N; it does not move to 2.0.1-next or 2.1.0-next. When the surface stabilizes we promote the current pre-release to 2.0.0 on latest; from that point 2.0.x is patch-only and the next break cuts 3.0.0-next.0.

  • CIP-0103 spec changes in hyperledger-labs/splice-wallet-kernel that we track.
  • Ledger API wire shape changes in Canton’s JSON API v2.
  • Internal shape changes in provider types, ConnectionState, or event payloads that only become observable once we move off the pre-release series.
  • Added optional hook options, new exported types, or new RPC methods that older wallets return -32601 for.
  • Bug fixes that make implementations match the existing documented contract.

Start at the guide for your current version and apply each subsequent guide in order.

  • 1.x → 2.0 — CIP-0103 alignment, EIP-6963-style discovery, nested StatusEvent, ConnectResult, isConnected, ledgerApi contract rewrite, command-atom payloads.

dApps integrating against the Send Canton Wallet extension (@0xsend/canton-webext) should also read that project’s docs/breaking-changes-for-dapp-developers.md for the record-encoding shim and api-gateway behavior, which are layered on top of the sigilry contract.