Now Open Source

One SDK for every Canton wallet.

CIP-0103 compliant wallet integration for Canton: registry-backed, verified wallets, and a clean developer experience.

View Documentation
yourapp.canton

Connect Wallet

Select a wallet to connect to this dapp.

Architecture

How PartyLayer Works

From your first line of code to a connected wallet: the entire flow, abstracted.

Quick Integration
import { PartyLayerKit } from '@partylayer/react'

// Wrap your app, done.
<PartyLayerKit network="mainnet">
  <App />
</PartyLayerKit>
Available Hooks
useConnect()
useSession()
useDisconnect()
useWallets()
useSign()
useProvider()
Core Capabilities
connect / disconnect
Session lifecycle management
signMessage
Arbitrary message signing
prepareExecute
Transaction preparation & execution
CIP-0103 Bridge
Native provider passthrough
Transport Types
InjectedQR CodeDeep LinkOAuth2CIP-0103 Native
Supported Wallets
Click any node to explore

Open Source

MIT licensed. View, fork, and contribute on GitHub.

Registry-Backed

Schema-validated wallet registry, published in public and served from one origin.

Multi-Wallet

Console, Send, Loop, Cantor8, Nightly, Bron: one integration for all.

CIP-0103 Standard

Full CIP-0103 compliance with 10 methods, 4 events, and typed error model.

TypeScript-First

Branded types, strict mode, and full IntelliSense for every API surface.

Theme System

Light, dark, and auto themes with fully customizable design tokens.

Supported wallets

All verified wallets in the Canton ecosystem, unified behind a single interface.

Wallet providers can apply for registry inclusion. Learn more →

Developer quickstart

Add wallet connectivity to your Canton dapp in minutes.

1npm install @partylayer/sdk @partylayer/react
2
3# or with yarn
4yarn add @partylayer/sdk @partylayer/react
5
6# or with pnpm
7pnpm add @partylayer/sdk @partylayer/react

Interactive demo

Try the wallet connection flow right here: click Connect Wallet to see the modal in action.

Your dApp

Click the button to open the wallet connection modal.

Select a wallet, see the connecting animation, and get a success confirmation

Frequently asked questions

Everything you need to know about PartyLayer.

Yes! PartyLayer is fully open source under the MIT license. You can view the source code, submit issues, and contribute on GitHub. We believe in transparency and community-driven development.

The registry is a JSON manifest of wallet metadata, served from a single HTTPS origin and published from a public repository, so every change to it is visible in commit history. Each entry is validated against a JSON Schema on every build, and a gate blocks the removal of a wallet's CIP-0103 native flag, because losing that flag silently downgrades how the SDK detects it. The client also supports Ed25519 signature verification, but that path only runs when a consumer configures registryPublicKeys, and no signature is published today. Treat the registry as a version-controlled list served over TLS, not as a cryptographically attested one.

PartyLayer supports all Canton networks including mainnet, testnet, and devnet environments. The SDK automatically detects the connected network and adapts accordingly. Each wallet adapter handles network-specific connection logic.

Common error codes include WALLET_NOT_INSTALLED (wallet app not detected), USER_REJECTED (user declined connection), SESSION_EXPIRED (session timed out), and TRANSPORT_ERROR (communication failure). All errors are typed and documented in the SDK.

The suite covers origin allowlisting and session binding, transport handling, and registry schema validation, and it runs on every build. Registry signature verification is implemented in the client but is not exercised in production, because no signature is published and nothing configures registryPublicKeys. See the security checklist in the docs for what is enforced today.

Wallet providers can apply for registry inclusion by submitting a pull request to the PartyLayer repository. Requirements include implementing the standard adapter interface, passing conformance tests, and providing wallet metadata. See the wallet-provider-guide in our docs.

Still have questions? Start a discussion on GitHub