From 9de99fe8802dbc101340a8bdc3bd7566d03d171e Mon Sep 17 00:00:00 2001 From: thunderbiscuit Date: Thu, 27 Aug 2026 09:18:51 -0400 Subject: [PATCH 1/2] chore: bump zensical to 0.0.57 --- pyproject.toml | 2 +- uv.lock | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 2d740c939b..8d1d21b4f5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,5 +8,5 @@ dependencies = [] [dependency-groups] dev = [ - "zensical>=0.0.50", + "zensical>=0.0.57", ] diff --git a/uv.lock b/uv.lock index bce4ae33f6..c5bdb30cda 100644 --- a/uv.lock +++ b/uv.lock @@ -15,7 +15,7 @@ dev = [ [package.metadata] [package.metadata.requires-dev] -dev = [{ name = "zensical", specifier = ">=0.0.50" }] +dev = [{ name = "zensical", specifier = ">=0.0.57" }] [[package]] name = "click" @@ -216,7 +216,7 @@ wheels = [ [[package]] name = "zensical" -version = "0.0.50" +version = "0.0.57" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "click" }, @@ -228,18 +228,18 @@ dependencies = [ { name = "pyyaml" }, { name = "tomli" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/14/79/f7959b13c766a831f1248779bb718555f70f40c5b8e68db7de1de9936662/zensical-0.0.50.tar.gz", hash = "sha256:7040e52ebe5e6a275e4edeb351bf2bc314d007f3fb5750f178a38d840723e69c", size = 3979246, upload-time = "2026-07-09T13:52:11.908Z" } +sdist = { url = "https://files.pythonhosted.org/packages/83/f4/fa40086c46a2e59e3d9239031f76623622e60e0d79f3df1282df2797a5c4/zensical-0.0.57.tar.gz", hash = "sha256:25fcbdf89a57153cc3ad1108a89d17c7226da5d3c551a8839c69cbd9c472a9d8", size = 4000458, upload-time = "2026-08-21T20:43:49.5Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c2/d2/e126d56642a5fd437eeb5a067b7c0d1f766c08e22d6a708bb923986f1d44/zensical-0.0.50-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:26dda9dbacab84db2743726f83202798e1893fbfddecb6a845812d7a331043ad", size = 12817706, upload-time = "2026-07-09T13:51:29.624Z" }, - { url = "https://files.pythonhosted.org/packages/bd/9b/e1a22fb4ea8fc3e8377d7b394ee06cf0349e7f9a64ecb4c9873dee79b102/zensical-0.0.50-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:376887def6470c57509b48519870f74e2b987e30509cf5c819fcf372771f9403", size = 12691061, upload-time = "2026-07-09T13:51:33.194Z" }, - { url = "https://files.pythonhosted.org/packages/38/f5/16c087635680efb39e1d7b7aa3c2cca548305aa29ad51dee04f37b32b65f/zensical-0.0.50-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2bbf3034a2cb1a9d2a72a5ee7047688717c93da0d8a90d25dd871db8d5f33a6d", size = 13129505, upload-time = "2026-07-09T13:51:36.383Z" }, - { url = "https://files.pythonhosted.org/packages/65/30/50d02402e53aa01a5c5c116a3522c7bb18d6ae4da964d8b236173b6fa086/zensical-0.0.50-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:26fe4167663d544ca385ef420a49d3b738c7606a79d7a62a6bedcbf74cd383e7", size = 13055300, upload-time = "2026-07-09T13:51:39.748Z" }, - { url = "https://files.pythonhosted.org/packages/cf/0f/45f4f3e56a6483ea9f88478b20d6b434718e7c46579239589202e5135ec1/zensical-0.0.50-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8813d1f8895b19520d4a982d6bfcfd06372d73d96e6a63f0d2cf8f3b6036d5a1", size = 13445447, upload-time = "2026-07-09T13:51:43.106Z" }, - { url = "https://files.pythonhosted.org/packages/33/9b/1f5065c664afde6a63e0ada8c14eae75f9e6960df597a5ca28c07340f938/zensical-0.0.50-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a64f957f94f7d8e8847a7f1e8205509ba4b188c93c157c5e7be49bcb8556a127", size = 13098775, upload-time = "2026-07-09T13:51:46.437Z" }, - { url = "https://files.pythonhosted.org/packages/46/65/1e42e18d8f9a0cb9fcc8b871852810c7fe196237b79aaa831e863325091e/zensical-0.0.50-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:781d333bcb42c6a6b92360e05eadc944e2674794e1a95537971de1bf64cb9f89", size = 13305922, upload-time = "2026-07-09T13:51:51.107Z" }, - { url = "https://files.pythonhosted.org/packages/50/36/9cace194ba13aef3bdde8ca2d327f3a05cdf5c456e94f6d896852e2cbd38/zensical-0.0.50-cp310-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:5d0f86eec76c23efb04566cd444bf025845ac8a02e75c8a6b4af13a39a2a9955", size = 13325488, upload-time = "2026-07-09T13:51:54.883Z" }, - { url = "https://files.pythonhosted.org/packages/b1/80/2891a9316e486794dae43151561b49f3313499cfb2c95c7886abad7bcf2d/zensical-0.0.50-cp310-abi3-musllinux_1_2_i686.whl", hash = "sha256:392a7299a3c4d1ac7ff288bbed181d77a9fd23e6614180476e01630aaee0d67e", size = 13496866, upload-time = "2026-07-09T13:51:58.257Z" }, - { url = "https://files.pythonhosted.org/packages/7e/09/fbd3af58081a0d399fa913ef1f2fd6a007f2f06f7026c8d6a6096e34b996/zensical-0.0.50-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:cac3448d8c8a76dfb43e55908b4ca9ad17596aee89a9287a184c1a0ba7dce2a2", size = 13437565, upload-time = "2026-07-09T13:52:01.766Z" }, - { url = "https://files.pythonhosted.org/packages/d3/79/709311ff202326260ff223fb6e9ddefa3100474c428e3c70a04036cefe0e/zensical-0.0.50-cp310-abi3-win32.whl", hash = "sha256:32b244f96a930f68e049b2e03d50790c120ef701b6277ddd854905a33040c75f", size = 12371966, upload-time = "2026-07-09T13:52:05.207Z" }, - { url = "https://files.pythonhosted.org/packages/e3/e1/4babb30544d7465c95a6a93abc0680b1c51752411a225c2b7f2cb44e80c7/zensical-0.0.50-cp310-abi3-win_amd64.whl", hash = "sha256:2f054769bf96ae46353de3eca2463ad4db6df1da9fde515c6d7fc54c3608e615", size = 12604832, upload-time = "2026-07-09T13:52:09.013Z" }, + { url = "https://files.pythonhosted.org/packages/92/b9/49c37dc65105d1ca4a8b600a02c84ece00218d2293b2630611c620185ca3/zensical-0.0.57-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:98867d1a6ea2c57f1ebcf4902f61601f427350f2df0c04e30cfac8ba6163cd29", size = 12888507, upload-time = "2026-08-21T20:43:20.365Z" }, + { url = "https://files.pythonhosted.org/packages/05/f7/54539984418de11387bbace39a744195555d32c98c95bf4d112b432548f5/zensical-0.0.57-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:0d7935d77d73a279545052e05d89d31960f30c1f33f53933f4c101fa271aee74", size = 12778169, upload-time = "2026-08-21T20:43:22.879Z" }, + { url = "https://files.pythonhosted.org/packages/40/16/74aa60aa4cfecd5bd31ce60cb6a092cb56f1bc1aaadcc173463861ea4eb5/zensical-0.0.57-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b7046d433511d97aa603915f0f6792d15b7f839793abc2b66ab7b7ff753ecff5", size = 13230823, upload-time = "2026-08-21T20:43:25.141Z" }, + { url = "https://files.pythonhosted.org/packages/8a/d1/742d2487dd65dd18277daebcd37db56d5bd4a2408df02bde703ef8fb7b64/zensical-0.0.57-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ab85c5066b95e3a877cf8971e4ce30abb1ca1459fbfcc631f0a5a2bab56351a4", size = 13170523, upload-time = "2026-08-21T20:43:27.456Z" }, + { url = "https://files.pythonhosted.org/packages/56/6f/12b570775d344f1a3d77e26d4ae0160bcac9e41ca38f7135352ccdf9b2c8/zensical-0.0.57-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f13d1b57ad3c8b8634933a93ea870ebac11245fe0c968d27fd2a059ee1c6311", size = 13549941, upload-time = "2026-08-21T20:43:29.964Z" }, + { url = "https://files.pythonhosted.org/packages/7b/4e/436e6fc76674244c084ef7f6f17dc5ff85c76b15aef77c48b703fd0a2dda/zensical-0.0.57-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:021dd8fb70d1816cd012684fcf45d32b8f88a0cd28b7cbe71e5f8564f6d5764d", size = 13210086, upload-time = "2026-08-21T20:43:32.098Z" }, + { url = "https://files.pythonhosted.org/packages/ef/52/20f3aeda9af1090f24241670a5cc20fff7494545fea9f5fa094c82f3dbdf/zensical-0.0.57-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:7e10f3c27fdc3eac3a9ae6ddcd87f3f00edc9f332050923313c95537961bfadd", size = 13408253, upload-time = "2026-08-21T20:43:34.258Z" }, + { url = "https://files.pythonhosted.org/packages/e1/f2/2b18ba2f19674dbfcf745f3b66e005cc8efa66a1bcaba5e1b4f79467868a/zensical-0.0.57-cp310-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:78c85fee55c5aac3bdf8157e980c56397dca835167a5577c5429b5eb24ed990c", size = 13446689, upload-time = "2026-08-21T20:43:36.527Z" }, + { url = "https://files.pythonhosted.org/packages/05/ba/68cdba447a9097e5f97742eef046020c6fa42d82972849b3a46a0718e890/zensical-0.0.57-cp310-abi3-musllinux_1_2_i686.whl", hash = "sha256:478d252e1924f3876e72cf7806967cb62e50d86eddb3da04bf43e882b532fa1b", size = 13598580, upload-time = "2026-08-21T20:43:38.646Z" }, + { url = "https://files.pythonhosted.org/packages/ec/89/6358a4df272328bed5bea90b04d43e73758bc45ff058c5cb2665e1147314/zensical-0.0.57-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:66a9ca6b5f625b2a2b215eec2f3c72843a92d5d512042045ac6351d5dee9b339", size = 13557609, upload-time = "2026-08-21T20:43:40.866Z" }, + { url = "https://files.pythonhosted.org/packages/77/e1/8831301a24f736743e3788f09ea048918b0bdcea4aaa90f7770a433d6eec/zensical-0.0.57-cp310-abi3-win32.whl", hash = "sha256:f0fe3dc27ca7dc4e168eddd0fe5b0f4d44e311fd4e0019241e289819e445203c", size = 12446805, upload-time = "2026-08-21T20:43:43.097Z" }, + { url = "https://files.pythonhosted.org/packages/d7/3f/5d0ecd77d9ce962fdfde22dec036f4257a43ef6dbd55fb5c05fd294985ad/zensical-0.0.57-cp310-abi3-win_amd64.whl", hash = "sha256:a756834025c1c54e806e943be6d8df1048d0f8bcf6086e958568407a070a2572", size = 12716781, upload-time = "2026-08-21T20:43:45.273Z" }, ] From 106453363df62b8328a080b64c835f692b74faa8 Mon Sep 17 00:00:00 2001 From: thunderbiscuit Date: Mon, 31 Aug 2026 14:17:56 -0400 Subject: [PATCH 2/2] update: publish 2026 Q2 update --- docs/blog/2026_q2_update.md | 53 +++++++++++++++++++++++++++++++++++++ zensical.toml | 1 + 2 files changed, 54 insertions(+) create mode 100644 docs/blog/2026_q2_update.md diff --git a/docs/blog/2026_q2_update.md b/docs/blog/2026_q2_update.md new file mode 100644 index 0000000000..c19849bbf5 --- /dev/null +++ b/docs/blog/2026_q2_update.md @@ -0,0 +1,53 @@ +# 2026 Q2 Update: What Have We Been Up To? + +:lucide-pen-tool:   [`thunderbiscuit`](https://github.com/thunderbiscuit) +:lucide-calendar-1:   `Aug 27, 2026` + +--- + +Q2 2026 is the quarter the 3.0 line landed. `bdk_wallet` 3.0.0 shipped in April, 3.1.0 followed in June, and the 3.0 API made its way out to every language we support: Swift, Kotlin, Android, JVM, Python, React Native, and Dart. Along the way we welcomed two new corporate members to the BDK Foundation, added two new grantees to the team, and published the first release of a brand new library. + +Here are some of the notable releases and changes over Q2 to the software libraries we maintain: + +- **`bdk_wallet` 3.0.0 is out!** [The 3.0.0 release](https://github.com/bitcoindevkit/bdk_wallet/releases/tag/v3.0.0) brings persistent UTXO locking, structured wallet events, the adoption of `NetworkKind` throughout the codebase, support for importing and exporting the Caravan wallet format, and a migration utility for SQLite databases created before version 1.0. +- **Release 3.1.0 of `bdk_wallet`.** [This release](https://github.com/bitcoindevkit/bdk_wallet/releases/tag/v3.1.0) adds the `Wallet::sign_with_signers` method, which gives callers control over the signing process by accepting a custom list of signers, as well as a `LoadParams::two_path_descriptor` method for validating descriptors loaded from persistence. It also carries a long list of bug fixes, and we added a `SECURITY.md` document to the repository with instructions on how to report vulnerabilities. Eight developers made their first contribution to the library in this release! +- **Release 2.4.0 of `bdk_wallet`.** For teams not ready to jump to 3.0 yet, [the 2.4.0 release](https://github.com/bitcoindevkit/bdk_wallet/releases/tag/wallet-2.4.0) backports the pre-1.0 SQLite migration helper and the new event tracking methods to the 2.x line. +- **Release 3.0.0 of the language bindings.** [bdk-ffi 3.0.0](https://github.com/bitcoindevkit/bdk-ffi/releases/tag/v3.0.0) brings the 3.0 API to Swift, Kotlin, Android, JVM, and Python. Highlights include the new `NetworkKind` type, locked outpoints and their persistence, the wallet event helpers, a much more complete set of `Descriptor` constructors, transaction builder controls for sighash and transaction ordering, and optional timeout and retry parameters on the Electrum client. +- **`bdk-rn` 1.0.0.** Our [React Native library](https://github.com/bitcoindevkit/bdk-rn/releases/tag/v1.0.0) reached 1.0, built on the 3.0.0 API of bdk-ffi. +- **`bdk-dart` release candidates.** The [Dart/Flutter bindings](https://github.com/bitcoindevkit/bdk-dart) published their first two release candidates on the road to 1.0, tracking bdk-ffi 3.0.0, publishing to pub.dev, and adding Android 16 KB page-size alignment so the native library meets Google Play requirements. If you are building a Flutter bitcoin wallet, this is a great moment to try it out and send us feedback. +- **Release 0.2.0 of `bdk-tx`.** [This release](https://github.com/bitcoindevkit/bdk-tx/releases/tag/0.2.0) is a big one for our transaction building library: a reworked change output API through the new `ChangeScript` type, improved timelock and spendability handling, anti-fee-sniping support (BIP326), per-input sequence control, and better encapsulation of the selection result. +- **Release 0.25.0 of `rust-electrum-client`.** [The 0.25.0 release](https://github.com/bitcoindevkit/rust-electrum-client/releases/tag/0.25.0) implements Electrum protocol v1.6, adds dynamic authorization support, simplifies the cargo features, and relicenses the crate under MIT/Apache-2.0. +- **Releases 0.16.0 and 0.17.0 of `bdk-kyoto`.** Our compact block filters chain source was updated to track the latest releases of the [bip157](https://crates.io/crates/bip157) crate. +- **A new library: `bdk-message-signer`.** [Version 0.1.0](https://github.com/bitcoindevkit/bdk-message-signer) of a new library shipped this quarter, providing a script-generic signed message format for proving fund availability or committing to a message. +- **The Book of BDK is on 3.0.** All Rust, Swift, Kotlin, and Python examples have been updated to the 3.0.0 API, the Kyoto example now uses the 0.17.0 API, and we published [release notes](https://bookofbdk.com/release-guide/3.1/notes/) for the 2.4, 3.0, and 3.1 releases. The Python examples moved to the `uv` build tool and the Kotlin examples to the Amper toolchain. +- **Example wallets on 3.0.** Our sample Android app, the [Devkit Wallet](https://github.com/bitcoindevkit/devkit-wallet), followed the release candidates through May and now runs bdk-android 3.0.0, and the [BDK Swift Example Wallet](https://github.com/bitcoindevkit/BDKSwiftExampleWallet) was updated to bdk-ffi 3.0.0 as well. +- **A new website.** The website you're reading this on was rebuilt on [Zensical](https://zensical.org/) and deployed in April, with a new logo, icons, and favicon. We also published a PGP key for [security@bitcoindevkit.org](../foundation/pgp.md) so that vulnerabilities can be reported to us privately. + +## New Foundation Members + +Two new corporate members joined the BDK Foundation this quarter (see the [full announcement](2026_q2_new_bdkf_members.md)): + +- **[Satoshi Pacioli Accounting](https://satoshipacioli.com)** — bridging traditional and bitcoin-specific accounting, with expert help for tax compliance and financial operations. +- **[mempool.space](https://mempool.space)** — the leading open-source bitcoin blockchain explorer and mempool visualizer. + +Corporate members' yearly dues fund the small team of open source developers who maintain the core BDK libraries and the supporting FOSS projects around them. Thank you! + +## Our Grantees in Action + +Two new grantees joined the team this quarter, both funded by [Btrust](https://www.btrust.tech/): + +- **[John Osezele](https://github.com/Johnosezele)** is a mobile engineer working on the Dart language bindings. He is a co-maintainer of [bdk-dart](https://github.com/bitcoindevkit/bdk-dart) and leads the development of the [BDK Dart Wallet](https://github.com/bitcoindevkit/bdk-dart/tree/main/bdk_demo), a demo app built in Flutter. +- **[Abiodun Awoyemi](https://github.com/aagbotemi)** works on wallet infrastructure and transaction building. He is a co-maintainer of [bdk-tx](https://github.com/bitcoindevkit/bdk-tx) and leads the development of [bdk-message-signer](https://github.com/bitcoindevkit/bdk-message-signer). + +See our [grantees page](../foundation/grantees.md) for the full roster of developers funded through the Foundation. + +## BDK in the Wild + +Q2 saw new projects integrating BDK into their software and being added to our [adoption page](../adoption/all.md): + +- [Grimm App](https://usegrimm.app/) — a self-custodial bitcoin wallet supporting on-chain and Lightning payments. +- [Cyberkrill](https://github.com/douglaz/cyberkrill) — a comprehensive CLI toolkit for Bitcoin and Lightning Network operations, written in Rust. +- [Tetrapolar](https://tetrapolar.com) — bitcoin-native settlement for global trade. +- [Ibis Wallet](https://github.com/aeonBTC/IbisWallet) — Self-custody modular Bitcoin wallet built for power users, with a focus on privacy and customizability. + +We're always happy to see new projects choosing BDK as their wallet foundation. If your project is building with BDK and isn't listed yet, let us know! diff --git a/zensical.toml b/zensical.toml index 07e4df2295..dd47c63472 100644 --- a/zensical.toml +++ b/zensical.toml @@ -49,6 +49,7 @@ nav = [ { "Web" = "adoption/web.md" }, ]}, { "Blog" = [ + { "2026 Q2 Update" = "blog/2026_q2_update.md" }, { "2026 Q2 New BDKF Members" = "blog/2026_q2_new_bdkf_members.md" }, { "2026 Q1 Update" = "blog/2026_q1_update.md" }, { "2025 Q4 Update" = "blog/2025_q4_update.md" },