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.