1.1.0
Released on April 28th, 2026- Added support for Canton 3.5.X & Splice 0.6.X
- Backwards compatibility with Canton 3.4X and Splice 0.5.X
- Allow offline SDK signing without ledger access
- Few improvments to the amulet fetch status to handle easier expectations like (expect cancelled or expired)
1.0.0
Released on April 17th, 2026 Wallet SDK v1 is the new long-term API shape for application development. Rather than being an additive patch to v0, v1 introduces a cleaner and more explicit model focused on composability, multi-party flows, and transport flexibility. Why move to v1-
Stateless and safer by default: v1 removes global SDK/controller party state and requires explicit
partyIdat call time, which improves thread safety and makes concurrent multi-party operations much easier to reason about. -
Clearer transaction lifecycle: flows are modeled as explicit
prepare -> sign -> executesteps, improving observability and reducing hidden behavior. -
Better API organization: v0 controllers are replaced by namespaces (
ledger,party,token,amulet,user,asset,events) with clearer boundaries and easier discoverability. - More flexible integration model: v1 supports static configuration and provider-based initialization, making it easier to integrate with browser, dApp, remote wallet, and alternative transport setups.
-
Improved extension model: optional functionality can be enabled via
extend()which keeps base initialization small and purpose-driven.
- Wallet SDK v1 Migration Guide
- v1 Ledger Migration
- v1 Token Migration
- v1 Party Migration
- v1 User Migration
0.21.1
Released on February 20th, 2026- fix fetching active contracts in loop mode
continueUntilCompletion) would not correctly handle pagination, resulting in incomplete results being returned. This has now been fixed ensuring all contracts are reliably returned.
0.21.0
Released on February 6th, 2026- pagination support for listing UTXOs
listHoldingsUtxo was limited to the ledger API upper bound of 200 items per request. For parties with a large number of holdings this meant not all UTXOs would be returned. A new optional continueUntilCompletion parameter has been added that when set to true will automatically page through all results, making it possible to reliably work with parties that hold more than 200 UTXOs.
- cost estimation now returned when using Canton 3.4
prepareSubmission against a Canton 3.4 participant the costEstimation field was previously dropped from the response. The response type has been corrected and the cost estimation is now correctly surfaced.
0.20.0
Released on January 16th, 2026- subscribe to ledger update events via WebSocket
for await loops.
- subscribe to command completions via WebSocket
listWalletsnow only returns local parties
listWallets could return parties that the user had been granted access to on remote validators, this was confusing and incorrect behaviour. The method now only returns parties that are locally allocated on the connected participant.
- optional input utxos for merge delegations
0.19.1
Released on December 29th, 2025 Version bump to align package publication. No functional changes.0.19.0
Released on December 29th, 2025- Important!: LedgerController constructor has changed to named parameters
LedgerController constructor has been refactored from positional parameters to a named parameter object. This is a breaking change if you construct LedgerController directly. The new signature also accepts an optional custom fetch implementation which is useful for routing requests through an intermediary such as the wallet gateway.
- get created contract by update id
getCreatedContractByUpdateId has been added on the ledger controller. After submitting a transaction you can use the returned updateId to look up the contract(s) that were created as part of that transaction. Optionally you can narrow the result by providing template or interface ids.
- unified
createTransferInstructionchoice helper
createTransferInstruction method, reducing boilerplate when you want to exercise a choice without caring about which specific one.
- browser support for the ledger client
@canton-network/core-ledger-client package can now be imported and used directly in a browser environment. Node.js-specific modules have been removed from the main bundle so that browser-based dApps and portfolio UIs can leverage the ledger utilities without additional bundler workarounds.
- fixed decimal precision handling
decimal.js to prevent floating-point precision errors when working with large or fractional CC amounts.
0.18.0
Released on November 26th, 2025- merge utxos command
mergeHoldingUtxos, this returns a series of commands that each needs to be executed individually to merge the assets. It returns a list of utxos commands because: Firstly, it supports multi-assets (so it will merge both CC and non-CC tokens) and secondly there is an upper limit of 100 inputs per transaction so to facilitate if more is present then it splices it for the client.
- merge utxos delegation
- create party with preapproval
- get traffic status
- list holdings at offset
0.17.0
Released on November 14th, 2025- Wallet SDK has been updated to support 0.5.1 & Canton 3.4.7
- wallet.localhost changed to localhost
- Improved utxo selection when no utxos was provided
- Better automation around token metadata
getInstrumentById & listInstruments, these uses the transferRegistryUrl provided to fetch relevant data from the original source making non-CC token integration more seamless. Likewise in certain cases the instrumentAdmin has been made optional since we can use the above to fetch these.
- test improvements of snippets
- buy member traffic
- made decodeTopologyTransaction static
- supported executeAs individual rights for reading
0.16.0
Released on November 4th, 2025- caching for amulet rules and open mining round
- observing participants for multi-hosting
- decode topology transactions
0.15.0
Released on October 29th, 2025- Handling inflight transmissions
REQUEST_ALREADY_IN_FLIGHT and SUBMISSION_ALREADY_IN_FLIGHT, now in those cases the SDK will retrieve the inflight submission and track that for ..AndWait functions.
- support cjs module
- better handling of readAs and actAs rights
- ACS client side caching
- Caching of Access Tokens
unsafe tokens, however still unnecessary. Tokens are now kept in memory and reused and a new token is only requested upon expiry.
For this change to take effect you need to alter your token usage to use AccessTokenProvider instead, all examples are updated accordingly.
0.14.0
Released on October 23th, 2025- Fixed broken dependency problem introduced in 0.13.X
0.13.1
Released on October 22th, 2025- Greatly reduced the size of the SDK from ~ 80 MB to ~ 35 MB
- introduced optional
limitfield forlistHoldingsUtxo
0.13.0
Released on October 22th, 2025- Important!: await completion has changed signature
- retry logic & stress testing
- multi hosted party fix and synchronized handling
- proxy delegation for feature app marker for deposits
splice-util-featured-app-proxies-1.1.0.dar on the validator.
- manual preapproval renewal and cancellation
0.12.0
Released on October 15th, 2025- Important!: The custom meta-data on create transfer have changed format
- Feature app marker delegation proxy
- Possibility to create commands offline
- Fetch contract by id
- TLS enablement for grpc admin (topologyController)
- Stress tested party creation
The server was not able to produce a timely response to your request. Safe guard has been added against this, when the error occurs we continuously look for the party to be available. If a timeout is required then it will have to be handled outside of the method. It is worth nothing that the party creation has no timeout on ledger.
you can disable this by setting expectHeavyLoad to false
0.11.0
Released on October 10th, 2025- Added support to tap internal parties
- Dar-file manage
- Full support for token standard allocations
- Party onboarding can now be done on the ledgerController instead of the TopologyController
the multi-hosted configuration is the same, except that the ledger you call should not be included in the array
- User creation and rights management
- ListWallets now returns a list of partyIds instead of partyDetails
- ListWallets now correctly returns the parties that the user has access to (including CanReadAsAnyParty)
- Extended the max timeout when onboarding a party from 20s to 1 minute
- Party onboarding now queries the specific party instead of all parties (performance improvement)
- Party onboarding now has idempotent behavior
- Default values changed for Wallet SDK from
localLedgerDefaulttolocalNetledgerDefaulton all controllers
0.10.0
Released on October 2nd, 2025- Self-issue feature app rights
- localNet variation for AppProvider & AppUser
- topology transaction recalculate hash
- new awaiting variation with
prepareSignExecuteAndWaitFor&executeSubmissionAndWaitFor
waitForCompletion, we have now backed that into the executions
executeSubmissionnow returns the submissionId similarly toprepareSignAndExecuteTransaction- fixed thrown exception for missing seed when using
TopologyController.createTransactionHash prepareSubmissionnow has same command input signature asprepareSignAndExecuteTransaction
0.9.0
Released on September 26th, 2025- Supporting both canton 3.3 and 3.4 at the same timeout
localNetStaticConfigadded
0.8.0
Release on September 24th, 2025- Important!: The flow has been simplified for prepare and execute of commands, however this means code needs to be converted
\[{ ExerciseCommand: tapCommand }\] and you can instead pass the tapCommand directly
- Support Withdrawal flow for 2-step transfer
Accept or Reject
- Allow validating if receiver have set up transfer pre-approval before performing a transaction
- Tested and verified against Splice 0.4.17
- Fix endless loop bug when onboarding a party
0.7.0
Release on September 18th, 2025- Important!: scan api is not longer used for methods like
connectTopologyuse scan proxy instead - Added support for multi-hosting a party upon creation against multiple validators
- Verify signed transaction hash
executeSubmission and prepareSignAndExecuteTransaction to validate the hash before transmitting to the ledger
- wait for command completion
- Added new endpoint to quickly fetch all pending 2-step incoming transfer to easily accept or reject
- optional expiry date for create transfer
- fetch transaction by update id
- The access token generated by the authController is now correctly passed to the scan proxy and registry
0.6.1
Released on September 16th, 2025 Fixed a minor edge case where a future mining round would be chosen if there was a client clock skew.0.6.0
Released on September 16th, 2025- ledgerFactory, TopologyFactory & ValidatorFactory changed to use URL instead of strings (where applicable)
- connectTopology now uses scanProxy instead of scan for proper decentralized setup
- stronger typing now required strings of specific formats for parties across all controllers
- fixed a bug where the combinedHash returned from topologyController.prepareExternalPartyTopology was in hex encoding instead of base64
- fixed a bug that caused the expectedDso field to be required when performing TransferPreApprovalProposal (this is only required after Splice 0.1.11)
- simplified setParty & setSynchronizer, now it can all be done with one call on sdk.setPartyId()
0.5.0
Released on September 11th, 2025- Memo field added to create transfer
- pre-approval creation now supported through ledgerController instead of validatorController
0.4.0
Released on September 10th, 2025- Range filter for
listHoldingTransactions(afterOffset?: string,beforeOffset?: string) - Transfer pre-approval support:
- Support added for 2-step transfers (propose / accept)
listHoldingsUtxohas been extended to onlynonLockedUTXOs
- Include some small bug fixes. The most noteable are:
Contract not founderror when listing holdings (https://github.com/canton-network/wallet-gateway/issues/357)- Requirements to have extra import (like @protobuf-ts/runtime-rpc) resolved