---
title: "Choosing a Canton dApp SDK"
description: "A sourced comparison of Sigilry, the Canton dApp SDK, PartyLayer, and the Console Wallet dApp SDK."
url: "https://sigilry.org/compare/canton-dapp-sdks"
---

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](https://sigilry.org/packages/dapp), [Canton dApp SDK](https://docs.canton.network/sdks-tools/sdks/dapp-sdk/overview), [PartyLayer](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/README.md), [Console](https://unpkg.com/@console-wallet/dapp-sdk@2.4.0/README.md).

## Scope and versions

Snapshot checked **2026-10-05** with `npm view`:

* Sigilry: [`@sigilry/dapp` 3.4.0](https://registry.npmjs.org/@sigilry%2Fdapp/3.4.0), [`@sigilry/react` 3.2.2](https://registry.npmjs.org/@sigilry%2Freact/3.2.2), and [`@sigilry/cli` 0.3.3](https://registry.npmjs.org/@sigilry%2Fcli/0.3.3).
* DA: [`@canton-network/dapp-sdk` 1.7.1](https://registry.npmjs.org/@canton-network%2Fdapp-sdk/1.7.1). This is the official Canton dApp SDK linked from [Canton’s introduction to CIP-0103](https://www.canton.network/blog/scaling-canton-apps-with-a-standard-for-wallet-and-app-interoperability) and documented in the [Canton developer docs](https://docs.canton.network/sdks-tools/sdks/dapp-sdk/overview).
* PartyLayer: [`@partylayer/sdk` 0.19.0](https://registry.npmjs.org/@partylayer%2Fsdk/0.19.0). The cells below describe documentation at [source commit `c0d6ddd`](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/README.md), not verified behavior of that npm release or every PartyLayer package.
* Console: [`@console-wallet/dapp-sdk` 2.4.0](https://registry.npmjs.org/@console-wallet%2Fdapp-sdk/2.4.0), with its [versioned README](https://unpkg.com/@console-wallet/dapp-sdk@2.4.0/README.md) and [distributed type declarations](https://unpkg.com/@console-wallet/dapp-sdk@2.4.0/dist/esm/index.d.ts).

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.

## Documented capabilities

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

| Capability                             | Sigilry                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | `@canton-network/dapp-sdk` (DA)                                                                                                                                                                                                                                                                                         | PartyLayer                                                                                                                                                                                                                                                                                                                                                                                                                                            | `@console-wallet/dapp-sdk`                                                                                                                                                                                                                              |
| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Main integration surface / CIP-0103    | Typed CIP-0103 provider and RPC client/server toolkit. [Docs](https://sigilry.org/packages/dapp)                                                                                                                                                                                                                                                                                                                                                                                | High-level API over CIP-0103 providers and adapters. [Docs](https://docs.canton.network/sdks-tools/sdks/dapp-sdk/overview)                                                                                                                                                                                              | Native CIP-0103 provider plus adapter-based client/bridge. [Provider](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/packages/provider/README.md)                                                                                                                                                                                                                                                             | Console Wallet API; README states CIP-0103 compatibility. [README](https://unpkg.com/@console-wallet/dapp-sdk@2.4.0/README.md)                                                                                                                          |
| Licence / inspectable implementation   | MIT; public source. [Metadata](https://registry.npmjs.org/@sigilry%2Fdapp/3.4.0), [source](https://github.com/sigilry/sigilry/blob/c264b6e83b43f4c18818609bf8d8daaf1d7751fd/packages/dapp/package.json)                                                                                                                                                                                                                                                                         | Apache-2.0; public source. [Metadata](https://registry.npmjs.org/@canton-network%2Fdapp-sdk/1.7.1), [source](https://github.com/canton-network/wallet/blob/d8b41d9a375f66c994442f20c930c83653559b07/sdk/dapp-sdk/README.md)                                                                                             | MIT; public source. [README](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/README.md)                                                                                                                                                                                                                                                                                                                        | ISC; distributed JS/types inspectable. Public development repository: **unknown** from metadata. [Metadata](https://registry.npmjs.org/@console-wallet%2Fdapp-sdk/2.4.0), [types](https://unpkg.com/@console-wallet/dapp-sdk@2.4.0/dist/esm/index.d.ts) |
| Wallet discovery and selection         | Discovery store, provider selection, React `WalletPicker`. [dApp](https://sigilry.org/packages/dapp), [React](https://sigilry.org/packages/react)                                                                                                                                                                                                                                                                                                                               | Announced browser wallets, remote wallets, configurable adapters; built-in picker Web Component. [Discovery](https://docs.canton.network/sdks-tools/sdks/dapp-sdk/guides/wallet-discovery), [README](https://github.com/canton-network/wallet/blob/d8b41d9a375f66c994442f20c930c83653559b07/sdk/dapp-sdk/README.md)     | Injected-provider discovery, registry/adapters, React modal and `ConnectButton`. [Provider](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/packages/provider/README.md), [React](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/packages/react/README.md), [README](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/README.md) | Console extension availability; local, remote, or combined target. General multi-wallet picker: **unknown**. [README](https://unpkg.com/@console-wallet/dapp-sdk@2.4.0/README.md)                                                                       |
| Transport / remote connection          | Documented `WindowTransport` and custom `RpcTransport` seam; `WalletConnectTransport` exported in inspected source. [Docs](https://sigilry.org/concepts/transports), [exports](https://github.com/sigilry/sigilry/blob/c264b6e83b43f4c18818609bf8d8daaf1d7751fd/packages/dapp/src/transport/index.ts)                                                                                                                                                                           | Browser postMessage, remote HTTP/SSE; optional WalletConnect adapter. [README](https://github.com/canton-network/wallet/blob/d8b41d9a375f66c994442f20c930c83653559b07/sdk/dapp-sdk/README.md), [discovery](https://docs.canton.network/sdks-tools/sdks/dapp-sdk/guides/wallet-discovery)                                | Native sync/async flows; opt-in WalletConnect adapter. Legacy provider bridge is sync-only. [README](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/README.md), [adapter](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/packages/adapters/walletconnect/README.md)                                                                                                   | Browser postMessage and mobile QR/deep-link flow. Generic WalletConnect adapter: **unknown**. [README](https://unpkg.com/@console-wallet/dapp-sdk@2.4.0/README.md)                                                                                      |
| React integration                      | `@sigilry/react` context/hooks using TanStack Query. [Docs](https://sigilry.org/packages/react)                                                                                                                                                                                                                                                                                                                                                                                 | Framework-agnostic SDK and picker usable in React. Dedicated React hooks package: **unknown** in inspected SDK docs. [Overview](https://docs.canton.network/sdks-tools/sdks/dapp-sdk/overview), [README](https://github.com/canton-network/wallet/blob/d8b41d9a375f66c994442f20c930c83653559b07/sdk/dapp-sdk/README.md) | Hooks/components; separate TanStack Query entry point. [React](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/packages/react/README.md)                                                                                                                                                                                                                                                                       | Typed application SDK. Dedicated React hooks package: **unknown** in inspected README/exports. [README](https://unpkg.com/@console-wallet/dapp-sdk@2.4.0/README.md), [types](https://unpkg.com/@console-wallet/dapp-sdk@2.4.0/dist/esm/index.d.ts)      |
| Ledger reads / application data        | `ledgerApi`; React ledger and active-contract hooks. [dApp](https://sigilry.org/packages/dapp), [React](https://sigilry.org/packages/react)                                                                                                                                                                                                                                                                                                                                     | Wallet-session JSON Ledger API proxy. [Overview](https://docs.canton.network/sdks-tools/sdks/dapp-sdk/overview)                                                                                                                                                                                                         | Native-provider `ledgerApi`; legacy bridge differs. Query hooks wrap application-supplied fetchers. [README](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/README.md), [React](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/packages/react/README.md)                                                                                                              | `ledgerApi`, contract, balance, and history methods. [README](https://unpkg.com/@console-wallet/dapp-sdk@2.4.0/README.md), [types](https://unpkg.com/@console-wallet/dapp-sdk@2.4.0/dist/esm/index.d.ts)                                                |
| Daml types / action abstraction        | CLI 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](https://sigilry.org/packages/cli), [codegen](https://github.com/sigilry/sigilry/blob/c264b6e83b43f4c18818609bf8d8daaf1d7751fd/packages/cli/src/codegen.ts), [config](https://github.com/sigilry/sigilry/blob/c264b6e83b43f4c18818609bf8d8daaf1d7751fd/packages/cli/src/config.ts) | Typed SDK calls. Automatic DAR-to-typed create/exercise binding generation: **unknown** in inspected SDK README. [README](https://github.com/canton-network/wallet/blob/d8b41d9a375f66c994442f20c930c83653559b07/sdk/dapp-sdk/README.md)                                                                                | `requestTransfer` intent API, gated by wallet capability. Generic generated DAR choice bindings: **unknown** in this transfer guide. [Transfer guide](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/docs/typed-transfer.md)                                                                                                                                                                                  | Typed request/response exports. Automatic DAR-to-typed choice binding generation: **unknown** in inspected README. [README](https://unpkg.com/@console-wallet/dapp-sdk@2.4.0/README.md)                                                                 |
| Account / status / transaction updates | Provider events and React subscription helpers. [dApp](https://sigilry.org/packages/dapp), [React](https://sigilry.org/packages/react)                                                                                                                                                                                                                                                                                                                                          | Status, account, and transaction subscriptions. [README](https://github.com/canton-network/wallet/blob/d8b41d9a375f66c994442f20c930c83653559b07/sdk/dapp-sdk/README.md)                                                                                                                                                 | Provider and client events, plus the legacy provider bridge. [Provider](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/packages/provider/README.md), [README](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/README.md)                                                                                                                                               | Account, connection, and transaction callbacks. [README](https://unpkg.com/@console-wallet/dapp-sdk@2.4.0/README.md)                                                                                                                                    |

Console documents wallet-side encryption/decryption and batch transaction signing. [Console README](https://unpkg.com/@console-wallet/dapp-sdk@2.4.0/README.md). Message signing is also documented by [Sigilry](https://sigilry.org/packages/dapp), [DA](https://docs.canton.network/sdks-tools/sdks/dapp-sdk/overview), and [PartyLayer](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/README.md); this table does not compare algorithms or encodings. Include Console’s additional signing APIs in an evaluation when the application needs them.

## Choose by required surface

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](https://sigilry.org/packages/dapp), [transports](https://sigilry.org/concepts/transports), [React](https://sigilry.org/packages/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](https://www.canton.network/blog/scaling-canton-apps-with-a-standard-for-wallet-and-app-interoperability), [README](https://github.com/canton-network/wallet/blob/d8b41d9a375f66c994442f20c930c83653559b07/sdk/dapp-sdk/README.md), [discovery](https://docs.canton.network/sdks-tools/sdks/dapp-sdk/guides/wallet-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](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/packages/provider/README.md), [README](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/README.md), [React](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/packages/react/README.md).
* Evaluate **Console’s SDK** for Console-specific accounts, queries, mobile QR/deep links, and its additional signing/encryption APIs. [README](https://unpkg.com/@console-wallet/dapp-sdk@2.4.0/README.md).

## 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](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/docs/typed-transfer.md), [DA discovery](https://docs.canton.network/sdks-tools/sdks/dapp-sdk/guides/wallet-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.

## Understand the type boundary

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](https://sigilry.org/packages/dapp), [CLI](https://sigilry.org/packages/cli), [codegen](https://github.com/sigilry/sigilry/blob/c264b6e83b43f4c18818609bf8d8daaf1d7751fd/packages/cli/src/codegen.ts), [PartyLayer transfers](https://github.com/PartyLayer/PartyLayer/blob/c0d6ddd9caa44e508d53b1586638011dbc6ee0a5/docs/typed-transfer.md).

## Sources and corrections

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](https://github.com/sigilry/sigilry/issues).
