Two people hold a 2-of-3 taproot multisig built with MuSig2 (BIP-327, BIP-390). They pay a silent payment address (BIP-352). Nobody holds the private key of the coin they spend, and a silent payment needs exactly that key. This page is the record of it happening on mainnet: every screen the two signers saw, every transaction, and how anyone can check it.
A MuSig2 multisig paying a silent payment address on chain
The design existed on paper (BIP-352's own footnote, and macgyver13's proposal with a draft Coldcard branch). We found no transaction on any network before this one. If you know of one, tell us and this line changes.
Proved · mainnet block 965485
Multisig signers verifying a payment name on device
The recipient was a BIP-353 name. Both signers validated its DNSSEC proof themselves, from the root trust anchor down, before contributing anything.
Proved · same block
What this means if you hold bitcoin in a multisig
- Your multisig stops being visible. A classic 2-of-3 tells the whole world it is a 2-of-3, forever, on every coin. This one looks like a single key. Nobody can tell your setup from a phone wallet's.
- You can pay a silent payment address at all. Silent payments exclude script multisig inputs. A MuSig2 key path is the only multisig that can send to an
sp1…address. - The recipient gets a fresh output every time, from an address they published once. No address reuse on their side, no way to link your payment to their other payments.
- You pay a name, and your signers check it. No long address to compare by eye; the device proves the name resolves to the address it is paying.
- No co-signer can misdirect the money. Every share comes with a proof, and each device refuses to sign if any proof or the output does not check out.
- Cheaper. One 64-byte signature instead of two signatures plus a script: this spend was 111 vB.
What the chain sees
one taproot input · one taproot output · one 64-byte signature
No multisig is visible. No sp1… address ever appears on chain; a silent payment address is never written anywhere but the payer's own wallet.
The transactions
| Network | Spend | Block | Output the recipient found | Size |
|---|---|---|---|---|
| Mainnet | e809314c820d10da3b911efc947031f01f9d0b3e19557605733c867b1572d332 | 965485 | bc1pcnasn84eqqfve8sktfat65nww07z66u5eftzlj0a2dgvxx3klanqlz74k6 | 111 vB |
| Bitsaga Signet | eba1bb443e66d9560432e5ee8e24aacfa3c74356d763cc9eca7e793fbd0d0126 | 92601 | tb1pl04f5aqp0fax7jq3sqfyhc5we7s37ngwa8y3786hl8p6r9z3tatq3csga8 | 111 vB |
| Regtest | e8854615af629f19b3ad110f84ec83baaa3f48a5ffb14e61951d4ebba52562e8 | 340 | bcrt1pggk5lc7grxnkxelsmesj75txphqkjdr76te7uxcgcn8v8zvcre6ssft5d7 | 111 vB |
The spending input is the 2-of-3 coin at bc1p2ky0fhk8n88swkfxcemjwlyr87funhyfsyh040t3wza0ad402qjq42q0pd, funded by 1aa25dced4408f506ad11a8e9c855fd7b29bde07044790192ae8431ae1db8687. The recipient's silent payment address is sp1qq053744rl7pn5sx84z5yu7kx03dlxescex28agq7euwanatf45sfzqmhvlcgjfrfmj5mqde4rtnm6ggz6ye8gd2g9ltw8n5k725tg99ptseau3ru. It does not appear in either transaction; the output above was derived from it and from the input, and the recipient found it by scanning with its scan key, nothing else.
The screens
Two simulated SeedSigners, one seed each, in two separate browsers. The coordinator between them holds no key. Each signer scans the transaction three times.
The recipient is a name
The transaction pays musig2@silentpayments.net, a BIP-353 payment name. Its DNS record carries the silent payment address, and the PSBT carries the RFC 9102 DNSSEC proof of that record (2580 bytes). Each device validates the proof itself, from the root trust anchor down, and shows the name as verified only when the proof is valid, current, and covers exactly the address the output is derived from. A signer has no clock, so it takes its date from a timecode QR (oT260904130533, UTC). The rule is that the date comes from a second screen; in this run the coordinator was that second screen, so the date check proves the mechanism and not independence.
Step 1 of 3: a share and a proof
The output does not exist yet. The device shows who it is paying, and hands back its share of the Diffie-Hellman secret with a BIP-374 proof that the share was made with its own key.








Step 2 of 3: nonces
The coordinator has combined the two shares into the output script. Each device verifies the other signer's proof and recomputes the script before it publishes a nonce. The review now shows the derived taproot address.




Step 3 of 3: partial signatures
With both nonces in, each device verifies everything again and signs. Stock Bitcoin Core v31.1.0 aggregates the two partial signatures into the one Schnorr signature on chain, and relays it.




