wallet-integration

Installation
SKILL.md

Wallet Integration

What This Is

Connecting an external wallet to your dapp so the user approves actions in the wallet rather than handing your app a key. @icp-sdk/signer is the relying-party client: your app is the relying party, the wallet is the signer, and they exchange JSON-RPC 2.0 messages over a transport defined by the ICRC signer standards.

This skill covers integrating a signer. Implementing one is out of scope — consent screens, prompt registration and account custody are the wallet's job.

Examples use OISY (https://oisy.com/sign), but nothing here is OISY-specific. For another web signer the transport URL is usually the only change, and BrowserExtensionTransport discovers extension signers you never hardcoded. What a given signer actually supports is a separate question from which transport reaches it — negotiate it rather than assuming (see Negotiate capabilities and pitfall 5).

Standard What it gives you API
ICRC-25 Capability discovery + permission lifecycle getSupportedStandards, requestPermissions, getPermissions
ICRC-27 The user's accounts getAccounts
ICRC-29 Popup transport over postMessage PostMessageTransport
ICRC-49 Execute a canister call SignerAgent (or callCanister, the raw primitive)
ICRC-94 Browser-extension discovery BrowserExtensionTransport.discover
ICRC-167 Top-level redirect transport UrlTransport (new in signer 6)
Installs
263
GitHub Stars
36
First Seen
Mar 4, 2026
wallet-integration — dfinity/icskills