winnow rescue

Winnow Rescue

Get the coins out of an old Bitcoin wallet and into a taproot account you already have. One job, done carefully, then it keeps nothing.

What it is

Winnow Rescue is a rescue tool, not a wallet. You give it what you have from the old wallet: recovery words, a single private key, a paper key, or an export from another wallet. It works out where that wallet kept its coins, finds them, proves to itself that they exist, and moves all of them in one transaction to an address you already own in a taproot wallet. Then it is finished.

It is not for everyday use and privacy is not its design goal: it asks an indexing server where your coins are, and it tells you plainly what that server learns before it asks. Nothing in it is novel. Every check it makes is a published standard with published test vectors, which is the point for the one program that handles your raw keys.

Who it is for

What you have, and what Rescue does with it
You haveRescue
12 to 24 recovery words, with or without a passphraseWalks the standard account paths (BIP44, 49, 84 and 86), then the paths well-known wallets used instead, until it has found every account.
An Electrum seedReads Electrum's own seed format (standard and segwit). Two-factor seeds are out: a service holds one of those keys.
A single key: WIF, a mini private key from a physical coin, or a key dump fileChecks the key's own checksum and network, then looks for coins on every address form that key can have.
An extended key or account keyWalks the same paths from that key.
A descriptor, a wallet policy or a shared vault made elsewhereFinds the coins and reports them; signs where you hold a key, otherwise prepares the transaction for the device or wallet that can.
Lightning channels, other coins, a hardware wallet with no key materialOut of scope. Rescue says so by name rather than guessing.

Five steps, the same everywhere

  1. Enter what you have. Words, a key, or a file. A typo is named by position, never silently accepted.
  2. Confirm the first address. Before anything is looked up, Rescue shows the first address of each path it will search. If one matches your old wallet, the words and the passphrase are right.
  3. Find the coins. Rescue asks the indexing server you chose, with a live count and a button to search further. Every coin it reports is proved from its own transaction and block, so a server can hide coins from you but cannot invent them.
  4. Review. Every coin by type and amount, the one destination address, and the exact fee in sats and as a share of the total. Hold to send.
  5. Done. One transaction, every coin in, one output, nothing left behind. Rescue tells you plainly whether it is done, waiting, or stalled, and what to do next.

What it checks

What it never does

Where it runs

Rescue is a small Rust program with two faces: a command-line tool, which can also sign on a computer that is kept offline, and a desktop window with the same five steps. Both run on macOS, Linux and Windows. The core is a library on its own, so a wallet can build Rescue into its own screens and finish the restore inside the wallet you are already using.

Status

Winnow Rescue is being built in the open and there is nothing to download yet. The source, the test vectors and the fuzzing live at github.com/winnowwallet/winnowrescue. It is made by the people behind Winnow, the taproot wallet for iPhone, and is a separate program: Winnow itself stays small and carries none of this.