winnow

Multisig accounts

An account that needs any k of n keys to spend. Build it in Advanced mode, back it up, then fund it.

What a k-of-n account is

A multisig account is a Taproot address whose coins move only on the script path: any k of its n signers must sign. Each signer signs the same message on their own, in any order. There are no rounds between signers. The PSBT carries the signatures until there are enough.

Examples
PolicyWho can spendWhat to plan for
2-of-2This phone and a Ledger must both sign.Neither can spend alone. Losing either key and all its backups locks the coins, unless the account has a recovery path.
2-of-3Any two of the three signers.One signer can be unavailable. The other two can also spend without that person's agreement.
1-of-nAny one signer.One key can spend, whatever the account is called. Check the policy the app shows.

Independent keys need independent protection. Different public keys do not prove different owners, devices or backups.

Settings → Signers

Accounts are built from the signers this phone knows. In Settings → Signers:

This page also shows this phone's own key to send to others. Removing a signer does not change accounts already built with it.

Create, join and share an account

Multisig accounts are in Advanced mode, on the Wallet tab, in the Multisig section.

Create an account

Choose the members: this phone, a paired Ledger, keys someone sent, or an account already on this phone (its own policy then decides how it signs). Set how many must sign, for example Any 2 of 3 members spend. The app shows the resulting policy before you create it.

Join an account

If someone else builds the account, send them this phone's key from Join an account → This phone's key, alone or together with a paired Ledger's as one signer. When they share the account, paste it there. Winnow finds coins sent to it from then on.

Share with co-signers

Everyone who signs needs the account to see its coins. On the account page, Share with co-signers sends its descriptor.

The optional recovery path

When creating an account, turn on Recovery after a delay. Once a coin has not moved for the chosen delay (1 to 455 days, about 144 blocks a day), it can be spent by fewer of the same signers, or by a separate recovery key you paste. Coins that moved more recently still need the full threshold. The account's coin list shows the block from which each coin's recovery path opens.

A recovery path is part of the account's script tree, so every co-signer sees it in the shared account.

What a Ledger shows

A paired Ledger signs over Bluetooth. When an account includes it, Winnow registers the account on the Ledger, and you approve it in the Bitcoin app. A recovery path or a nested account needs Bitcoin app 2.2.1 or later.

Verify on Ledger has the Ledger derive the receive address; compare it with the one on its screen. When spending, the Ledger shows the payment on its own screen before it signs. Check the addresses, amounts and fee there, not only on the phone.

A Bitcoin Core wallet as one key

A Bitcoin Core wallet can hold one key of an account. Take its Taproot key from listdescriptors, written as [fingerprint/86'/1'/0']tpub…/<0;1>/* on signet, and save it under Settings → Signers. After creating the account, import its descriptor into Core with Core's own key replaced by the private version (importdescriptors). Core then adds its signature to a PSBT with walletprocesspsbt; paste the result back into Winnow.

Core is one signer here, like any other key. It is not a coordinator, and Winnow has no separate Core setup screen.

Back up before funding

  1. Recovery words restore the wallet, not its multisig accounts. Only a backup file or the iCloud copy brings accounts back.
  2. Current backups, file and iCloud alike, carry the multisig accounts, their Ledger registrations and the Signers list (public keys only). Make a new backup file after creating or joining an account.
  3. Every other signer needs its own key backup. Winnow never holds another signer's private key.

The default backup file excludes recovery words and restores watch-only access. A file made with Include recovery phrase contains this phone's signing key; protect it as you would the words. Backup contents and limits →

Upgrading from the Swift app

On a phone upgraded from the Swift app, the saved people, Signers and multisig accounts that app stored are set aside, not deleted, and start empty. Pair the Ledger again, save other people's keys again, and join or restore accounts from a current backup or the shared descriptor.

Spend from an account

Every payment starts from Send, the recovery path included; the account page also has Send from this account. Review the payment, sign on this phone, and the payment waits under Transactions until the other signers have signed. Share the PSBT with them, or paste a co-signer's signed copy with Paste a PSBT from a co-signer. Once enough signatures are in, Winnow finalizes and broadcasts the transaction over its own peer connections.

Signers can sign in any order. Private keys stay with their holders; the PSBT carries the payment details and signatures.

Earlier account types

History, 25 October 2026: MuSig2 accounts and Bitcoin Core cosigners ended in 0.8.13, the Swift app's last full release. A backup carrying a MuSig2 account is refused rather than restored without those coins. Restore such a file in the Swift app instead.

How it is tested

The recorded journeys · Current test runs

Technical details: descriptors, privacy and signing

A plain account is tr(NUMS, sortedmulti_a(k, …)). The internal key is unspendable, so there is no key-path spend around the threshold. A recovery path, or a member with several keys, adds script leaves to the same tree. Receiving does not reveal the policy; a spend reveals the script it used, with its keys and threshold.

The app reads PSBT v0 and v2 and shares v0. It checks known inputs and derives its own output scripts to recognize change; it does not trust a proposer's change labels or derivation metadata.

Accounts sync in the everyday wallet's compact-filter scan. Signing support is Taproot only.

Taproot rules · PSBT

What labels and policies can prove

The descriptor decides the required keys. Names, notes and labels cannot lower that requirement or prove who controls a key.

A signing key does not establish inheritance rights, a trust or a provider's obligations. Winnow has no professional-cosigner integration. Provider and recovery research →