Skip to content

Rebuild Tether Wallet POC with Passport Prime parity - #1

Merged
BitcoinQnA merged 3 commits into
mainfrom
codex/tether-wallet-parity
Jul 28, 2026
Merged

Rebuild Tether Wallet POC with Passport Prime parity#1
BitcoinQnA merged 3 commits into
mainfrom
codex/tether-wallet-parity

Conversation

@BitcoinQnA

Copy link
Copy Markdown
Collaborator

What changed

  • Rebuilt the Android wallet, transactions, receive, send-entry, and settings surfaces around the production Tether Wallet hierarchy and styling.
  • Preserved the existing Passport Prime onboarding, QuantumLink pairing, disconnect, external-signer, transaction review, and balance-refresh paths.
  • Added the production Tether asset/network catalog as presentation-only options while keeping unsupported routes visibly disabled and the POC fail-closed on Ethereum Sepolia.
  • Corrected the full Passport Prime firmware workflow to build the bootloader and recovery image before staging the 16 valid KeyOS 1.3.0 filesystem apps, including Tether Wallet.
  • Documented developer signing, verified SAM-BA flashing, source pins, parity limits, and current hardware validation evidence.

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

  • Mobile typecheck, 15 unit tests, lint, arm64 native compilation, Hermes bundle, release minification, and manifest/ABI inspection passed for the parity build.
  • KeyOS integration formatting, 11 Prime tests, 2 QuantumLink server tests, and compile checks passed.
  • The corrected firmware script completed end-to-end against pinned KeyOS 1.3.0 and bundled 16 signed filesystem apps.
  • A 394,939,736-byte developer image was flashed to Passport Prime, padded to 394,939,904 bytes, and verified byte-for-byte through SAM-BA readback.
  • Passport Prime rebooted on KeyOS 1.3.0 and Tether Wallet opened to the static companion-pairing QR.

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.

BitcoinQnA and others added 3 commits July 24, 2026 14:13
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>
@BitcoinQnA
BitcoinQnA merged commit d0dc1fb into main Jul 28, 2026
1 of 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.

1 participant