← All insights
Read this first

This is an unsafe proof of concept. It runs on a test network, in a simulator, with money that is worth nothing. It is a look at where multisig is going, not something to move your savings into. Nothing here has been audited.

What multisig is for, and what it costs you

A multisig wallet needs more than one key to spend. Two of three, three of five, whatever you choose. One key can be lost, one device can break, one person can be coerced, and the money is still safe. It is the best answer we have to holding bitcoin without a single point of failure.

It has always come with a bill attached. A classic multisig announces itself. Every time you spend, the chain records the whole arrangement: that it was a multisig, how many keys exist, how many were needed, and a public key for each one. That record is permanent and anyone can read it. It tells a thief that this address is worth studying, it tells a chain analyst how you organise your money, and it never goes away.

You also pay for it in fees, every spend, forever, because several signatures and the script describing them all have to go on chain.

What MuSig2 changes

MuSig2 (BIP-327) lets several keys produce a single signature. Not several signatures collected together: one signature, mathematically indistinguishable from one made by one key.

So the chain sees an ordinary single-key wallet. One key, one 64-byte signature. It cannot tell your 2-of-3 from a phone wallet, and neither can anyone reading the chain later. That is the privacy unlock, and it is a big one: your security arrangement stops being public information.

The fee saving comes with it. This spend was 111 vB, the same as a single-key payment, where a classic 2-of-3 would be roughly twice that.

This part is not new and we did not invent it. Nunchuk shipped a taproot MuSig2 multisig in beta in December 2024. Ledger added MuSig2 signing to its Bitcoin app in April 2025. BitGo has run it in production since 2023. You can use MuSig2 today.

World first

An airgapped MuSig2 multisig

Proved · Bitsaga Signet, blocks 109068 and 109071

The part nobody has solved

MuSig2 signing happens in two rounds. Round one: every signer commits to a random number (a nonce). Round two: every signer signs. Between the two, each signer is holding a secret, and that secret has one absolute rule. Use it for two different signatures and anyone who sees both can work out your private key and take everything.

Because of that rule, every implementation keeps the secret in memory and nowhere else. Writing it down is worse than useless: a copy of the file is a copy of the secret, and no software can tell a copy from the original.

Which leaves a signer that cannot be switched off. Not "should not". Cannot. Pull the power between the two rounds and the signing is dead, and you start again from the beginning. The Bitcoin Core discussion of MuSig2 wallet support says it plainly: every machine involved has to keep running with the wallet loaded throughout, and for keys kept in different places that means leaving a node running unattended in each one.

So in practice a MuSig2 spend means two visits to every signer, with the device kept alive in between. A classic multisig needs one visit each and the device can be off the rest of the time. That is a real step backwards, and it is the reason MuSig2 has not swept multisig away already.

MuSig2 today

2 visits
per signer, and it has to stay on in between

MuSig2 on a card

1 visit
per signer, and it can be switched off

What we did

We gave the secret (the nonce) to a smartcard.

A card can do the thing software cannot: hand something back exactly once and refuse ever after. So the secret leaves the signer sealed, travels inside the transaction, and the card opens it in round two. Copy the transaction, copy the card's backup, copy the whole disk: none of it produces a second signature, because the card has already said no.

The signer can now be switched off between the rounds. Put it in a drawer, come back tomorrow, finish the signature.

And once the card is making these secrets anyway, it can make a few extra and leave them in the transaction on its way out. Round one does not depend on the transaction, so it can be done before the transaction exists. The next spend arrives with round one already finished, and each signer only has to sign.

Side by side

Classic multisigMuSig2 todayMuSig2 on a card
What the chain seesThe whole policy, foreverA single-key walletA single-key wallet
Size of this spendRoughly 200 vB111 vB111 vB
Visits per signer121, after the first spend
Signer may be switched offYesNoYes
Signers must be available togetherNoIn effect, yesNo
A copied backup can be replayedNot applicableNot applicableNo, the card refuses

The "1, after the first spend" needs a word of honesty. The first spend of a wallet has no secrets in reserve yet, so it costs three visits across two signers. Every spend after that costs two, one each, which is the floor: two people have to sign, so two visits is as low as it goes.

What it looks like

Three cosigners, each a different seed loaded on the device and exported. Two of the three also keep their seed on their own smartcard, and those are the two that can be switched off mid-signing.

The wallet panel listing Cosigner 1, 2 and 3 all marked Ready, with a Create the wallet button
Three cosigners, collected from the device one seed at a time.
Three smartcards in the simulator tray, with card B inserted in the reader
The cards. Each one holds the secret for its own signer, and releases it exactly once.
The wallet holding 2,965,000 test coins, with a Spend the balance button and a receiving address
Funded. An ordinary taproot address: nothing about it says multisig.
The wallet after a spend, showing the remaining balance and the amount sent
Spent, in two visits instead of three, using secrets the cards had prepared in advance.

Both spends, on chain

On Bitsaga Signet, a private test network. The coins are not real. Each link is a proof you can check against the chain yourself, header and merkle branch included, without trusting this page.

SpendVisitsTransactionBlockSize
First3 dcfabb9ad664…3bfabf39 109068111 vB
Second2 769624fae62a…078ac4a8 109071111 vB

What is standard here

Almost all of it. None of the following is our invention, and every one of them is a published specification other people wrote:

What is not

That last distinction matters. BIP-327 already has a way for exactly one signer, usually the hardware wallet, to avoid holding a secret between rounds. It does not extend to the others.

Where the code is

The firmware is a fork of SeedSigner: bitsagarob/seedsigner. The browser simulator, the coordinator that builds the transactions and the checks against Bitcoin Core are in bitsagarob/seedsigner-simulator. Everything on this page was produced by an end-to-end test in that repository, which builds the wallet, takes coins from a faucet and spends them back, driving the simulated device one button press at a time.

The honest limits

If you know of an airgapped MuSig2 signer that already lets every participant power off between the rounds, tell us and this page changes.