deviant/Parameters/WalletConnect/WizardConnect_sources.md
Local Dev 6987591065 feat(connect): unblock WizardConnect end-to-end + honest sign preview
Two prior sessions and this one collectively unblocked WizardConnect for
chipnet beta. Landed here:

Licence trap resolved:
- @wizardconnect/* is LGPL-3.0-or-later (verified against gitlab
  repo LICENSE.txt, README, Riften Labs announcement). "Proprietary"
  in `npm view` is a missing `license` field artefact, not a term.
- WizardConnect_reference.md §0/§3.3, README wallet table, wz-adapter.ts
  and wz-handler.ts headers corrected. Mainnet is no longer blocked;
  §6 of the integration guide lists the remaining LGPL §4 obligations.

Wrapper unwrap bug fixed (responder.ts:279-310):
- SignTransactionRequest.transaction is a WcSignTransactionRequest
  wrapper, not the tx. Old code passed the wrapper through as `tx`, so
  every WZ sign request threw "malformed request — missing tx.inputs"
  at signer.ts:136. Now unwrapped + hex-string variant decoded +
  broadcast/userPrompt forwarded. Regression tests added.

Sign-preview honesty (AppsScreen.tsx + preflight.ts):
- Replaced hardcoded "✓ no token UTXOs spent" / "bchtest:qp2…7lm" fake
  pre-flight block with real request-derived outputs, fee, and token
  flags. Renders dApp's `userPrompt` verbatim per protocol.
- Hides the block when the tx can't be decoded rather than lying about
  what was checked.

Dropped SDK events surfaced (wz-handler.ts + responder.ts + useConnect.ts):
- signCancelled + remoteDisconnect now flow through WzHandlerEventMap.
- Responder evicts pending WZ entries on cancel; new
  ResponderEvents.onSignRequestCancel clears the approval screen if the
  user was about to approve a withdrawn request.

WIF-restored wallets get an honest message (useConnect.ts):
- KeyStoreError('not-supported') from a WIF-restored wallet now logs a
  quiet console info line instead of a red "WizardConnect not supported
  by this build" banner. WC/CC remain available. Other failures still
  surface normally.

Definition of Done (see WIZARDCONNECT-INTEGRATION-GUIDE.md §11) items
§1–§4 landed here. §5–§9 handed off to a fresh session via
NEXT-SESSION-PROMPT.md — includes Reown decoupling, LGPL §4(d)(1)
chunk split, session re-hydrate, on-device test against Silent Mode
registrar (with Cashonize v0.9.0 as comparison implementation), and
ADR-0044 for the Nostr transport.

Tests: 162/162 passing. tsc --noEmit clean.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-07-27 20:07:50 +02:00

982 B

Introducing ✨🔮 WizardConnect 🔮✨

WizardConnect is a brand new, Bitcoin Cash-first wallet connection protocol built from the ground up by @RiftenLabs 🪄

WizardConnect is: 🔮 Bitcoin Cash first 🔮 Open source (LGPL) 🔮 Fast, stable & reliable 🔮 Full HD-wallet compatable 🔮 Supports multiple addresses 🔮 Secure & decentralized using Nostr 🔮 E2E encrypted (run on any relay you want) 🔮 Future-proof and designed for multisig, NFTs & more

WalletConnect was never made for BCH. WizardConnect is.

Documentation: 🔮 Relay transport Guide: https://docs.riftenlabs.com/wizardconnect/transport/ 🔮 Wallet Integration Guide: https://docs.riftenlabs.com/wizardconnect/dapp/ 🔮 Protocol Specification: https://docs.riftenlabs.com/wizardconnect/wallet/ 🔮 All technical deep-dives: https://docs.riftenlabs.com/wizardconnect/protocol/

The WizardConnect protocol is fully open source and built with love for Bitcoin Cash, by @RiftenLabs 🪄