- Discover available wallets: browser extensions, remote wallets, and WalletConnect.
- Connect and restore sessions: open a wallet picker and reconnect returning users silently.
- Access the user’s parties: list accounts and read the primary party. A party is a user’s identity on the Canton ledger.
- Request signatures: sign human-readable messages.
- Prepare and execute transactions: submit Daml commands for user approval.
- Call the JSON Ledger API: proxy authenticated requests through the user’s wallet session.
The SDK is framework agnostic and works with any browser-based application, including
React, Next.js, Vue, Svelte, or vanilla TypeScript.
How it fits together
Your application talks to the SDK. The SDK speaks the CIP-103 provider protocol to whichever wallet the user chose, and the wallet remains solely responsible for authorization and signing.
Wallets connect in one of two ways:
- Browser wallets run in the user’s browser, such as a browser extension. They make themselves discoverable by announcing to the dApp.
- Remote wallets are server-side wallets reached over a CIP-103 RPC endpoint.
The SDK is built over the CIP-103 provider API. Most dApps should use the SDK. Use the
Provider API directly only when building
lower-level infrastructure or adapting an existing provider-based integration.