Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

connect/walletconnect

Native WalletConnect v2 for Stacks. Separate entry so it tree-shakes when unused.

import { connect, setProvider } from "@secondlayer/stacks/connect";
import { WalletConnectProvider, showModal } from "@secondlayer/stacks/connect/walletconnect";
 
const wc = new WalletConnectProvider({
  projectId: "your-reown-project-id", // from cloud.reown.com
  metadata: { name: "My App", description: "...", url: "https://myapp.com", icons: [] },
});
 
// Restore existing session or pair new one
if (!wc.restore()) {
  const { uri, approval } = await wc.pair();
  showModal({ wcUri: uri, onClose: () => {} });
  await approval;
}
 
setProvider(wc);
const { addresses } = await connect();

The built-in modal shows browser extension wallets alongside the WC QR code. Users pick whichever they prefer.

Exports

WalletConnectProvider, WcSession, WcRelay, qrSvg, showModal, hideModal, and related types (WcProviderConfig, WcMetadata, WcPairResult, WcSessionSettled, WcSessionData).

See also WalletConnect guide and connect.