Files
wallet/apps
Hanzo AI 12d12682c2 feat(confidential): F-Chain FHE balances + Z-Chain ZK proofs
Confidential slice (LP-013 + LP-063) — encrypted balances, threshold
decrypt, and selective-disclosure proofs.

  apps/web/src/screens/confidential/
    Confidential.tsx          landing — list of F-Chain balances + ZK entry
    ConfidentialBalanceRow.tsx hidden by default; tap to reveal; auto-rehide
    RevealCommittee.tsx       threshold MPC progress modal (signs as observer)
    ConfidentialTransfer.tsx  Send-form for FHE transfers; pubkey lookup
    ZKProofGenerator.tsx      claim picker + generator (BalanceGT, AccreditedUS,
                              AgeGT18, JurisdictionNotSanctioned)
    ZKProofShare.tsx          QR + verifier link sharing
    useFHEBalance.ts          fetch + threshold-decrypt session driver
    useFHETransfer.ts         client-side encrypt + submit (with degraded
                              gateway-encrypt fallback)
    useZKProof.ts             prove via @l.x/zk worker (gateway fallback)
    qr.ts                     pure-TS QR-code SVG (no runtime dep)
    styles.ts                 inline-style primitives until @hanzo/gui v7
    brand.ts                  gateway-domain seam (window.__BRAND__)
    types.ts                  shared FHE/ZK types
    index.tsx                 ConfidentialRoutes + named exports
  apps/web/src/store/confidential.ts
                              framework-free reveal/proof store
                              (useSyncExternalStore-compatible)

react-router-dom 7.5.0 added as a leaf dep — used only by this slice's
internal routes. Foundation owns the app-level router.

Threat model:
  - Validators see only ciphertext; reveal needs threshold MPC committee.
  - Plaintext lives 30s in memory, never persisted.
  - ZK proofs reveal only the claim — witness never leaves the device when
    @l.x/zk is present (gateway fallback is loud about degraded mode).

Punted to runtime stubs:
  - @l.x/fhe TFHE WASM bindings — falls back to gateway encrypt with
    explicit degraded-mode warning surfaced in the UI.
  - @l.x/zk circuit prover — same fallback pattern.
2026-04-30 13:10:46 -07:00
..