
Wallet Integration
This handles the popup-based signer model on the Internet Computer using ICRC-21/25/27/29/49 standards via @dfinity/oisy-wallet-signer. Every action triggers a user approval dialog, so it fits funding flows, token transfers, and NFT mints where confirmation dialogs feel natural. It's not for sessions, high-frequency interactions, or background writes. The main gotcha is that classes like Signer, IcpWallet, and IcrcWallet must be imported from dedicated subpaths, not the main entry point, or you'll get undefined. The skill covers the full lifecycle from connect through permission requests to transaction approval, plus the consent message state machine. Good if your app can handle explicit approval on every meaningful action.
- skills.sh installs
- 293
- GitHub stars
- 39
- last updated
- Aug 21, 2026
Install
$ npx -y skills add dfinity/icskills --skill wallet-integration --agent claude-codeInstalls into .claude/skills of the current project.
Files
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).
Sponsors
Details
- Repository
- github.com/dfinity/icskills
- Categories
- Backend & APIs, Web3 & Blockchain
- First seen
- Jun 3, 2026