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.