It started last year when I got selected for Summer of Bitcoin 2025 with SeedSigner. My task: implement BIP-352 (Silent Payments) on a hardware signer. On paper it sounded exciting. In practice, it was stepping into a half-built house — no major reference implementations, specs still in draft, no test vectors, and critically, no coordinator support. I was essentially trying to build something that the broader ecosystem hadn't fully figured out yet.

I did what any lost developer does — I read. BIP-352, BIP-370, BIP-374, BIP-375, over and over again until the pieces started making sense. I started with the easiest win: address generation (SeedSigner #769), since that's the entry point for any Silent Payment workflow. Then I moved deeper into the embit library, upgrading the PSBT spec to support PSBTv2 and the new SP-specific fields (embit #134) — the plumbing hardware devices need to actually transmit signing data.

By the end of SoB '25, I had address support working in SeedSigner. It still hasn't merged. There were moments I genuinely questioned why I picked this problem statement when I could have gone with something far more straightforward. I had no idea what was coming.


Fast forward to this year. I applied for SoB '26, this time with Krux. The landscape had shifted. Test vectors now existed, my old draft PRs had something to be tested against, and the spec had matured. I dusted off everything I'd written the previous summer and started updating those dormant PRs one by one.

Then, a few weeks ago, Sparrow Wallet shipped Silent Payment support in v2.5.0. That was the missing coordinator piece. Suddenly all the work I'd done in isolation had a real counterpart on the software side.

All the pieces were finally in place. I pulled everything into a single branch — the embit changes, the PSBT upgrades, the address generation logic — and tested it end-to-end with a real SP workflow. It worked.

My mentor, odudex, played a huge role in getting this across the finish line fast. He spun up dedicated Silent Payment branches on both Krux and embit, helped tighten up the implementation, and that focused environment let us ship at a pace I wouldn't have managed alone. You can follow the full Krux integration in Krux.

Two summers, a pile of draft PRs, and one perfectly-timed Sparrow release. That's how Silent Payments came to Krux.