Skip to content

Latest commit

 

History

History
105 lines (77 loc) · 2.72 KB

File metadata and controls

105 lines (77 loc) · 2.72 KB
title Quickstart
description Install the dApp SDK and build a working wallet connection in a few minutes.

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.

Install the SDK

npm

npm install @canton-network/dapp-sdk

yarn

yarn add @canton-network/dapp-sdk

pnpm

pnpm add @canton-network/dapp-sdk

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()

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)
}

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)

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,
                },
            },
        },
    ],
})

Note

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.

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.