Highlights
- LNv2 improvements including LNURL pay support and bidirectional LNv1↔LNv2 swaps for easier gateway operations and adoption (#7670, #7730, #7755)
- Gateway operator improvements including availability tracking, custom fee configuration, bitcoind support, and force close capabilities (#7736, #7758, #7680, #7690)
- Guardian enhancements with configurable absolute base fees, password changes, and config backup downloads (#7749, #7725, #7745, #7691)
- Iroh networking performance and stability improvements including connection reuse, optimized join times, and enhanced monitoring (#7804, #7816, #7710, #7785, #7778)
- New fedimint-client-rpc provides dedicated RPC interface for client integrations with built-in backup and recovery support (#7499, #7605)
Breaking Changes
Library users must initialize crypto provider. Applications using fedimint as a library must call the following at startup before any TLS connections:
:::rust
fedimint_core::rustls::install_crypto_provider().await
Required due to rustls 0.23 upgrade removing the implicit default crypto provider. (#7554, rustls v0.23.0)
Curated list of merged PRs
- Implement LNURL pay for LNv2 with stateless encrypted payload design #7670
- Add LNv1 to LNv2 swap for unified gateway operations #7730
- Add LNv2 to LNv1 swap enabling gateways to service any invoice #7755
- Lower default gateway LNv2 fees from 50 sats + 5000 ppm to 2 sats + 3000 ppm #7240
- Add database migration for LNURL in LNv2 #7748
- Add fedimint-client-rpc for dedicated client RPC interface #7499
- Add backup and recovery support for client-rpc #7605
- Run Iroh and legacy WebSocket APIs simultaneously for smooth transition #7776
- Implement gateway availability tracking and selection #7736
- Add support for customizing default gateway fees #7758
- Enable gatewayd to use bitcoind directly #7680
- Add gateway force close channel capability #7690
- Allow guardian password changes with atomic re-encryption #7745
- Add guardian config backup download #7691
- Add wallet repair functionality #7599
- Make absolute base fees configurable by leading guardian #7749
- Enable client to fetch and switch to new config #7626
- Add Iroh connection reuse to improve performance #7804
- Add WebSocket connection reuse #7817
- Expose connection type (direct vs relayed) in UI #7778
- Add ability to disable Iroh's use of DHT #7816
- Monitor and log Iroh connectivity status #7710
- Set mint module base fee to 100msat to limit disk space usage #7725
- Use separate environment variables for bitcoind username and password #7602
- Announce federation on Nostr link #7598
- Add online e-cash validation to mint-cli #7597
- Implement trimable client event log #7639
- Add pagination to esplora get_script_history #7685
- Add fedimintd version tag to guardian dashboard #7729
- Optimize join time when Iroh is used #7785
- Fix sync percentage display calculation #7614
- Fix panic on API calls when primary module unavailable #7803
- Fix don't fail when unannouncing from federation #7838
- Fix LDK open channel polling #7728
- Fix recurringd LNURL indices to prevent sync issues #7653
- Update deployment documentation #7708