import React from 'react'; import { HashinalsWalletConnectSDK } from '@hashgraphonline/hashinal-wc'; import type { SignClientTypes } from '@walletconnect/types'; import { LedgerId } from '@hashgraph/sdk'; import { Logger } from '@hashgraphonline/standards-sdk'; const currentOrigin = ((): string => { try { if (typeof window !== 'undefined' && window.location && window.location.origin) { return window.location.origin; } } catch {} return 'http://localhost'; })(); const meta: SignClientTypes.Metadata = { name: 'HOL Repro', description: 'WC Modal Repro', url: currentOrigin.startsWith('file:') ? 'http://localhost' : currentOrigin, icons: ['https://hashgraph.online/icon.png'], }; const logger = new Logger({ module: 'WcReproPage' }); export const WcReproPage: React.FC = () => { const [busy, setBusy] = React.useState(false); const [error, setError] = React.useState(null); const [attestationUrl, setAttestationUrl] = React.useState(''); const [embedUrl, setEmbedUrl] = React.useState(''); const handleOpen = async (): Promise => { if (busy) { return; } setBusy(true); setError(null); try { const pid = ((): string => { try { const saved = localStorage.getItem('app-config'); if (saved) { const cfg = JSON.parse(saved); const maybe = cfg && cfg.walletConnect && cfg.walletConnect.projectId; if (typeof maybe === 'string' && maybe.trim()) { return String(maybe).trim(); } } } catch {} return '610b20415692c366e3bf97b8208cada5'; })(); const sdk = HashinalsWalletConnectSDK.getInstance(); sdk.setLogLevel('debug'); logger.info('pid', pid); const connector = await sdk.init(pid, meta, LedgerId.TESTNET); logger.info('saved DAppConnector', connector); await connector.openModal(); } catch (e) { setError(e instanceof Error ? e.message : String(e)); } finally { setBusy(false); } }; return (

WalletConnect Modal Repro

{error ?
{error}
: null}

Embed verify iframe manually

Paste the latest verify.walletconnect.org attestation URL from logs:

setAttestationUrl(e.target.value)} />
{embedUrl ? (