Connecting to CL8Y DEX on mobile using Lunc Dash: WalletConnect shows QR only, requires a second device #519

Closed
opened 2026-08-14 15:38:20 +00:00 by leonardocolucci · 21 comments
leonardocolucci commented 2026-08-14 15:38:20 +00:00 (Migrated from gitlab.com)

Summary

On a mobile browser, connecting to CL8Y DEX with Lunc Dash via WalletConnect presents only a QR code. The wallet is on the same device as the browser, so there is nothing to scan it with — connecting currently requires a second device (community report via X, @MIJAGI99; desktop→phone scanning confirmed working, same-device mobile does not).

Expected (standard WalletConnect mobile UX)

On mobile viewports/user-agents, the pairing modal should offer, alongside or instead of the QR:

  1. Wallet deep-link buttons — open the wc: pairing URI directly in installed wallet apps (Lunc Dash, Keplr Mobile, Galaxy Station, etc.) via their registered deep-link/universal-link schemes, then return to the browser to complete the session.
  2. "Copy pairing link" fallback — user pastes it into the wallet's WalletConnect input manually.
  3. QR remains the desktop path, unchanged.

Workaround (worth documenting until fixed)

Open the dApp inside a wallet's in-app browser (e.g. Keplr → browser → navigate to the dApp → Connect Wallet), which connects same-device without pairing.

Notes

WalletConnect's own modal libraries (@walletconnect/modal / Web3Modal, or Reown AppKit) ship this mobile behavior out of the box — if the frontend renders its own QR dialog, switching to the library modal on mobile may be the cheapest fix. If Lunc Dash hasn't registered a deep-link scheme with the WalletConnect registry, the copy-link fallback still covers it.

## Summary On a mobile browser, connecting to CL8Y DEX with Lunc Dash via WalletConnect presents only a QR code. The wallet is on the **same device** as the browser, so there is nothing to scan it with — connecting currently requires a second device (community report via X, @MIJAGI99; desktop→phone scanning confirmed working, same-device mobile does not). ## Expected (standard WalletConnect mobile UX) On mobile viewports/user-agents, the pairing modal should offer, alongside or instead of the QR: 1. **Wallet deep-link buttons** — open the `wc:` pairing URI directly in installed wallet apps (Lunc Dash, Keplr Mobile, Galaxy Station, etc.) via their registered deep-link/universal-link schemes, then return to the browser to complete the session. 2. **"Copy pairing link"** fallback — user pastes it into the wallet's WalletConnect input manually. 3. QR remains the desktop path, unchanged. ## Workaround (worth documenting until fixed) Open the dApp inside a wallet's in-app browser (e.g. Keplr → browser → navigate to the dApp → Connect Wallet), which connects same-device without pairing. ## Notes WalletConnect's own modal libraries (`@walletconnect/modal` / Web3Modal, or Reown AppKit) ship this mobile behavior out of the box — if the frontend renders its own QR dialog, switching to the library modal on mobile may be the cheapest fix. If Lunc Dash hasn't registered a deep-link scheme with the WalletConnect registry, the copy-link fallback still covers it.
PlasticDigits commented 2026-08-15 09:31:16 +00:00 (Migrated from gitlab.com)

approved

approved
PlasticDigits commented 2026-08-15 09:43:45 +00:00 (Migrated from gitlab.com)

mentioned in commit 07f7cbe1e5

mentioned in commit 07f7cbe1e51b46d659b33a1a02fc9c3abb026ec6
PlasticDigits commented 2026-08-15 09:43:51 +00:00 (Migrated from gitlab.com)

mentioned in merge request !1053

mentioned in merge request !1053
PlasticDigits commented 2026-08-15 09:51:38 +00:00 (Migrated from gitlab.com)

Sanity check of MR !1053 (feat/519-walletconnect-mobile-deeplink @ 07f7cbe) against this issue (mobile Open + Copy pairing, desktop QR unchanged, in-app browser still valid) and WC-M1–WC-M7.

Meets acceptance in code. make verify-issue-519 passed locally (9/9, 24 unit tests). CI on !1053 failed with ci_quota_exceeded (not a code failure); merging without waiting for CI.

Still needed before closing: real-device manual QA — phone Safari/Chrome → Connect → Lunc Dash / Galaxy Station / Keplr Mobile → tap Open {wallet} (or Copy pairing link) → approve → address in header. Desktop QR-only path should stay unchanged.

Non-blocking notes: QA_TEMPLATE lists Lunc Dash and Galaxy Station for #519 but not a Keplr Mobile same-device row (deep links are implemented). Viewport ≤767px is treated as mobile by design. Cosmes vanilla fallback (hook absent) still paints QR plus Open/Copy; production path uses the React sheet without QR.

