Skip to content

Show public wallet addresses for protected wallets and add checkphrases - #135

Merged
illuzen merged 1 commit into
mainfrom
wallet-public-address-checkphrase
Aug 11, 2026
Merged

Show public wallet addresses for protected wallets and add checkphrases#135
illuzen merged 1 commit into
mainfrom
wallet-public-address-checkphrase

Conversation

@n13

@n13 n13 commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

What

  • quantus wallet list / view / delete show the wallet address again for password-protected wallets, instead of [Encrypted].
  • Every displayed wallet address now includes its human-readable checkphrase, e.g. Checkphrase: Piano-Mature-Drop-Vibrant-Snack.

Why

#126 stopped displaying the envelope address for password-protected wallets because it is not authenticated by decryption. But the wallet address is public information, not security critical, and hiding it made wallet list useless for protected wallets. This restores the pre-#126 display behavior while keeping the #126 protections that matter:

  • the envelope address is validated as canonical Quantus SS58 at the load boundary (garbage is rejected),
  • envelope/keypair mismatch is still caught by the Integrity check on unlock,
  • passwordless send-path resolution (find_wallet_address) still refuses to trust the envelope for protected wallets.

Checkphrase

Uses the published qp-human-checkphrase crate (same algorithm as the mobile app). The 2048-word list is vendored via include_str! because the crate only loads it from the current working directory at runtime; the file is byte-identical to the mobile app asset.

Placeholder values like [Wrong password] never get a checkphrase.

Testing

  • cargo test --lib wallet:: (70 tests, includes updated tampered-envelope and list/view tests, plus new checkphrase tests)
  • Verified end-to-end against a local keystore with 15 wallets: protected wallets show address + checkphrase, cargo +nightly fmt and clippy clean.
image

- Revert the #126 display change that replaced addresses of
  password-protected wallets with "[Encrypted]" in wallet list/view.
  The envelope address is public information and is validated as
  canonical Quantus SS58 at load; envelope tampering is still caught
  by the Integrity check on unlock, and passwordless send-path
  resolution still refuses to trust the envelope.
- Show a human-readable checkphrase (qp-human-checkphrase, same
  algorithm and wordlist as the mobile app) under every wallet
  address in create/import/from-seed/list/view/delete.
@illuzen
illuzen merged commit 50d6664 into main Aug 11, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants