in Open source projects and elsewhere.. Nothing big, mostly small bits here and there.
BitcoinJ:
recId in prefix byte of bitcoin message signing
signatures ("CompactSignature" format), realizing that I will never see a recId
of 2 or 3 in my lifetime: https://github.com/bitcoinj/bitcoinj/pull/3361
Sparrow Wallet / drongo (Bitcoin library behind Sparrow Wallet):
ECKey.getTweakedOutputKey()): use the y-parity of the full internal public key directly
instead of a redundant lift_x round trip, which also resolved an open TODO about when to
negate the private key before tweaking: https://github.com/sparrowwallet/drongo/pull/36
Satoshi-Engineering / dart-bitcoin-message-signer:
Rust BDK / rust-electrum-client:
Bitcoin Optech Newsletter:
Grin (Mimblewimble implementation):
rust-secp256k1-zkp:
Electrum Wallet:
LNURL / LUDs Repo:
h (hash): https://github.com/lnurl/luds/issues/206"Falsehoods Programmers Believe About Bitcoin" list:
Lightning Payment Proof (own project, 2026):
openssl, Python standard library) to check everything
yourself. Zero dependencies: own SHA-256, secp256k1 and BOLT11 code. Try it: https://lnproof.utxo.at, source: https://github.com/johnzweng/lightning-payment-proof
f42400f424000001)
Check credit card RSA keys for ROCA vulnerability (own hobby project, Android)
Android NFC, smartcard and Xposed hobby projects (own projects, 2014-2018):
GsmSMSDispatcher, in the IMSI-Catcher-Detector bounty thread: https://github.com/CellularPrivacy/Android-IMSI-Catcher-Detector/issues/69#issuecomment-64402695
GlobalPlatformPro (smartcard management tool):
gp -emv -unlock failing on SmartCafe Expert 6.0 cards, which report a wrong key
template (DES3 instead of AES). Got fixed in a later release: https://github.com/martinpaljak/GlobalPlatformPro/issues/66
Other cryptography stuff and fun:
Bitcoin Stack Exchange:
Mycelium Wallet (back in 2014):
NicolasDorier/docker-bitcoin repo:
General Bytes (Bitcoin ATM manufacturer):
Some of my public talks:
Ethereum, Batch sending (own project, just for learning and proof of concept):
And some stuff on Twitter (X):