TASK 05
Try the LVGL signing workflow
Check the working screens and camera, then practice the wallet QR handoff with a disposable seed.
You need
- Working display/buttons/camera
- Sparrow on your computer
- A new test seed
You’ll have
A watch-only wallet and a practiced offline signing workflow.
Current bench firmware: LVGL + Rust camera, tested on the standard 240×240 display/button board. Read the exact image, memory measurements and acceptance limits →
Boot, LVGL usability and camera scanning are user-confirmed on the bench setup. Public-fixture signing/export checks passed; a full session with the user's own wallet is still pending. Smartcards are outside this LVGL acceptance scope.
Confirm the current firmware before creating a seed
- Use the firmware guide to identify your image and tested hardware profile. A working Home screen alone is not a completed wallet workflow.
- The current app keeps the original Python wallet logic while LVGL renders the interface. Menu presentation may differ from older Pillow screenshots.
- Check camera scanning with a harmless public QR first; then use a disposable seed and record where any wallet handoff fails.
Create and back up a test seed
- On the device: Tools → New seed (camera entropy or dice entropy). Choose the length and complete the prompts.
- Record and verify the words offline. The ordinary SeedSigner flow holds the loaded seed in memory, so you need its backup again after power-off.
- Use a disposable seed and an unfunded wallet for your first run. The website never asks you to enter a seed or PIN.
Export public wallet information
- Open the loaded seed’s options and export an xpub for Single Sig and the script type you intend to use. Choose Sparrow as the QR format.
- In Sparrow: create a new wallet, choose the air-gapped hardware wallet route, and scan the signer’s public export.
- Keep network, derivation path and script type consistent. This is a watch-only wallet; never type the seed into Sparrow just to make scanning work.
Verify a receive address
- Display a receive address in Sparrow and use the signer’s address-verification/scan flow to confirm it belongs to your loaded seed and wallet settings.
- Compare the complete address and network. For multisig, import the correct wallet descriptor; a single cosigner seed alone does not define the wallet.
- Record this as a separate acceptance check; public-fixture signing does not establish address verification with your own wallet.
Practice the transaction handoff
- Sparrow builds an unsigned transaction (PSBT) and displays it as an animated QR. Scan that QR with the signer.
- On the signer, review destination addresses, amounts, change and fee before approving.
- Display the signed QR, scan it back into Sparrow, then review there. Sparrow—not the offline signer—broadcasts when you explicitly choose to do so.
SparrowBuild unsigned PSBT
ShieldSignerReview & sign offline
SparrowReview & broadcast
Finish the session
- Exit the loaded seed/session and power off when done. Retain a verified backup; an xpub or fingerprint cannot recover a lost seed.
- A SeedQR encodes the secret, unlike a public wallet-export QR. Keep a printed SeedQR private just like the words.
- For card storage or card signing, follow the separate smartcard task.
Sources & deeper reference
Checked 12 October 2026. Menu names can vary with firmware.
Current LVGL status and memory measurements ↗SeedSigner official docs ↗Fork quick starts ↗Practice multisig recovery ↗Edit this workflow on GitHub ↗