Found by someone else's code
The sender's own arithmetic finding its own output proves little. So the receive side was checked with software that knows nothing about MuSig2, PSBTs or shares: setavenger's blindbit-cli (Rust), pointed at our BlindBit Oracle and given only the recipient's scan key and spend public key, scanning block 965485.
2026-09-04T14:19:42.958942Z INFO connecting to oracle service oracle_url=http://127.0.0.1:8011
2026-09-04T14:19:42.958986Z INFO no existing state file, creating new scanner
2026-09-04T14:19:42.964059Z INFO scanning blocks start=965485 end=965485
2026-09-04T14:19:42.970556Z INFO probable match found txid=e809314c820d10da3b911efc947031f01f9d0b3e19557605733c867b1572d332
2026-09-04T14:19:43.003978Z INFO received block from peer peer=127.0.0.1:8333 block_hash=00000000000000000000559c736df96712d1869641436c16874a4ab350ec4b46 tx_count=3268 elapsed_ms=13
2026-09-04T14:19:43.008680Z INFO balance total=0.00049550 BTC confirmed=0.00049550 BTC trusted_pending=0 BTC untrusted_pending=0 BTC
2026-09-04T14:19:43.013950Z INFO balance after scan total=0.00049550 BTC confirmed=0.00049550 BTC trusted_pending=0 BTC untrusted_pending=0 BTC
2026-09-04T14:19:43.014209Z INFO saving scanner state path=/home/rob/.cache/tmp/musig-blindbit-state.json
2026-09-04T14:19:43.014826Z INFO state saved
2026-09-04T14:19:43.014834Z INFO scan completed successfully
exit 0
Why this needed new work
BIP-352 derives the recipient's output from the sum of the input private keys. For a taproot input that is the key behind the output key. In a MuSig2 key path no one has it; each signer has a share. Diffie-Hellman is linear, so the shares can be combined: each signer contributes d_i · B_scan, and the public KeyAgg coefficients, parity and tweaks turn the pieces into exactly what a single holder would have computed. BIP-352 itself sketches this in a footnote and says a proof may be needed.
The proof is the part that matters. A share nobody can check lets one co-signer send the money to an output the recipient will never find. That is a loss of funds, not a privacy leak. Each share here travels with a BIP-374 proof against the signer's own participant key, and every device verifies every other proof, and the output script built from them, before it lets a nonce or a signature out. A tampered share, a borrowed proof and a wrong script are each covered by a test that expects a refusal.
The PSBT fields are the ones macgyver13 proposed for exactly this case in Silent Payments from a MuSig2 Treasury (July 2026), with a draft Coldcard implementation: 0x21 for the partial share and 0x22 for its proof, keyed by scan key and participant key. Using the same fields means a Coldcard on that branch and this device could sit in the same 2-of-3. We found no earlier on-chain transaction of this kind on any network; if you know one, tell us and this page will say so.
What is not claimed
- The signers are the SeedSigner firmware running in a browser, not hardware. Same code, different box.
- BIP-352 says collaborative silent payments have no formal security proof. This does not change that.
- The standard BIP-375 per-input share and proof fields are not filled, because their proof needs the input's private key and nobody has it. Run over this PSBT, the BIP-375 reference validator passes the structure and input eligibility checks and fails ECDH coverage with Silent payment output present but no ECDH share for scan key. The per-signer proofs are the substitute, and a validator that reads them is a few lines.
- The coordinator fills the MuSig2 fields with a watch-only Bitcoin Core wallet, aggregates the shares itself, and hands the finished PSBT to Core to finalise. Core has no silent payment code and did not need any.
Check it yourself
Signers: fingerprints A 51b2ac0e, B ae2e215d, C 05c4677a (C never signed). Recipient R 91c1bf2e. Descriptor of the coin:
tr(musig([51b2ac0e/86h/0h/0h]xpub6BxBRQe31Zh57HuUBtqcJwnnZyKc4ucFTkWHRNZNhBC4rgMC3DhCJ5Kv5hoaBbkQ28KpGBQvL7XBnR8SSTimbwPX2pFpjKTFibNrVbcnzuE,[ae2e215d/86h/0h/0h]xpub6BiRes3J9ir1VWEsaRj3E8zsUpcbV4AA1ySfWWYpYWQVLVMwKHLAwNCoC7q2RDVH7mVfeNq8UgsoHgsxV5pkemSJr914BDwujN32GyqjvtF)/0/*,{pk(musig([51b2ac0e/86h/0h/0h]xpub6BxBRQe31Zh57HuUBtqcJwnnZyKc4ucFTkWHRNZNhBC4rgMC3DhCJ5Kv5hoaBbkQ28KpGBQvL7XBnR8SSTimbwPX2pFpjKTFibNrVbcnzuE,[05c4677a/86h/0h/0h]xpub6CLo3LtaYZhFJt4mUTGYgFGaFJ5NyXPk82boafvMTjbN84oXaT2FEyCnHG1mVSJ6RT3JyjeovW4qw6mR7TMdVfwVWAGS8vQY39AtqSnoa6v)/0/*),pk(musig([ae2e215d/86h/0h/0h]xpub6BiRes3J9ir1VWEsaRj3E8zsUpcbV4AA1ySfWWYpYWQVLVMwKHLAwNCoC7q2RDVH7mVfeNq8UgsoHgsxV5pkemSJr914BDwujN32GyqjvtF,[05c4677a/86h/0h/0h]xpub6CLo3LtaYZhFJt4mUTGYgFGaFJ5NyXPk82boafvMTjbN84oXaT2FEyCnHG1mVSJ6RT3JyjeovW4qw6mR7TMdVfwVWAGS8vQY39AtqSnoa6v)/0/*)})#ad0j2vv3
The final PSBTv2, with both shares, both proofs, both nonces and both partial signatures:
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
The transaction as broadcast:
020000000001018786dbe11a43e82a1990470407de9bb2d75f859c8e1ad16a508f40d4ce5da21a0100000000fdffffff018ec1000000000000225120c4fb099eb90012cc9e165a7abd526e73fc2d6b94ca562fc9fd5350c31a36ff66014002c8d41657f94da833f972bb522c373c83e8fcf05a9af56b5c53634bfe5ac143a5b57b593d34386f74fa5aab74f153217e9fe036439c5a02417ec0225ee8923f00000000
Code: firmware branch musig2 on bitsagarob/seedsigner (helpers musig2.py, musig2_psbt.py, musig2_session.py, musig2_sp.py and their tests), simulator build served unlisted beside the SeedSigner simulator at /seedsigner-simulator/musig/wallet.html?firmware=doomsigner-musig.
