Now Open Source

One SDK for every supported Canton wallet.

CIP-0103 compliant wallet integration for Canton. One installation includes supported wallet runtimes and a branded Connect Wallet experience.

View Documentation
yourapp.canton

Connect Wallet

UI preview. Open the live picker to see wallets for your selected network.

Architecture

How PartyLayer Works

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

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

export default function App() {
  return (
    <PartyLayerKit network="devnet" appName="My dApp">
      <ConnectButton />
    </PartyLayerKit>
  );
}
Available Hooks
useConnect()
useSession()
useDisconnect()
useWallets()
useSignMessage()
usePartyLayer()
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

Supported wallet runtimes included. Availability follows your network, channel and application configuration.

CIP-0103 Standard

Full CIP-0103 compliance with a typed provider interface, native requests and events. Available operations follow the connected wallet’s capabilities.

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

Canton wallets in the PartyLayer registry, with beta integrations marked below.

Wallet providers can apply for registry inclusion. Learn more →

Developer quickstart

Add wallet connectivity to your Canton dapp in minutes.

1npm install @partylayer/react @tanstack/react-query
2
3# or with yarn
4yarn add @partylayer/react @tanstack/react-query
5
6# or with pnpm
7pnpm add @partylayer/react @tanstack/react-query
Coming from RainbowKit? Build on Canton →Get integration help →

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.

PartyLayer provides a ready-made React Connect Wallet button, picker, account menu, themes and supported wallet runtimes in one installation. It follows CIP-0103 for Canton wallet integration. PartyLayer is independent from RainbowKit; EVM methods and complete feature parity are not implied. Start with the RainbowKit for Canton guide in our documentation.

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. Choose the target network explicitly. The catalog filters wallets by network support, while the account UI reports the wallet's actual network and guards incompatible operations.

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. Use the generic CIP-0103 announce or official provider-adapter path, provide registry metadata, and run conformance checks. No new PartyLayer-specific wallet package is required. See the generic provider guide in our docs.

Still have questions? Start a discussion on GitHub