v0.2.0 — dice-seed wallet + beginner guidance
New: generate a wallet from physical dice (Coldcard-style)
- Menu option 1 — roll two dice → bias-free entropy (rejection sampling) → BIP39 seed words → write on paper
- 12 words = 52 rolls · 24 words = 104 rolls (roll math corrected: the checksum bits are computed, never rolled)
- In-app self-check — derives your first receive address (BIP84
m/84'/0'/0'/0/0) and the master fingerprint before you ever touch Sparrow; both must match what Sparrow shows after import
- Derived with
python3-mnemonic + python3-ecdsa; verified byte-exact against the official BIP39/BIP84 test vectors
New: beginner guidance layer
- Every menu entry has a plain-language description (
→ what it does)
- Menu option 7: First-time guide — what a seed / vault / address are, the 3 first-time steps, the safety rules
- Every option script opens with What this does / What you need / What happens next
- Contextual tip — "no seed backups in the vault yet" appears when the vault is mounted but empty
- Menu fully reordered around the user lifecycle: create → secure → recover → use → off
Fixes
coldiron-shutdown now always powers off even if the vault device is busy (unmount/close failure no longer leaves the machine on)
coldiron-dice-seed --test robust against short/odd roll files (found by the E2E)
Testing (all green)
- 19/19 host-side tests — BIP39/BIP84 vectors, roll rejection, menu failure-survival harness
- 16/16 QEMU E2E steps — every menu option (1–7 + q) exercised on the real ISO: abort paths, vault unlock via keyboard, age-encrypted backup, byte-exact restore, Sparrow window, clean shutdown with the vault mounted
Assets
coldiron-os-0.2.0-amd64.iso (633 MB) + SHA256SUMS
- CI independently rebuilds the tag (second-machine build)
⚠️ Prototype. Do not trust this ISO with a valuable seed yet — see the README's honest limitations (kernel-level networking is still compiled in; only driver-blacklisted).