Slow progress, but this PR gives a sketch of what's possible. Don't use this on mainnet, or at all :-)
I like to keep such experiments on my own fork, and then incrementally PR things to the main repo. But this isn't my main focus at the moment, so don't hold your breath.
https://github.com/Sjors/bitcoin/pull/91
Looks very cool. Is this very different than Nunchuk's implementation of MuSig2?
It's unrelated, though it might be useful to include Nunchuck in an interop test.
They might need similar changes on the Bitcoin Core side? I haven't studied their implementation yet.
I will try not to get too excited, but I'd love to see MuSig2 in Core. I think there haven't been too many software wallets that have rolled it out -- it maybe is only Nunchuk and BitGo (but they are institutional, I think?) Seems like Keeper, Bitcoin Safe, and Liana haven't implemented it yet.
MuSig2 is already in Core! Just no hardware wallet support and very tedious to setup even between two core wallets.
Ah I didn't realize this. That's very cool! I found it difficult enough to set up a normal multisig in Core, I may wait to try making a musig2 wallet.
But could one still create a PSBT with a musig2 wallet in Core and then export that into something like Ledger or Coldcard Edge (which I think can sign musig2) and use a hardware wallet that way?
Once setup, using it is easier, especially between two core wallets.
However Ledger isn't going to sign anything without first registering the BIP388 policy, and then passing it back (along with an hmac) at signing time.
Core can't currently produce this BIP388 policy and it can't store the hmac provided by the ledger. So you'd have to use the Ledger drivers manually (lookup Moosig). Not fun.
I forgot what ColdCard requires, if anything, maybe passing psbt's around already works?
https://github.com/bitcoin/bips/blob/master/bip-0388.mediawiki
Yes, that sounds quite a bit beyond what I'm willing to do (or should attempt).
More cowbell