> ## Documentation Index
> Fetch the complete documentation index at: https://docs.canton.network/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Install the Wallet SDK, configure it, create a key pair and party, and create and submit a transfer.

## Prerequisites

* Node.js (v18+)
* A running Canton validator node (either self-hosted or via a node-as-a-service provider). Any network validator
  can be used -- [Splice LocalNet](/sdks-tools/development-tools/localnet) is convenient for development and testing,
  but DevNet, TestNet, or MainNet validators work as well.

## Installation

The Wallet SDK is available as a package on the NPM registry. You can install it using your preferred package manager.

<Tabs>
  <Tab title="npm">
    ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
    npm install @canton-network/wallet-sdk
    ```
  </Tab>

  <Tab title="yarn">
    ```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
    yarn add @canton-network/wallet-sdk
    ```
  </Tab>

  <Tab title="pnpm">
    ```shell theme={"theme":{"light":"github-light","dark":"github-dark"}}
    pnpm add @canton-network/wallet-sdk
    ```
  </Tab>
</Tabs>

Alternatively, to do dApp development only, the dApp SDK can be used which has a smaller bundle size and is optimized for browser usage. The dApp SDK can be installed with:

<Tabs>
  <Tab title="npm">
    ```shell theme={"theme":{"light":"github-light","dark":"github-dark"}}
    npm install @canton-network/dapp-sdk
    ```
  </Tab>

  <Tab title="yarn">
    ```shell theme={"theme":{"light":"github-light","dark":"github-dark"}}
    yarn add @canton-network/dapp-sdk
    ```
  </Tab>

  <Tab title="pnpm">
    ```shell theme={"theme":{"light":"github-light","dark":"github-dark"}}
    pnpm add @canton-network/dapp-sdk
    ```
  </Tab>
</Tabs>

Both SDKs use the same underlying core packages and where only partial code is needed (like for transaction visualization or hash verification) those packages can be used independently.

## Configuration

The SDK requires configuration for authentication, ledger access, and token standard connectivity. For local development against a Splice LocalNet,
you can use the built-in defaults:

```typescript theme={"theme":{"light":"github-light","dark":"github-dark"}}
import {
    WalletSDKImpl,
    localNetAuthDefault,
    localNetLedgerDefault,
    localNetTokenStandardDefault,
    localValidatorDefault,
} from '@canton-network/wallet-sdk'

const sdk = new WalletSDKImpl().configure({
    logger: console,
    authFactory: localNetAuthDefault,
    ledgerFactory: localNetLedgerDefault,
    tokenStandardFactory: localNetTokenStandardDefault,
    validatorFactory: localValidatorDefault,
})
```

When moving to a production or non-LocalNet environment, you need custom factory functions that point to your specific endpoints. See
[Configuration](/sdks-tools/sdks/wallet-sdk/using-the-sdk/configuration) for details.

## Next steps

* [Guides](/sdks-tools/sdks/wallet-sdk/guides/creating-an-external-party) — See how to create external parties, read data, signing transactions, and more
* [Using the SDK: Configuration](/sdks-tools/sdks/wallet-sdk/using-the-sdk/configuration) — configure the SDK for other environments
