Latest Threat ResearchGlassWorm Loader Hits Open VSX via Developer Account Compromise.Details
Socket
Book a DemoInstallSign in
Socket

@reown/walletkit

Package Overview
Dependencies
Maintainers
3
Versions
67
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@reown/walletkit

WalletKit for WalletConnect Protocol

latest
Source
npmnpm
Version
1.5.0
Version published
Weekly downloads
62K
-8.66%
Maintainers
3
Weekly downloads
 
Created
Source

@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

  • Initialization
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, // <- pass the shared `core` instance
  metadata: {
    name: "Demo app",
    description: "Demo Client as Wallet/Peer",
    url: "www.walletconnect.com",
    icons: [],
  },
});
  • Sign Session Approval
walletkit.on("session_proposal", async (proposal) => {
  const session = await walletkit.approveSession({
    id: proposal.id,
    namespaces,
  });
});
await walletkit.pair({ uri });
  • Sign Session Rejection
walletkit.on("session_proposal", async (proposal) => {
  const session = await walletkit.rejectSession({
    id: proposal.id,
    reason: getSdkError("USER_REJECTED_METHODS"),
  });
});
  • Sign Session Disconnect
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 });
});
  • Updating a Sign Session
await walletkit.updateSession({ topic, namespaces: newNs });
  • Updating a Sign Session
await walletkit.extendSession({ topic });
  • Emit Sign Session Events
await walletkit.emitSessionEvent({
  topic,
  event: {
    name: "accountsChanged",
    data: ["0xab16a96D359eC26a11e2C2b3d8f8B8942d5Bfcdb"],
  },
  chainId: "eip155:1",
});
  • Handle Sign Events
walletkit.on("session_proposal", handler);
walletkit.on("session_request", handler);
walletkit.on("session_delete", handler);

WalletConnect Pay

WalletKit includes built-in support for WalletConnect Pay, enabling wallets to handle payment requests.

  • Detecting Payment Links
import { isPaymentLink } from "@reown/walletkit";

// Use when handling a scanned QR code or deep link
if (isPaymentLink(uri)) {
  // Handle as payment (see below)
} else {
  // Handle as WalletConnect pairing
  await walletkit.pair({ uri });
}
  • Getting Payment Options
const options = await walletkit.pay.getPaymentOptions({
  paymentLink: "https://pay.walletconnect.com/...",
  accounts: ["eip155:1:0x...", "eip155:8453:0x..."],
  includePaymentInfo: true,
});

// options.paymentId - unique payment identifier
// options.options - array of payment options (different tokens/chains)
// options.info - payment details (amount, merchant, expiry)
  • Getting Required Actions
const actions = await walletkit.pay.getRequiredPaymentActions({
  paymentId: options.paymentId,
  optionId: options.options[0].id,
});

// actions - array of wallet RPC calls to sign
// Each action contains: { walletRpc: { chainId, method, params } }
  • Confirming Payment
// Sign the required actions and collect signatures
const signatures = await signActions(actions);

const result = await walletkit.pay.confirmPayment({
  paymentId: options.paymentId,
  optionId: options.options[0].id,
  signatures,
});

// result.status - "succeeded" | "processing" | "failed" | "expired"
// result.isFinal - whether the payment is complete
// result.pollInMs - if not final, poll again after this delay

Keywords

wallet

FAQs

Package last updated on 21 Jan 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts