Skip to content

Cold wallet app#504

Merged
n13 merged 2 commits into
mainfrom
cold-wallet-app
Jun 5, 2026
Merged

Cold wallet app#504
n13 merged 2 commits into
mainfrom
cold-wallet-app

Conversation

@n13

@n13 n13 commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator

Cold wallet - installed on an unused phone in offline mode

This basically a hardware wallet that can go on any phone, and is used with the Quantus Mobile Wallet as a signer.

Use any phone in offline mode, for security that phone shouldn't be used for anything else and be in airplane mode at all times.

  • Import / Create wallet
  • Manual entry of seed phrase since the cold wallet is not connected to any networks
  • Show the QR code for the address (onboard to mobile app)
  • Scan transaction QR code
  • Show signature QR code
  • Works only in offline mode
Simulator Screenshot - iPhone 17 - 2026-06-02 at 23 04 25 Simulator Screenshot - iPhone 17 - 2026-06-02 at 23 04 31 Simulator Screenshot - iPhone 17 - 2026-06-02 at 23 04 48 Simulator Screenshot - iPhone 17 - 2026-06-02 at 23 04 16

Simulator Screenshot - iPhone 17 - 2026-06-02 at 23 05 43
Simulator Screenshot - iPhone 17 - 2026-06-02 at 23 06 00

n13 added 2 commits June 2, 2026 22:05
A new standalone Flutter app (com.quantus.coldwallet) that acts as an
offline hardware-wallet-style signer, Keystone/UR compatible:

- Setup: create/import (BIP39 12 or 24 words with autocomplete), password
  (Argon2id + AES-GCM) vault in the platform secure element, optional
  biometric unlock, and a secure-element warning when unavailable.
- Operation: Show Key (static address QR + human checkphrase) and Sign
  Transaction (scan multi-part UR QR, parse + display plaintext details,
  sign with ML-DSA, emit signature as an animated UR QR).
- Air-gap enforcement: INTERNET permission removed on Android, plus a
  connectivity guard overlay that blocks use whenever a network is up;
  re-locks on backgrounding.

DRY: the >256-byte Blake2b signing-payload rule (which hot wallet, cold
wallet, and chain must agree on) is unified into a single source of
truth, QuantusSigningPayload.signablePayload, now used by both the SDK's
encodedPayloadToSign and the cold wallet.

melos: register cold-wallet-app in the workspace.
Replace the shared Quantus mark with a frozen, ice-crystal rendering of
the Q to visually signal the air-gapped cold wallet.

- iOS / legacy Android: full edge-to-edge frosted square.
- Android adaptive: transparent Q-glow foreground over a glacial navy
  gradient background, so the 16% safe-zone inset blends seamlessly with
  no visible card seam and the mark stays fully inside the mask.
- Drop the now-unused orange quantus_icon_* source assets.
@n13

n13 commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator Author
cold-icon-square-1024

@dewabisma dewabisma left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we can have a shared folder for both mobile app? Instead of duplicating the component and styling and everything since both need to be in same design system anyway.

So, if we need to adjust design we don't have to do it twice.

Like the logo, Q with cold vibe :D

@n13

n13 commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

Actually this is intentional I want it to be its own app

@n13

n13 commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

Also didn't want to overly engnieer this with shared UX and so on, just want to get it out

This is an intentional choice, it's better right now

@n13

n13 commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

It should be its own app and not dependent on the mobile app UX - mixing the UX code runs the risk of every update to the mobile app breaking the cold app and vice versa, I don't want that

@n13

n13 commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator Author

Ok we discussed and came to the conclusion and explanation: This is a cute app we want to have no development overhead for

I'd rather have it go off brand than having a constant dev mental overhead whenever we release the mobile app we also need to think about, check, and potentially fix this app - this would then mean it's no longer a cute app, but a real product.

For now this signer app is internal to Quantus and will likely see no more than 10 users ever ;)

@dewabisma dewabisma left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay look good, nothing serious found.

@n13 n13 merged commit 61a609d into main Jun 5, 2026
2 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