Sanity check of MR !1053 (`feat/519-walletconnect-mobile-deeplink` @ `07f7cbe`) against this issue (mobile Open + Copy pairing, desktop QR unchanged, in-app browser still valid) and WC-M1–WC-M7. **Meets acceptance in code.** `make verify-issue-519` passed locally (9/9, 24 unit tests). CI on !1053 failed with `ci_quota_exceeded` (not a code failure); merging without waiting for CI. **Still needed before closing:** real-device manual QA — phone Safari/Chrome → Connect → Lunc Dash / Galaxy Station / Keplr Mobile → tap Open {wallet} (or Copy pairing link) → approve → address in header. Desktop QR-only path should stay unchanged. **Non-blocking notes:** QA_TEMPLATE lists Lunc Dash and Galaxy Station for #519 but not a Keplr Mobile same-device row (deep links are implemented). Viewport ≤767px is treated as mobile by design. Cosmes vanilla fallback (hook absent) still paints QR plus Open/Copy; production path uses the React sheet without QR.
PlasticDigits commented 2026-08-15 09:52:29 +00:00 (Migrated from gitlab.com)

Conflict with merged !1052: Makefile .PHONY and help echo both added verify targets. Resolved on feat/519-walletconnect-mobile-deeplink by keeping verify-issue-518 and verify-issue-519. AGENTS.md auto-merged (both skill links kept). Pushed as 8bb0e6a.

Conflict with merged !1052: `Makefile` `.PHONY` and help echo both added verify targets. Resolved on `feat/519-walletconnect-mobile-deeplink` by keeping `verify-issue-518` and `verify-issue-519`. `AGENTS.md` auto-merged (both skill links kept). Pushed as `8bb0e6a`.
PlasticDigits commented 2026-08-15 09:52:35 +00:00 (Migrated from gitlab.com)

mentioned in commit 417257b89e

mentioned in commit 417257b89eb00ccf5b763c743b60c29d2635e486
PlasticDigits (Migrated from gitlab.com) closed this issue 2026-08-15 09:52:35 +00:00
PlasticDigits commented 2026-08-15 09:54:38 +00:00 (Migrated from gitlab.com)

Post-merge sanity on main @ 417257b: make verify-issue-519 fails if frontend-dapp/node_modules/@goblinhunt/cosmes is still 0.0.71-ghunt.21. The !1053 patch is for 0.0.71-ghunt.22 (already in package.json / lockfile). After npm install + npx patch-package, verify is 9/9 (24 unit tests). Not a merge defect — stale install only.

Post-merge sanity on `main` @ `417257b`: `make verify-issue-519` fails if `frontend-dapp/node_modules/@goblinhunt/cosmes` is still `0.0.71-ghunt.21`. The !1053 patch is for `0.0.71-ghunt.22` (already in `package.json` / lockfile). After `npm install` + `npx patch-package`, verify is **9/9** (24 unit tests). Not a merge defect — stale install only.
PlasticDigits commented 2026-08-15 09:57:13 +00:00 (Migrated from gitlab.com)

mentioned in issue #521

mentioned in issue #521
PlasticDigits commented 2026-08-15 09:57:14 +00:00 (Migrated from gitlab.com)

marked as related to #521

marked as related to #521
leonardocolucci commented 2026-08-17 21:14:19 +00:00 (Migrated from gitlab.com)

Thanks for the same-device pairing work (!1053) — Open {wallet} + Copy pairing link is exactly the standard flow. I'll point the community reporter at it for real-device QA once the dApp build is live.

Thanks for the same-device pairing work (!1053) — Open {wallet} + Copy pairing link is exactly the standard flow. I'll point the community reporter at it for real-device QA once the dApp build is live.
PlasticDigits commented 2026-08-18 00:20:44 +00:00 (Migrated from gitlab.com)

mentioned in issue #554

mentioned in issue #554
PlasticDigits commented 2026-08-18 00:20:44 +00:00 (Migrated from gitlab.com)

marked as related to #554

marked as related to #554
PlasticDigits commented 2026-08-18 15:21:51 +00:00 (Migrated from gitlab.com)

mentioned in issue PlasticDigits2/ustr-cmm#17

mentioned in issue PlasticDigits2/ustr-cmm#17
PlasticDigits commented 2026-08-18 15:22:40 +00:00 (Migrated from gitlab.com)

mentioned in issue #566

mentioned in issue #566
PlasticDigits commented 2026-08-18 15:22:42 +00:00 (Migrated from gitlab.com)

marked as related to #566

marked as related to #566
leonardocolucci commented 2026-08-20 14:04:18 +00:00 (Migrated from gitlab.com)

mentioned in issue #560

mentioned in issue #560
PlasticDigits commented 2026-08-21 11:32:37 +00:00 (Migrated from gitlab.com)

mentioned in issue #588

mentioned in issue #588
PlasticDigits commented 2026-08-21 11:32:52 +00:00 (Migrated from gitlab.com)

mentioned in issue #511

mentioned in issue #511
PlasticDigits commented 2026-08-26 04:22:42 +00:00 (Migrated from gitlab.com)

mentioned in issue #671

mentioned in issue #671
PlasticDigits commented 2026-08-27 00:20:45 +00:00 (Migrated from gitlab.com)

mentioned in issue #679

mentioned in issue #679
PlasticDigits commented 2026-08-27 00:20:55 +00:00 (Migrated from gitlab.com)

mentioned in issue #681

mentioned in issue #681
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
code/cl8y-dex-terraclassic#519
No description provided.