Skip to content
Documentation/canton-network-docs/SDKsdApp SDKView on canton-network-docs
canton-network-docs/SDKsdApp SDK

Quickstart

This is the shortest working integration: install the SDK, initialize it, let the user connect a wallet, read their party, and submit a transaction. It uses only the high-level SDK. You do not need the Provider API to build a dApp.
1

Install the SDK

  • npm
  • yarn
  • pnpm
npm install @canton-network/dapp-sdk
2

Initialize on app load

Call init() once, early in your app’s lifecycle. This registers the default wallet adapters and silently restores a previous session without opening the wallet picker.
import * as sdk from '@canton-network/dapp-sdk'

await sdk.init()
3

Connect a wallet

Call connect() in response to a user action (for example, a “Connect wallet” button). This opens the wallet picker and runs the authentication flow.
async function onConnectClick() {
    const result = await sdk.connect()
    console.log('Connected:', result.isConnected)
}
4

Read the connected party

Once connected, read the account the user marked as primary.
const account = await sdk.getPrimaryAccount()
console.log('Primary party:', account.partyId)
5

Submit a transaction

Use prepareExecute() to submit Daml commands. The SDK prepares the transaction, asks the user to approve and sign it in their wallet, and submits it to the ledger.
const account = await sdk.getPrimaryAccount()

await sdk.prepareExecute({
    commands: [
        {
            CreateCommand: {
                templateId: '#AdminWorkflows:Canton.Internal.Ping:Ping',
                createArguments: {
                    id: `ping-${Date.now()}`,
                    initiator: account.partyId,
                    responder: account.partyId,
                },
            },
        },
    ],
})
This example uses the built-in Ping template to prove the round-trip works. For a real dApp, submit commands from your own Daml package. See Parties & transactions for details.
6

Handle disconnect

Let the user end their session.
async function onDisconnectClick() {
    await sdk.disconnect()
}

Next steps

  • Connect & Sessions — Connect, restore sessions, check status, and disconnect.
  • Parties & Transactions — Work with parties, sign messages, execute transactions, and query the ledger.
  • Wallet Discovery — Customize the wallet picker and add WalletConnect or custom remote wallets.