The previous chapter presented three C Libraries, for RPC, JSON, and ZMQ, all of which are intended to interact directly with bitcoind
, just like you've been doing since the start. But, sometimes you might want to code without direct access to a bitcoind
. This might be due to an offline client, or just because you want to keep some functionality internal to your C program. You also might want to get into deeper wallet functionality, like mnemonic word creation or address derivation. That's where Libwally comes in: it's a wallet library for C, C++, Java, NodeJS, or Python, with wrappers also available for other languages, such as Swift.
This chapter touches upon the functionality possible within Libwally, most of which complements the work you've done through RPC access to bitcoind
, but some of which replicates it. It also shows how to integrate that work with the RPC clients that you're more familiar with. However, note that this is just the barest introduction to Libwally. Several of its more improtant function sets are highlighted, but we never do more than stick our toes in. If you find its functions useful or intriguing, then you'll need to dig in much more deeply than this course can cover.
After working through this chapter, a developer will be able to:
- Use Wallet Functions with Libwally
- Perform Manipulations of PSBTs and Transactions with Libwally
- Implement Designs that Mix Libwally and RPC Work
Supporting objectives include the ability to:
- Understand BIP39 Mnemonic Words
- Understand More about BIP32 Hierarchical Wallets
- Summarize the Functional Depth of Libwally