Skip to main content
Wallet SDK v1 is not backwards compatible with v0. Quick links We have removed the configure() and connect() pattern in favor of passing in a static configuration or a provider with ledger api capabilities. Static configuration initialization where we supply an auth config and a ledgerClientUrl:
Provider intialization: The provider is an abstraction that ultimately interacts with the Ledger (JSON LAPI). This can be implemented for either a dApp consumer, direct ledger user, or alternative transport channels such as Wallet Connect.

Namespace changes

We have removed the controllers and replaced them with namespaces to appropriately segregate the service layer in terms of business context. When the sdk is initialized, it has access to the users, keys, ledger, and party namespaces. The amulet, token, asset, and events namespaces can be initialized with a separate config via the .extend() method.

Find your migration path

Jump to the page that matches the work you are migrating:

Allocate or list parties

Internal and external parties, offline signing, and replacing setPartyId.

Transfers, holdings, UTXOs, allocations

Replace tokenStandard transfer, holding, UTXO, and allocation APIs.

Users and rights

Create users and grant rights without separate admin/user ledger controllers.

Canton Coin, traffic, preapprovals, tap

Migrate amulet-specific traffic, preapproval, featured-app, and tap flows.

Prepare, sign, execute, ACS, DARs

Replace prepareSignExecuteAndWaitFor with the prepare/sign/execute chain.

Discover assets and instruments

List and find instruments through the dedicated asset namespace.

Keys and events

Key generation and ledger update/completion subscriptions.

Full method cheat sheet

Searchable v0 controller → v1 namespace method mapping table.

Removed functionality

The following methods have been removed: sdk.connect() No longer needed, SDK is connected on creation sdk.connectAdmin() No longer needed, admin operations are available in the ledger namespace and rights are extracted from the token. sdk.connectTopology() No longer needed, the grpc endpoints have been removed and replaced with ledger api endpoints. sdk.setPartyId() Pass partyId explicitly to each operation

In v0, the controllers and sdk were stateful. In v1, party information should be passed explicitly to each function. This enables acting as multiple parties and allows for thread safety in concurrent use.

Keys and events

The keys namespace is always available on the basic SDK. Use it instead of standalone key-pair helpers: The events namespace replaces ledger update and completion subscriptions from userLedger. Like amulet, token, and asset, it is an extended namespace that you configure at creation time or via .extend(): For the complete method map across all namespaces, see the migration cheat sheet.

See also