bitcoin++
§ Project file

One Silent Payment, Two Signers

The permanent record for this hackathon project: write-up, links, team, tags, and prizes.
Submitted Hackathon
Two airgapped DIY signers on two different crypto libraries, KISS-signer on libwally and Krux on embit, each pay with their own coin into one silent payment, using BIP-375 per-input shares and DLEQ proofs that each signer checks. The two kiss-bdk wallets coordinate over the Marmot protocol (MLS over nostr) on Mutinynet.
The write-up
Silent payments let you pay someone without either of you reusing an address. Until now, though, a silent payment had to come from a single signer holding every coin’s key. This project removes that limit.

Two airgapped DIY signers built on two different crypto libraries, KISS-signer on libwally and Krux on embit, each pay with their own coin into one silent payment. Each signer holds only its own key. It adds a BIP-375 share for its coin with a DLEQ proof, and checks the other signer’s proof before it signs. If the two crypto libraries disagree on any maths, the signer refuses. Everything travels by QR code, so the signers never touch a network.

The two kiss-bdk wallets, a command line bitcoin wallet built on BDK, pass the transaction to each other over the Marmot protocol: end to end encrypted MLS group messages carried by nostr relays, with no server of our own. The demo runs live on Mutinynet, and the recipient finds the payment with an ordinary silent payment scan.

It’s a multi-party, multivendor building block: the step any future multisig silent payment will need, shown working across two independent implementations.