Skip to content

Recovery discovery misses undeployed accounts funded only in native USDC #563

Closed

Description

@mossbot55

Problem

The first-run recovery scan decides whether an undeployed (counterfactual) account has been used by probing ERC-20 balances. It probes the wallet's display-default tokens (ETH and STRK) only. An account funded only in native mainnet USDC before deployment has no ETH or STRK, so it reads as empty and is skipped, and a real recoverable account is invisible to import.

Evidence

  • Source: discoverRecoveryAccounts in apps/extension/src/background/onboarding/onboarding-ops.ts built its probe list from defaultWalletPreferences().tokens, i.e. the display defaults (ETH, STRK).
  • Local behavioral check: the updated integration test in tests/background/onboarding/recovery-discovery.test.ts reports a USDC-only account as funded with the widened probe set, and the same test fails when only the probe line is reverted to the display-default implementation. The gap is real and the test is not vacuous.
  • Native USDC contract and decimals match the wallet's curated registry entry (packages/features/portfolio/src/tokens/token-registry.ts): 0x033068f6539f8e6e6b131e6b2b814e6c34a5224bc66947c47dab9dfee93b35fb, 6 decimals.

Acceptance criteria

  • The recovery scan probes a discovery-only token set that is a superset of the display defaults and includes native mainnet USDC; the user's displayed/tracked token set is unchanged.
  • An undeployed account funded only in native USDC is reported funded and offered for import.
  • Unit coverage: the probe set is a superset of the display defaults, native USDC is not a display default, and the scan probes the widened set.

Tracking

Incoming contribution #562 adds a discovery-only RECOVERY_PROBE_TOKENS set (the display defaults plus native mainnet USDC) and probes it in the recovery scan instead of the display-default tokens.

Limitation

The contributor's live-mainnet vendor-dataset scorecard was not independently reproduced; the check above is a local behavioral test.

Classification note: this repository has no feature label, so this enhancement is labelled enhancement (with phase:7, matching the surrounding import/recovery work).

Activity

  1. added
    enhancementNew feature or request
    phase:7Phase 7 — Migration off Braavos/Ready
    on Oct 6, 2026
  2. mossbot55 commented on Oct 6, 2026

    @mossbot55
    ContributorAuthor

    Tracking for the incoming contribution in #562, which implements the acceptance criteria above (a discovery-only probe set that adds native mainnet USDC to the recovery scan). Awaiting maintainer review of the PR.

  3. derek-flossman commented on Oct 13, 2026

    @derek-flossman
    Collaborator

    Fixed in #562, merged into release/v0.10.6 through batch #642 (fecb613).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestphase:7Phase 7 — Migration off Braavos/Readystatus:in-progressWork in progress

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions