Skip to content

Choosing a Canton dApp SDK

Choose the integration layer that fits the application: Sigilry’s typed provider toolkit, DA’s wallet-discovery SDK, PartyLayer’s native provider with an adapter bridge and UI components, or a Console-focused SDK. These are different documented integration surfaces, not a ranking. Sigilry, Canton dApp SDK, PartyLayer, Console.

Snapshot checked 2026-10-05 with npm view:

Sigilry source links are pinned to public mirror commit c264b6e; DA source links are pinned to d8b41d9. Website documentation describes the pages inspected on the snapshot date and can change independently of npm releases.

Documented means a maintainer describes the capability. Unknown means the named capability was not established by the cited sources; it does not mean unsupported. This comparison is based on documentation, source, and package metadata. It does not establish interoperability, conformance certification, relative performance, or successful installation in a particular application.

On narrow screens, scroll the table horizontally to see all four SDKs.

CapabilitySigilry@canton-network/dapp-sdk (DA)PartyLayer@console-wallet/dapp-sdk
Main integration surface / CIP-0103Typed CIP-0103 provider and RPC client/server toolkit. DocsHigh-level API over CIP-0103 providers and adapters. DocsNative CIP-0103 provider plus adapter-based client/bridge. ProviderConsole Wallet API; README states CIP-0103 compatibility. README
Licence / inspectable implementationMIT; public source. Metadata, sourceApache-2.0; public source. Metadata, sourceMIT; public source. READMEISC; distributed JS/types inspectable. Public development repository: unknown from metadata. Metadata, types
Wallet discovery and selectionDiscovery store, provider selection, React WalletPicker. dApp, ReactAnnounced browser wallets, remote wallets, configurable adapters; built-in picker Web Component. Discovery, READMEInjected-provider discovery, registry/adapters, React modal and ConnectButton. Provider, React, READMEConsole extension availability; local, remote, or combined target. General multi-wallet picker: unknown. README
Transport / remote connectionDocumented WindowTransport and custom RpcTransport seam; WalletConnectTransport exported in inspected source. Docs, exportsBrowser postMessage, remote HTTP/SSE; optional WalletConnect adapter. README, discoveryNative sync/async flows; opt-in WalletConnect adapter. Legacy provider bridge is sync-only. README, adapterBrowser postMessage and mobile QR/deep-link flow. Generic WalletConnect adapter: unknown. README
React integration@sigilry/react context/hooks using TanStack Query. DocsFramework-agnostic SDK and picker usable in React. Dedicated React hooks package: unknown in inspected SDK docs. Overview, READMEHooks/components; separate TanStack Query entry point. ReactTyped application SDK. Dedicated React hooks package: unknown in inspected README/exports. README, types
Ledger reads / application dataledgerApi; React ledger and active-contract hooks. dApp, ReactWallet-session JSON Ledger API proxy. OverviewNative-provider ledgerApi; legacy bridge differs. Query hooks wrap application-supplied fetchers. README, ReactledgerApi, contract, balance, and history methods. README, types
Daml types / action abstractionCLI wraps alpha DAR-to-TypeScript tooling; inspected source requires Java and pins the DPM SDK. Generated choice-action workflow: unknown as a shipped end-to-end integration here. CLI, codegen, configTyped SDK calls. Automatic DAR-to-typed create/exercise binding generation: unknown in inspected SDK README. READMErequestTransfer intent API, gated by wallet capability. Generic generated DAR choice bindings: unknown in this transfer guide. Transfer guideTyped request/response exports. Automatic DAR-to-typed choice binding generation: unknown in inspected README. README
Account / status / transaction updatesProvider events and React subscription helpers. dApp, ReactStatus, account, and transaction subscriptions. READMEProvider and client events, plus the legacy provider bridge. Provider, READMEAccount, connection, and transaction callbacks. README

Console documents wallet-side encryption/decryption and batch transaction signing. Console README. Message signing is also documented by Sigilry, DA, and PartyLayer; this table does not compare algorithms or encodings. Include Console’s additional signing APIs in an evaluation when the application needs them.

The following fit guidance is an editorial interpretation of the documented surfaces, not a result of comparative testing:

  • Evaluate Sigilry when the application needs explicit typed RPC/provider building blocks, custom transports, and its React layer. dApp, transports, React.
  • Evaluate DA’s official SDK when the framework-independent wallet picker and remote-wallet adapters fit the onboarding flow. Its Web Component supplies a documented UI without requiring React-specific hooks. Canton introduction, README, discovery.
  • Evaluate PartyLayer when the native provider, adapter bridge, and ready-made React modal/button fit. Select the native or bridge path deliberately: the inspected README documents different async and ledger behavior. Provider, README, React.
  • Evaluate Console’s SDK for Console-specific accounts, queries, mobile QR/deep links, and its additional signing/encryption APIs. README.

Separate SDK capability from wallet capability

Section titled “Separate SDK capability from wallet capability”

An adapter or transport does not establish that every wallet supports every method or network. PartyLayer explicitly gates typed transfers by wallet capability; DA documents adapter registration and discovery configuration. PartyLayer transfer guide, DA discovery.

For the actual package, wallet version, and network, record the results of this integration checklist:

  1. Discover/select the intended wallet and connect.
  2. Observe account, network, and connection changes.
  3. Read application data through the intended ledger path.
  4. Request and verify a signed message using that wallet’s documented algorithm, encoding, and key authorization rules.
  5. Handle user rejection and unsupported methods.
  6. Submit a representative transaction and observe completion or failure.
  7. Tear down listeners, disconnect, and test session restoration where offered.

This checklist is proposed verification work; no results are asserted for the four SDKs here. A reproducible integration recipe should pin the package, wallet, and network versions and report these outcomes after it has been run.

Typed RPC envelopes, generated Daml record types, and generated action functions are separate layers. Sigilry documents typed provider/RPC calls and a CLI wrapping dpm codegen-alpha-typescript. Those sources alone do not establish a shipped workflow that generates a choice action from a DAR and executes it through a wallet. PartyLayer’s documented transfer intent is another abstraction: the wallet receives a transfer request, subject to capability support. Sigilry dApp, CLI, codegen, PartyLayer transfers.

Capabilities change. Use the versioned metadata and pinned sources linked above, alongside current maintainer documentation. Send corrections with the relevant package version, public source, and a reproducible example through the public Sigilry issue tracker.