Quarterly Update Q4 2023
This quarterly update is all about breaking records. Not only is it the latest update we’ve ever published, it also contains the most words and most links of any Spiral blog post. Thanks to the latter, parts of it are almost illegible.
🌀 Long, Late, and Linky: The Ultimate Spiral Quarterly Blog Post
Being late by over a month to publish a quarterly update is a first for us. But tardiness is just the sort of thing that happens when you’re trying to replace everyone’s bad money with good money: You tend to have a lot going on.
Don’t already subscribe to this Newsletter? Sign up here. If you do subscribe, subscribe again. Subscribe everyone you know. There’s literally no limit to how many gold bugs’ email addresses you can add.
Anyway, in September, we brought on our second bitcoin wizard, Yuval Kogman, who is working on several privacy-improving projects for bitcoin transactions.
In October, we announced Who is Bitcoin?, an incredibly stupid but educational bitcoin 101 video featuring a puppet that people without souls are all probably a little tired of us posting about. If your soul is intact, however, you can help us make bitcoin funnier, friendlier, and more accessible by sending the full 10-minute video to everyone you know who doesn’t quite get bitcoin. Once that’s done, give bitcoin’s big orange boy a follow on YouTube and TikTok. (You get points in the Bitcoin Afterlife for doing both.) Or, if you simply want to know why we would spend months of the only lives we’ll ever get working on such a thing, check out this blog post or Bitcoin’s appearance on the What Bitcoin Did podcast. Since a puppeteer almost died during a New York City heatwave to bring you this content, they’re worth your time.
In July, the Lightning Development Kit added a feature that lets developers integrate anchor outputs into Lightning applications. Spiral developer Wilmer Paulino blogged about how anchor outputs improve security and usability. You can also skip the reading by watching his appearance on Bitcoin Developers.
Mutiny, a lightning wallet for the web, went into Beta with LDK this quarter. Noted mutineer @benthecarman posted about why they went with LDK, then further discussed what Mutiny is building with LDK on the Bitcoin Review Podcast (at 44:31). For more Mutiny content, @BTCsessions’ Mutiny tutorial is excellent.
LDK shipped releases number 117 and 118 this quarter. 117’s highlights include batch channel opens, basic watchtower client support, important fixes for anchor channel users, and Custom HTLC TLVs. 118 offers fewer highlights but it offers a big one: alpha BOLT12 support for sending and receiving. LDK is seeking feedback from the kind of early testers who won’t spare our feelings.
Several LDK contributors recently presented at TABConf, the conference with so much floor space that going from booth to booth requires a full tank of gas. @jurvistan, a former Summer of Bitcoin student, spoke about the frequent challenges that mobile engineers encounter when implementing self-custody Lightning wallets (and how LDK addresses them). Then, to much fanfare, Spiral developer @arikaleph and bitcoin’s greatest showman, spoke about Rapid Gossip Sync.
Speaking of Summer of Bitcoin, this year saw a lot of interns contributing to LDK, the project we’re always going on about. @ConorOkus mentored @Roy0Anonymous, who worked on creating a complete LDK sample app in Swift/iOS (see the short tutorial he made). Never the sort of person to turn down work if it serves bitcoin’s interests, Conor also mentored Prakhar Saxena and helped him with LDK lnprototest integration. Our agent in Berlin, @_tnull, mentored @Shantanu_rg13, who’s working on a pull request for LDK-LSP client. Finally, Wilmer mentored @alecchendev, who blogged about his experience here.
Thanks to beloved friend of the Lightning Network @BitcoinZavior, LDK Node is now available for Flutter and React Native. You can see his demo here (but ABSOLUTELY NOT here, here, or especially here). @matthewramsden wrote a guide outlining how to develop iOS Wallets with LDK Node. Meanwhile, progress is also being made to add LSP support to LDK Node. We’ll try to think of a joke about that when the time is right to go into details about this important addition.
The Bitcoin Development Kit team released the poetic, almost Shakespearean-sounding “1.0.0-alpha.2” in October. It’s a big release that implements improvements like @evanlinjin’s bitcoind RPC-based blockchain client module, which enables quick syncing to bitcoind, even for wallets tracking many addresses. @evanlinjin himself recently merged a major change to Implement linked-list LocalChain, which increases efficiency and thread-safe block data storage. Finally, Evan appeared on the 億聰哲史 podcast, helped start a new BitDevs in Taipei, and gave a talk and workshop at the inaugural Bitcoin Thailand conference.
Not to be outdone by Evan’s prolific quarter, @vladimirfomene did some required, usability-boosting refactoring of chain update structures. If you’ve made it this far and you’re still reading, let us know if all this detail is actually helpful by pinging us on Nostr: npub1spralxq6jlw5rdy0249vqr5sh43rfrlx2wzv3rhjjqedw559w9psrs8s72
BDK legend @danielabrozzoni also had a big few months. She performed an overdue upgrade to rust-bitcoin 0.30, which increased interoperability with other rust-bitcoin-based projects. In addition, her rust-miniscript planning module PR was merged. This work lays the foundation for future improvements to the BDK transaction builder. Because she is Italian and they have a very rich coffee culture, she also went on to work with @LagginTimes to implement a new and improved set of tests to prevent conflicting transactions in the TxGraph structure before and after teaching lessons on Bitcoin and BDK for the cubo+ mentoring program, giving a talk at hack.bs.it on Rust, and appearing on the “Il priorato del Bitcoin” podcast to talk technical news (BIP324, covenants, drivechains, Ark, etc).
Big-time BDK fanboy @notmandatory removed the TransactionDetails type from the Wallet API and replaced it with new functions that provide the same info. He also hosted a workshop at TABConf2023 about using the new BDK 1.0 syncing mechanisms.
INTERMISSION Since this month’s BDK section is a little out of hand, here’s a brain-soothing intermission that can be watched or listened to for as long as you want it to be.
Updates were made to language bindings, including bdk-android, BitcoinDevKit (Swift library), bdkpython, bdk-rn, and new BIP-86 (Taproot) descriptor templates. These language bindings improve tool and system documentation, creating templates that other Rust-based bitcoin projects can leverage. Check out the uniffi examples website and Rust language bindings template for more information.
Speaking of more information, thanks to @BitcoinZavior, Flutter now supports macOS in addition to Android and iOS. BZesus appeared on the Bitcoin Developers channel and demonstrated how easy it is to create a Bitcoin app using bdk-flutter. That full demo is on GitHub.
Finally, three successful BDK-related Summer of Bitcoin projects wrapped up this quarter, including a new Swift iOS Demo Wallet, Payjoin support to bdk-cli, and big improvements to Padawan Wallet (the best-looking wallet, maybe?). Hats off to @reez, @notmandatory, @DanGould, and @thunderbiscuit for being great mentors and to @Ytemiloluwa and @Prakhar for being even greater mentees.
🌀 Bitcoin Design Community
Spiral grantees @MogashniNaidoo, @danielnordh, and @GBKS have been leading efforts to create the Bitcoin Design Foundation, a non-profit, grant writing organization not unlike our own. The foundation will bring longer-term sustainability to the efforts of the Bitcoin Design Community, which we very, very proudly helped kickstart. Donations and grant applications can be made via Open Collective. For questions, join the Bitcoin Design Discord’s #foundation channel.
Another Bitcoin Design Community-centric initiative, the Saving Satoshi project, which teaches developers how to contribute to bitcoin initiatives, added a fourth chapter to their project. The team is currently working on chapter 5 (message verification) and 6 (constructing transactions). If you try it, they would love feedback.
Turns out October is a big month for hackathons. Bolt.Fun started two such tournaments, Legends of Lightning Vol 2 and Nostrasia. Legends of Lightning Vol 2 is still going strong and will run until December 17th. 219 makers and 62 projects in total are helping develop Lightning and Nostr. Meanwhile, Nostrasia, a month-long hackathon that took place in Tokyo culminated in a special three-day sprint and live event. There were 120 makers, 37 projects, and four winners: eNuts, Shopstr, Zapddit, and Nosskey, all great projects with great names.
Plebpoet represented the community at TABConf where Summer of Bitcoin students Tanishka (developing uMlando wallet) and Satyam (developing a Lightning for the visually impaired) made big progress on their projects.
The crew over at Wallet Scrutiny, a frequent Bitcoin Design Community collaborator and Spiral-backed project, has been doing live Twitter spaces. Follow them on Twitter to see when the next one is happening.
Lots of work has been done on the Bitcoin Design Guide. Recent updates include improved search, new pages for send fees, custom spending conditions, and resources for code libraries based on the guide and UI Kit. A version of Bitcoin Icons was also released. Looking to contribute? Here’s an intro and a list of open issues. Sign up for the Bitcoin Design Community newsletter if you haven’t already. It’s the rarest thing in the world: a newsletter worth reading.
🌀 New Grants and Renewals
Our grant program is still growing. Know someone with the know-how and ambition to improve bitcoin but without the time and resources to go full-time? Send them our way: firstname.lastname@example.org
Here’s who received a grant or had one renewed last quarter.
🌀 Some Grant Updates
BTCPayServer teamed up with Spiral and the LDK community folks to build the BTC Pay App, which aims to replicate the success and impact of BTCPayServer for e-commerce payments.
Fedimint, one of the most exciting projects in the space bar absolutely nothing, made its first official release. It contains the necessary functionality to set up federations using ecash, bitcoin custody, and Lightning capabilities. It was comprehensively tested at TabConf last month and is available to try out on MutinyNet.
🌀 Conference and Media Appearances
BITCOIN DEVELOPERS YOUTUBE CHANNEL
Reproducible Builds with Wallet Scrutiny
@ConorOkus and @LeoWandersleb go through Wallet Scrutiny’s step-by-step reproducible build methodology and explain how to rectify a situation when a build fails.
Anchor Outputs with LDK
Wilmer Paulino demonstrates how to modify the ldk-sample node to use Anchor Outputs.
Lightning Development with Swift: Make Your First Lightning App with LDK Node Swift
@matthewramsden shows how to develop a native iOS Lightning wallet using LDK Node with Swift.
@arikaleph spoke at TABConf about improving Lightning Mobile Wallets with Rapid Gossip Sync.
Thanks for making it through another one of these, even if you just scrolled to the bottom. We get the clicks either way.