Bitcoindevkit Language Bindings Dev Calls 2022

This post is the collection of all dev calls agendas for the Bitcoin Development Kit language bindings in 2022. I host the call every second week on the BDK Discord voice channel. The live pages for these calls lives here on HackMD, but this page is a way to archive them and keep these call agendas public without relying on my keeping an active HackMD subscription.


May 3, 2022

📅 May 3, 2022 20:00 UTC
📍 Discord General Voice Channel

Discussion Items

  • JVM and Android API docs added to bitcoindevkit.org :book:
  • Tests in bdk-ffi and tests in language bindings libraries :male-scientist:
  • Summer of Bitcoin students (Peter and Drhuv) and projects :sunny:
  • Docs: let’s get these moving (#97) :book:
  • Useful pages for devs and maintainers :nerd_face:
  • bdk-android dropped support fo i686 (x86) (issue)
  • WASM
  • Java interop tips page
  • New release schedule :calendar:
  • Any review begs? :pray:
  • Blockers? 🪨
  • Time (potential new time 2pm UTC) :watch:

Dependent Projects and Support

  • Potential Python project (custom coin selection) @notmandatory
  • Caravan @notmandatory
  • bdk-rn BitcoinZavior
  • Java server AlexSeverin

Top Issues and PRs

FFI -> #149: Upgrade to BDK 0.18.0 FFI -> #150 Add new BumpFeeTxBuilder interface FFI -> #137: Expose address index Kotlin -> #37: Add Gradle Plugins Kotlin -> #54: Upgrade to bdk-ffi 0.6.0 Kotlin -> #47: Determine best approach for Java interop Docs -> #96 Add API docs to website

Boards

FFI project board
Kotlin project board
Swift project board
Python project board


May 17, 2022

📅 May 17, 2022 14:00 UTC
📍 Discord General Voice Channel

Discussion Items

  • bdk-ffi 0.6.0 released! 🎉
  • bdk-kotlin 0.6.0 released 🎉
  • bdk-swift 0.3.0 released 🎉
  • BDK/LDK iOS wallet @danielnordh
  • Support for x86 on bdk-android
  • How can we help the React Native library?
  • “Live docs/office hours” idea
  • Can we clean up and keep alive the iOS version of Devkit Wallet? Should we try and bring it as an official example?
  • Any review begs? :pray:
  • Blockers? 🪨

Dependent Projects and Support

Top Issues and PRs


May 31, 2022

📅 May 31, 2022 13:00 UTC
📍 Discord General Voice Channel

Discussion Items

  • Next bdk-ffi,kotlin,swift releases
  • Any review begs? :pray:
  • Blockers? 🪨

Dependent Projects and Support

Top Issues and PRs


June 14, 2022

📅 June 14, 2022 13:00 UTC
📍 Discord General Voice Channel

Discussion Items

  • “Following” the LDK announcement Discord channel
  • 0.5.1 to 0.7.0 migration guide
  • Following the BDK release schedule (should we start with 0.20.0?)
  • Version 0.7.0 of bdk-ffi should be ready this week
  • @thunderbiscuit working on indentifying APIs required in the bindings to fully interoperate with ldk-java (ldk-swift uses different bindings and so might have slightly different requirements)
  • Type-safe descriptor builder?
  • Any review begs? :pray:
  • Blockers? 🪨

Dependent Projects and Support

Top Issues and PRs


June 28, 2022

📅 June 28, 2022 13:00 UTC
📍 Discord General Voice Channel

Discussion Items

  • bdk-kotlin 0.7.0 and bdk-swift 0.4.0 are out! :tada:
  • FFI 0.7.0 brings in a ton of new stuff:
    • Send to multiple recipients
    • “Send all” functionality with drain_wallet() and drain_to()
    • Replace-by-Fee
    • Partial signatures on PSBTs
    • Separate blockchain from wallet
    • Taproot!!
  • Uniffi-rs moving to macros to build bindings (see ya UDL file!)
  • Supporting tests and examples for Kotlin (looking for a Swift version)
  • Suspending API docs for bdk-kotlin and bdk-jvm, writing migration guides
  • We’ll try and follow bdk releases for the next FFI release (0.20.0 released on 13th of July, FFI coming out on the week of the 20th)
  • I’d like to organize a hacking session for bdk-rn and bdk-flutter (maybe separate sessions?)
  • WASM
  • Any review begs? :pray:
  • Blockers? 🪨

Dependent Projects and Support

Top Issues and PRs

(ffi) MERGED: Add OP_RETURN to TxBuilder (ffi) OPEN: Add sign / verify for arbitrary messages (consider closing in favour of upstream bdk #601) (ffi) OPEN: Add child key pair generation api (ffi) OPEN: Add Wallet list_unspent method (kotlin) MERGED: Add armeabi-v7a support (python) OPEN: Update library to FFI version 0.7.0


July 12, 2022

📅 July 12, 2022 13:00 UTC
📍 Discord General Voice Channel

Discussion Items

  • @BitcoinZavior blog post about the internals of bdk-rn and bdk-flutter (live demo)
  • bdk-python 0.1.0 is out! :tada:
  • Calculating the final size of our iOS library when deployed
  • Using bdk-jvm on GraalVM (issue here)
  • Summer of Bitcoin
  • Any review begs? :pray:
  • Blockers? 🪨

Top Issues and PRs

(ffi) OPEN: Add child key pair generation api (ffi) OPEN: Add Wallet list_unspent method (ffi) OPEN: Add coin selection methods (ffi) OPEN: No way of getting block hash and block height


July 26

📅 July 26, 2022 13:00 UTC
📍 Discord General Voice Channel

Discussion Items

  • Compact Block Filters (Neutrino) group
  • RBF size of fee bump (#172)
  • Latest merges add coin control, bdk 0.20.0, and the latest uniffi-rs
  • Size of the iOS libraries update
  • LDK compatibility (3 issues)
  • bdk-rn hacking session
  • Releasing this week or waiting for key derivation API to settle?
  • Any review begs? :pray:
  • Blockers? 🪨

Dependent Projects and Support

  • Francis/Bull Bitcoin with bdk-rn?

Top Issues and PRs

(ffi) OPEN: Add child key pair generation api (bdk) OPEN: Add DescriptorKey derive, extend, to_public and to_string functions (ffi) OPEN: Add inline documentation (ffi) OPEN: Add github workflows for audit, test and fmt (ffi) MERGED: Bump uniffi-rs to 0.19.3 (ffi) MERGED: Add Wallet list_unspent method (ffi) MERGED: Add coin selection methods (python) OPEN: Fix tox build and tests


August 9, 2022

📅 August 9, 2022 13:00 UTC
📍 Discord General Voice Channel

Discussion Items

  • bdk-jvm 0.8.2 is out :tada:
  • bdk-android 0.8.2 is out :tada:
  • bdk-python 0.2.0 is out :tada:
  • @BitcoinZavior episode on the Bitcoin Developers Show
  • Potential new temporary Kotlin API docs (website, repository)
  • Updates on the child key derivation feature
  • Adding inline docs to Rust bindings file? Draft PR
  • Work on the BDK-LDK compatibility (Project Board)
  • Any review begs? :pray:
  • Blockers? 🪨

Dependent Projects and Support

  • SpotBit by BlockchainCommons (GitHub, Website) — SpotBit is a portable Flask API for Bitcoin price data and candles.

Top Issues and PRs

Python Merged: Fix Tox build and tests Open Issue: Looking to solve our path issues with loading the native libraries (uniffi-rs) Kotlin Open PR: Convert Gradle script plugin for generating UniFFI bindings into a composite build FFI Open Issue: Consider returning TransactionDetails from TxBuilder finish() method


August 23, 2022

📅 August 23, 2022 13:00 UTC
📍 Discord General Voice Channel

Discussion Items

  • BDK/LDK interop overview
  • Language bindings live (Thursdays @13:00 UTC)
  • Next release (0.9.0) week of Sept. 14
  • Any review begs? :pray:
  • Blockers? 🪨

Dependent Projects and Support

Page for projects that use BDK (let us know if you know of more!)

Top Issues and PRs

FFI Open Issue: Consider returning TransactionDetails from TxBuilder finish() method Open PR: Add fee_amount() and fee_rate() functions to PsbtUtils trait Merged PR: Add get_height and get_block_hash methods on blockchain Merged PR: Fix method names to mirror Rust bdk API Merged PR: Add child key pair generation api Open PR: Add Rust inline documentation Open Issue: Retrieve BIP32 Root Key from descriptor Open Issue: Enable building transaction for any given output script

Kotlin Merged PR: Fix CI test workflow by using Android NDK 21 Open PR: Convert Gradle script plugin for generating UniFFI bindings into a composite build Open PR: Add workflow to publish bdk-jvm


September 6, 2022

📅 September 6, 2022 13:00 UTC
📍 Discord General Voice Channel

Discussion Items

  • Release calendar :spiral_calendar_pad:
  • Using GitHub Actions to publish the bdk-jvm and bdk-android libraries (example). Do we have Swift experts?
  • bdk-jvm and bdk-android coupling
  • Integrating the BDK uniffi bindings with other uniffi projects (megazords?) 🦖
  • A custom Signer interface ✍️
  • 0.9.0 breaking changes
  • Temporary API docs (actual file) and Rust inline documentation
  • Any review begs? :pray:
  • Blockers? 🪨

Top Issues and PRs

FFI Merged PR: Refactor TransactionDetails to include confirmation_time Open PR: Add fee_amount() and fee_rate() functions to PsbtUtils trait Open PR: Expose Balance Struct Merged PR: Add the set_recipients() method to TxBuilder Open Issue: Enable building transaction from any given ScriptPubKey Merged PR: Update uniffi-bindgen to latest (0.19.6)

Kotlin Open PR: Publish bdk-jvm and bdk-android to staging


September 20, 2022

📅 September 20, 2022 13:00 UTC
📍 Discord General Voice Channel

Discussion Items

  • bdk-android and bdk-jvm 0.9.0 are out! :tada:
  • API Docs for JVM/Android 0.9.0 are live here but will eventually appear on the bitcoindevkit.org page :book:
  • Next release is on October 10
  • Language bindings libraries are signed with these PGP keys :key:
  • bdk-rn and bdk-flutter
  • Raj doing a BDK workshop in November using bdk-python :nerd_face:
  • Any review begs? :pray:
  • Blockers? 🪨

Top Issues and PRs

FFI Open PR: Make TxBuilder.add_recipient() take any ScriptPubKey Kotlin Open PR: Split libraries into independent Gradle projects Open PR: Add API Docs Python Open PR: Bump bdk-ffi submodule to v0.9.0 tag


October 4, 2022

📅 October 4, 2022 13:00 UTC
📍 Discord General Voice Channel

Discussion Items

  • bdk-swift 0.5.0 is out! :tada:
  • Steve got a PR merged upstream into uniffi-rs :tada:
  • bdk-python 0.3.0 is out! :tada:
  • Discussion around ffi repositories and overall structure
  • New blog post by Alekos on bdk_core
  • Structs and Tuple Structs
  • Coin selection event/discussion Oct. 5 @ 10:00 UTC
  • Async calls
  • Any review begs? :pray:
  • Blockers? 🪨

Top Issues and PRs

FFI [Merged PR] Add release templates and dev cycle docs, update changelog process [Closed PR] Rename KeychainKind variants to ExternalKeys and InternalKeys [Merged PR] Add Swift bindings generation support for reserved words [Open PR] Make add_recipient() take any ScriptPubKey [Merged PR] Add ability to retrieve private keys as bytes [Merged PR] Add combine() method on PSBT [Merged PR] Add fee_amount() and fee_rate() functions to PsbtUtils trait

Kotlin [Merged PR] Add bindings PGP public key and documentation on how to verify signatures [Merged PR] Add temporary API docs [Merged PR] Split libraries into independent Gradle projects

Swift [Merged PR] Update to bdk-ffi 0.9.0 (bdk 0.22) and create release 0.5.0


October 18, 2022

📅 October 18, 2022 13:00 UTC
📍 Discord General Voice Channel

Discussion Items

Top Issues and PRs

FFI Draft PR: Add compact block filters blockchain feature using the Nakamoto client Open Issue: A few concurrency-related issues Block has faced while using bdk-ffi Kotlin Open Issue: Unit tests cannot use bdk-android with current native targets Python Open Issue: Add Compact Block Filters Blockchain Client React Native Merged PR: Building React Native Apps with BDK Flutter Open PR: Building Flutter Apps with BDK


November 1, 2022

📅 November 1, 2022 13:00 UTC
📍 Discord General Voice Channel

Discussion Items

  • bdk-android, bdk-jvm, and bdk-swift released :tada:
  • New releases' page on GitHub
  • Sorting and querying transactions
  • Creating templates for building descriptors
  • Swift API docs
  • Continuing the concurency discussion
  • React Native & Flutter updates @BitcoinZavior
  • LDK-BDK interop PRs paying off (uMlando Wallet)
  • Any review begs? :pray:
  • Blockers? 🪨

Dependent Projects and Support

Iris Wallet

Top Issues and PRs

FFI Merged PR: Add simple kotlin, swift and python integration tests Open PR: Add FeeRate struct and PSBT fee_amount and fee_rate functions Open PR: Add API for generating master keys directly (Related issue: bdk #786) Open PR: Add Mnemonic Struct Open PR: Add build profile ‘release-smaller’ Flutter Align API to bdk-ffi


November 15, 2022

📅 November 15, 2022 13:00 UTC
📍 Discord General Voice Channel

Discussion Items

  • All new bindings libraries have been released (bdk 0.24.0)
  • building a uniffi-rs template for quick start w/ Rust language bindings
  • rust-bip39
  • New bdk-flutter API and blog post
  • Reducing the library sizes! :tada:
  • iOS sample app
  • Any review begs? :pray:
  • Blockers? 🪨

Top Issues and PRs

FFI Merged PR: Merge python ffi Open PR: bdk-kotlin ffi merge Open Issue: Currently rust-bip39 only supports bip39 word counts divisible by 6


November 29, 2022

📅 November 29, 2022 13:00 UTC
📍 Discord General Voice Channel

Discussion Items

Top Issues and PRs

Open PR: Add from_string() methods to DescriptorPrivateKey and DescriptorPublicKey Open PR: Add descriptor templates Merged PR: Add bdk-swift Open Issue: Add custom signer Open Issue: Explore KMP as viable library


December 13, 2022

📅 December 13, 2022 13:00 UTC
📍 Discord General Voice Channel

Discussion Items

  • bdk-flutter 0.2.0 is out :tada:
  • Bindings 0.25.0 are all out :tada:
  • Descriptor templates!
  • Africa Bitcoin Conference
  • Snapshot versions now available (see docs on how to use them)
  • Sugar library
  • BDK workshow in Nashville Feb 11
  • Any review begs? :pray:
  • Blockers? 🪨
  • Project board :clipboard:

Dependent Projects and Support

  • Secret wallet using bdk-flutter

Top Issues and PRs

Merged PR: Change TxBuilder.drain_to argument to Script instead of address String Open PR: Add descriptor templates