@reown/walletkit
Description
The WalletKit SDK streamlines the integration process, making it easier for wallet developers to include the authentication and transaction signing features necessary for their users to connect and interact with all sorts of apps — now and in the future.
Getting Started
Install
npm install @reown/walletkit
Wallet Usage
import { Core } from "@walletconnect/core";
import { WalletKit } from "@reown/walletkit";
const core = new Core({
projectId: process.env.PROJECT_ID,
});
const walletkit = await WalletKit.init({
core,
metadata: {
name: "Demo app",
description: "Demo Client as Wallet/Peer",
url: "www.walletconnect.com",
icons: [],
},
});
walletkit.on("session_proposal", async (proposal) => {
const session = await walletkit.approveSession({
id: proposal.id,
namespaces,
});
});
await walletkit.pair({ uri });
walletkit.on("session_proposal", async (proposal) => {
const session = await walletkit.rejectSession({
id: proposal.id,
reason: getSdkError("USER_REJECTED_METHODS"),
});
});
await walletkit.disconnectSession({
topic,
reason: getSdkError("USER_DISCONNECTED"),
});
- Responding to Sign Session Requests
walletkit.on("session_request", async (event) => {
const { id, method, params } = event.request;
await walletkit.respondSessionRequest({ id, result: response });
});
await walletkit.updateSession({ topic, namespaces: newNs });
await walletkit.extendSession({ topic });
await walletkit.emitSessionEvent({
topic,
event: {
name: "accountsChanged",
data: ["0xab16a96D359eC26a11e2C2b3d8f8B8942d5Bfcdb"],
},
chainId: "eip155:1",
});
walletkit.on("session_proposal", handler);
walletkit.on("session_request", handler);
walletkit.on("session_delete", handler);