Rebuild Tether Wallet POC with Passport Prime parity - #1
Merged
Conversation
Extends the POC from Sepolia-only to Bitcoin Testnet alongside it, and fixes the issues found while validating on hardware. Bitcoin support: - Prime-side BIP-84 derivation, PSBT parse, policy checks, and signing - Android WDK coin selection, PSBT transport, broadcast, and balances - Shared QuantumLink BTC account/sign-PSBT messages with golden snapshots Transaction history: - Read history from chain instead of logging only outgoing sends, so receives appear at all. Sends are measured by what left the wallet rather than the net delta, which would otherwise fold fees into the amount and misreport any transaction with a change output. - Restrict token history to the allowlisted USD~T contract; an unfiltered feed lets anyone airdrop a look-alike token and write entries into the history. - Backfill on connect rather than waiting for a manual pull. Pairing: - A reflashed Prime presents a new identity, leaving the session pinned to a peer that no longer exists. Clear that record and report the remedy instead of a bare timeout that reads as a range problem. Build reproducibility: - Pin AR for the Xous target. KeyOS pins CC but not AR, so the host archiver silently produced an empty micro-ecc archive and the recovery link failed on undefined uECC_* symbols. UI: - Inset the adaptive icon into Android's 72dp safe zone; it was full-bleed and cropped to a zoomed centre - Fit the splash wordmark inside the Android 12+ 192dp circular mask - Drop the monochrome layer, which was a copy of the colour icon and rendered as a solid blob when themed - Render the network mark on the send screen, which was an empty circle - Space and enlarge the Prime receive address Testnet-only, development-signed, and unaudited. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Why
The POC needed to showcase Passport compatibility through an experience that closely follows the real Tether Wallet while retaining Passport Prime as the only signing authority. The previous firmware script also referenced a Flux payload that is not in the pinned KeyOS 1.3.0 Cargo workspace, and recovery builds cleared the staged app directory when run in the wrong order.
Impact
The Android experience now mirrors the production wallet's information architecture without enabling unreviewed networks or assets. Developers can reproduce a complete signed Prime image without silently omitting filesystem apps. Signing keys, firmware images, APKs, generated native folders, and local environment files remain excluded from Git.
Validation
Remaining hardware sign-off
A clean Android install and full end-to-end pairing/transfer regression of this exact final image are still required before treating the POC as a release candidate.