- Re-scanning the same QR code — each URI is unique and can be used only once.
- Wallet cache — the wallet may keep a history of connections.
- Program not restarted — the previous URI is still in memory.
Each run creates a new unique URI with a unique:
symKey(random 32 bytes)topic(SHA256 hash ofsymKey)expiryTimestamp(current time + 5 minutes)
In Qubic Wallet:
- Open settings
- Find the “WalletConnect” / “Connections” section
- Delete all old sessions
- Or restart the wallet
The program prints a unique connection ID:
🆔 Connection unique ID: e10bf2f3a1c3b1bd656d3d0100b642ec...
Make sure the ID is different every time.
- Wrong URI format — must match WalletConnect v2.
- Missing required parameters
- Wrong parameter order
The URI must look like:
wc:<topic>@2?expiryTimestamp=<unix>&relay-protocol=irn&symKey=<hex>
Parameter order matters:
expiryTimestamp— firstrelay-protocol— secondsymKey— third
Wallet deep link:
qubic-wallet://wc?uri=<encoded_wc_uri>
- QR code wasn’t scanned within 120 seconds
- Network issues — no internet
- Wallet does not support WalletConnect v2
- Scan the QR faster — you have 120 seconds
- Check internet on both phone and computer
- Update the wallet to the latest version
- Use a deep link instead of a QR code:
qubic-wallet://wc?uri=<encoded_wc_uri>
- Connection is never established
- Initialization errors
- Get your Project ID at https://cloud.walletconnect.com/
- Set an environment variable:
set WALLETCONNECT_PROJECT_ID=your_project_id- Verify the Project ID is active in the WalletConnect Cloud dashboard
set RUST_LOG=debug
cargo runIn debug mode you should see:
symKey— 64 hex chars (32 bytes)topic— 64 hex chars (SHA256 hash)
- WalletConnect docs: https://docs.walletconnect.com/
- Reown docs: https://docs.reown.com/
# Run with debug logs
set RUST_LOG=debug
cargo run
# Release build (faster)
cargo build --release
# Clean and rebuild
cargo clean
cargo build
# Run examples
cargo run --example wallet_connect_basic