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.