Hello ๐ folks, Iโm Kevkevin. Iโm an open-source developer and reporter for Insider Edition. Last week I reviewed several pull requests from the Bitcoin Core repo. The most-reviewed merge this week is silent payments, and the PR still doesn't open a wallet. BIP352 take 2 is on master as protocol code: public keys, private keys, and the BIP test vectors as unit tests. Receiver labels are optional in the BIP, so they stay out. The wallet scan is a different pull request.
BIP352 is the silent-payment construction. The sender tweaks the receiverโs spend key with a shared secret from the senderโs input keys and the receiverโs scan key, and pays to that one-time output. The receiver recomputes the same tweak from the input public keys. #35301 keeps that logic off the wallet and off transaction objects, so the tests do not need a wallet backend. It replaces #28122 and is built on libsecp256k1 #1765. The tracking issue is #28536. Receiving is still draft #32966.
The next merge by review activity is listrawtransactions. listtransactions only emits transactions with an economic category, so a consolidation or a self-transfer never appears. The new RPC lists every wallet transaction once, with the net balance change and the fee when this wallet funded it.
Thursdayโs #bitcoin-core-dev meeting had three topics: dergoegge is leaving full-time fuzzing work, the QML GUI group is still in design and staging, and the v32.0rc2 binaries are up.
Merged PRโs
Every week, several changes are officially added to Bitcoin Core. This week, multiple changes were merged. Here are some I found interesting this week.
Silent Payments: Implement bip352 (take 2) by Eunovo
Oghenovo Usiwoma (Eunovo) merged the second attempt at BIP352. The first attempt was #28122. This one is based on secp256k1 #1765 and tracked in #28536.
The PR is only the BIP. It takes public and private keys directly, instead of a wallet backend and transactions, and the BIP test vectors are unit tests. Labels, which let one scan key from multiple addresses, are deferred. Nothing here wires silent payments into
CWallet. That receiving work is still #32966, and it is a draft.wallet, rpc: Add listrawtransactions RPC by pablomartin4btc
listtransactionsreturns sends to an external address and receives from outside the wallet. A consolidation or a self-transfer has no external party, so it is invisible.listrawtransactionsreturns every transaction the wallet knows about, each one once. The entry carries the net wallet balance change (amount) and, when this wallet funded the transaction, thefee.countandskipmatchlisttransactions. Closes #34632.#35009, by alfonsoromanz, was closed so this could be its own RPC, which is what achow101 asked for. The PR itself lists the follow-ups: a filter (
all/received/sent/self) once the per-tx meaning is agreed, and a cleanup ofTransactionDescriptionString()fields such asreplaced_by_txidandparent_descsthat still refer tocategory.
There are always changes being updated and reviewed in real-time. Here are some notable PRโs that are still up and looking for reviews.
fees: return
block_policyfee rate estimate whenmempool_policyis not ready by ismaelsadeeqThe mempool fee estimator cannot always answer. Right after startup or a re-sync it has not tracked enough blocks. An empty or sparse mempool cannot fill the requested percentile. Recent blocks can cover too little of what was in the mempool. The mempool can still be loading. For a sparse mempool, Core used to return the fee floor (the higher of the minimum relay fee and the mempool minimum fee). That can sit far under the feerate those missing transactions would have implied.
This PR makes the mempool estimator return an error instead of flooring an unfilled percentile. The combined
estimatesmartfeepath starts from the block policy estimate and only lowers it when a mempool estimate exists. An error is returned only when block policy itself is unavailable. Callingestimatesmartfeewithfee_rate_estimator=mempool_policystill returns the failure. The first commit renames the default mode fromnonetoauto.If the mempool fails to load (persistence off, or a missing or corrupt
mempool.dat), init notifies the estimator and clears its mined-block window. Otherwise that window would still describe a mempool the node no longer has. Clearing it makes the estimator report insufficient data until the window refills, and the combined estimate uses block policy in the meantime.The mempool estimator now returns an error instead of flooring an unfilled percentile, so an empty/sparse mempool is treated like any other not-ready state rather than potentially silently underestimating.
IRC meeting notes
Every week on Thursday, there is an IRC meeting. Here are some short notes from that meeting.
๐ณ๐ท๐ฎ๐ต๐ฟ: There is one pre-proposed meeting topic this week. Any last minute ones to add?
๐ณ๐ท๐ฎ๐ต๐ฟ: Let's start with the WGs...
๐ณ๐ท๐ฎ๐ต๐ฟ: #topic Fuzzing WG Update (dergoegge, marcofleon)
๐ฑ๐ฒ๐ฟ๐ด๐ผ๐ฒ๐ด๐ด๐ฒ: After this week I won't be contributing here full time anymore (maybe in my spare time, but let's see), as I've accepted a job elsewhere
๐ฑ๐ฒ๐ฟ๐ด๐ผ๐ฒ๐ด๐ด๐ฒ: Most of my projects/work will be taken over by Brink's Marco and Eugene, so please direct any questions or review requests that you'd have for me towards them
๐ฑ๐ฒ๐ฟ๐ด๐ผ๐ฒ๐ด๐ด๐ฒ: I'll open PRs to remove myself as a security contact by the end of this week
๐ฑ๐ฒ๐ฟ๐ด๐ผ๐ฒ๐ด๐ด๐ฒ: It's been really great working with you all!
๐ณ๐ท๐ฎ๐ต๐ฟ: :/ sad
๐๐ถ๐น๐น๐ฐ๐น-๐ฎ๐ฟ๐ธ: :(
๐๐ถ๐ด๐ฒ๐ฟ๐ ๐ฎ๐ณ๐ถ๐ฎ: dergoegge: very sad. only the best
๐๐๐ถ๐ฐ๐ธ๐ถ๐ฒ๐-๐: :( thanks for all your contributions. this project is in a much safer place because of it. have fun on the next thing!
๐ฑ๐๐
๐๐ด: Thanks for all your work on fuzzing!
๐ณ๐ท๐ฎ๐ต๐ฟ: I hope to still see you around somehow if possible. All the best! Is there still some update on the WG? I guess not since marcofleon isn't here...
๐ฑ๐ฒ๐ฟ๐ด๐ผ๐ฒ๐ด๐ด๐ฒ: No update otherwise
๐ท๐ฎ๐ป๐ฏ๐ด๐ฐ: Thanks for you work, sad to see you leave. Good luck on the new job
๐ณ๐ท๐ฎ๐ต๐ฟ: I hope the next one is a better update ;)
๐ณ๐ท๐ฎ๐ต๐ฟ: #topic QML GUI WG Update (johnny9dev)
๐ฐ๐ณ๐ถ๐ฒ๐น๐ฑ๐: :(
๐ท๐ผ๐ต๐ป๐ป๐๐ต๐ฑ๐ฒ๐: Nothing too significant this week. We're working through design, issues, and staging
๐ฐ๐ณ๐ถ๐ฒ๐น๐ฑ๐: dergoegge: Thank you for all of your hard work, dergoegge!
๐ท๐ผ๐ต๐ป๐ป๐๐ต๐ฑ๐ฒ๐: That's all for qml
๐ณ๐ท๐ฎ๐ต๐ฟ: brunoerg teased a yuge update last week but I guess he couldn't make it...
๐ณ๐ท๐ฎ๐ต๐ฟ: maybe later, moving on
๐ณ๐ท๐ฎ๐ต๐ฟ: #topic 32.0 release candidate testing (sedited)
๐๐ฒ๐ฑ๐ถ๐๐ฒ๐ฑ: yes, the 32.0rc2 binaries are now available for testing.
๐๐ฒ๐ฑ๐ถ๐๐ฒ๐ฑ: the umbrella issue over here: https://github.com/bitcoin/bitcoin/issues/36315 links to both the proposed release notes and the testing guide. If you find something, do use this for tracking.
๐ณ๐ท๐ฎ๐ต๐ฟ: sedited: that's it on that topic right?
๐น๐ฌ๐ฟ๐ถ๐ป๐ฐ: thanks for your work dergoegge
๐๐ฒ๐ฑ๐ถ๐๐ฒ๐ฑ: we've picked up a few pull more requests in the milestone for backporting https://github.com/bitcoin/bitcoin/milestone/84
๐๐ถ๐ฝ๐ฎ: dergoegge: not a surprise, but still sad to see you go
๐ณ๐ท๐ฎ๐ต๐ฟ: l0rinc: you still want to give an update?
๐๐ฒ๐ฑ๐ถ๐๐ฒ๐ฑ: please do test, we've hadn't had a release note this long in a while!
๐๐ฒ๐ฑ๐ถ๐๐ฒ๐ฑ: that's all.
๐น๐ฌ๐ฟ๐ถ๐ป๐ฐ: fjahr: no, thanks
๐ณ๐ท๐ฎ๐ต๐ฟ: Anything else to discuss?
๐ณ๐ท๐ฎ๐ต๐ฟ: #endmeetingRead here for the full meetingRead the full meeting
Releases
v32.0rc2was tagged 2026-09-18 by sedited
Thank you for reading. Be sure to tune in again next week for your updates on Bitcoin Core!
If there are any comments, suggestions, or errors, do not hesitate to reach out or comment



