diff --git a/public/assets/wallet.js b/public/assets/wallet.js
index dac589b..f9dddd8 100644
--- a/public/assets/wallet.js
+++ b/public/assets/wallet.js
@@ -91,7 +91,12 @@ window.IAPWallet = (function () {
const list = providerList();
let cfg = null;
try { cfg = await IAP.getConfig(); } catch (e) {}
- const wcOn = !!(cfg && String(cfg.walletConnectProjectId || '').trim());
+ // WalletConnect only works on chains external wallets recognize (Polygon
+ // mainnet 137 / Amoy testnet 80002). On the private rehearsal chain (31337)
+ // wallets reject the session ("user rejected"), so we keep to the injected
+ // path there and light WC up automatically once we're on a public chain.
+ const WC_CHAINS = [137, 80002];
+ const wcOn = !!(cfg && String(cfg.walletConnectProjectId || '').trim() && WC_CHAINS.includes(Number(cfg.chainId)));
if (wcOn) list.push({ info: { name: 'WalletConnect — scan a QR or open your wallet app', __wc: true } });
if (!list.length) throw new Error('No wallet found. Open this page in your wallet app (Trust, MetaMask, SafePal, Phantom, OKX, TokenPocket) or install a wallet extension.');
const pick = list.length === 1 ? list[0] : await pickModal(list);
diff --git a/public/index.html b/public/index.html
index b96fdee..e866d20 100644
--- a/public/index.html
+++ b/public/index.html
@@ -439,7 +439,7 @@
-
+