Latest Release

This release features:

  • Swap restore enhancements: New /swap/restore endpoint with batch public key support and custom gap limits
  • Batch sweep improvements: Added interval and amount-based triggers for automated batch claiming of swaps
  • Self-payment support: Allow submarine and reverse swaps with the same preimage for self-payments
  • Magic Routing Hints (MRH) watcher: Automated monitoring to inform clients of magic routing hint payments
  • RBF bumping engine: Naive Replace-By-Fee engine with mempool.space WebSocket client integration

Bug Fixes

  • (config) update certificate path to follow datadir (#1078) - (d8fbd5d)
  • expose invoice payment hook (#940) - (1534001)
  • invoice payment hook with no preference (#952) - (2740fc4)
  • sanitize ZMQ wildcards (#965) - (b773b79)
  • check invoice of self payments - (c27b9ed)
  • handle pending payments in self payment client - (5e435c6)
  • check for blindingKey being defined (#967) - (0c003e6)
  • ZMQ channel warnings in sidecar (#969) - (5002ce9)
  • only allow submarine and reverse swaps with same preimage (#966) - (240e8d7)
  • use second routing hint in MRH (#975) - (dd8fa94)
  • exit handle for MRH watcher (#982) - (9f57672)
  • swap failed on double lockup (#984) - (31e3a92)
  • reset pending sweeps gauges to zero (#987) - (e762674)
  • encoding of MRH in swapinfo responses (#988) - (95b5c97)
  • API docs URL (#990) - (ab9d541)
  • cancel of reverse swap invoices for self payments (#995) - (7bab357)
  • honor cancellation in mempool reconnection loop - (ecb07b7)
  • handling of two lockups in same transaction (#1002) - (6f030a9)
  • abandon webhook when no status in database (#1003) - (24003ae)
  • fail self payments when reverse swap is refunded (#1006) - (501355b)
  • add database triggers for preimage hash checks (#1011) - (7d5a4de)
  • parsing of referral id for chain swaps (#1024) - (b315f12)
  • swap rescue key drift - (1defe13)
  • exclude RSK swaps from rescue endpoints - (5e53c98)
  • bump ZMQ inactivity timeout (#1038) - (f22546f)
  • flaky Elements transaction tests - (ff5ecf7)
  • harden Mattermost WebSocket - (8d5b502)
  • run Bitcoin transaction tests in serial - (c19f1b6)
  • make node selection optional in invoice payment hook (#1069) - (1f62409)
  • Docker version build args (#1074) - (e9dcd80)
  • lower quote output amount in EVM quote test (#1098) - (67a8456)
  • sidecar span exporter - (082fb93)
  • use Node v22 for docker images - (3e7398a)
  • do not fail self payment when invoice cannot be cancelled (#1111) - (19f63f6)
  • setInvoice race condition (#1117) - (f47ab4f)
  • include swaps to RSK in restore endpoint (#1124) - (b340d15)
  • only settle confirmed lockups when invoice is set (#1125) - (0106e8b)
  • parent propagation of OTEL spans (#1126) - (55806a2)
  • gap limit for public key iterators - (584240b)

Documentation

  • add support center to resources (#954) - (b29608c)
  • add referral payout terms (#964) - (f57947f)
  • clarify transactions and code samples (#955) - (790b1d1)
  • remove testnet (#971) - (c196c5c)
  • fix MRH example (#980) - (e159bc2)
  • rephrase MRH doc (#981) - (7c3508d)
  • fix typos - (d6a4c5f)
  • fix hint formatting - (5143e77)
  • transaction.direct WebSocket event - (89eee5a)
  • BOLT12 reverse swaps - (a01edb5)
  • fix misc issues (#997) - (099c874)
  • extra fees endpoint (#1000) - (13b5e47)
  • enable search detailed view (#1017) - (1024283)
  • swagger for token swaps quotes - (7d2b32c)
  • swagger for /v2/swap/restore endpoint - (5806a8b)
  • add boltz-rust Python bindings (#1042) - (b5916b7)
  • change warning boxes severity (#1046) - (4721270)
  • fetch latest Go examples on docs build, move websocket section lower (#1047) - (8c3802e)
  • add pro stats endpoint to swagger (#1064) - (fe2c12c)
  • fix typo in rescue key docs (#1070) - (e43222d)
  • swap restore and deprecate rescue endpoint - (0bd5540)
  • remove deprecated refund files - (f2b436b)
  • API authentication - (52fc07b)
  • reword swap restore docs based on feedback - (d812069)
  • add boltz-cli to the backend development page (#1113) - (059cd93)
  • Chain Swap renegotiation - (fdc0829)
  • BIP85 child seed derivation - (7dea7fe)
  • BIP85 rewording (#1122) - (59008e2)
  • claim covenant use cases (#1118) - (a8d42c9)
  • rewrite libraries section (#1121) - (7dff883)

Features

  • add invoice to submarine swap creation hook (#941) - (269d8da)
  • amount based batch sweep trigger (#944) - (3b0df0d)
  • make node preference in invoice payment hook optional (#949) - (567d47d)
  • fallback to Webhook BOLT12 invoice fetching after Websocket timeout (#953) - (1f3ef8c)
  • time preference in invoice payment hook (#958) - (b6d6e51)
  • add ZMQ client in sidecar (#960) - (4204678)
  • allow self payments in swaps - (7a25d92)
  • pending sweep metrics (#977) - (301c417)
  • magic routing hint watcher (#974) - (d5bf7f7)
  • offerinfo command - (bccb294)
  • refund watcher (#983) - (842e4da)
  • run MRH watcher through 0-conf API (#993) - (d22f149)
  • mempool.space WebSocket client - (151e127)
  • naive RBF bumping engine - (320de84)
  • cache getrawtransaction - (eef9787)
  • CLI command to scan funds locked in contract - (23e641d)
  • prevent allowing refunds when swap has pending HTLCs (#1007) - (51a2e53)
  • blocked domains for webhooks (#1008) - (e575d60)
  • Uniswap V3 EVM quoter - (3aed747)
  • Uniswap V3 calldata encoder - (a2790eb)
  • support multiple S3 backup providers (#1018) - (06363da)
  • /swap/restore endpoint (#1010) - (9328783)
  • swap update trigger (#1026) - (04ca367)
  • harden chain swaps lockup handling (#1028) - (54e2a26)
  • Taproot swaps in Rust - (12b30f8)
  • legacy swaps in Rust - (7242b34)
  • Liquid swaps in Rust - (9908de7)
  • allow sweeping to multiple destinations - (2b522ce)
  • add createdRefundSignature to swaps (#1030) - (cf46eab)
  • rescan after ZMQ reconnection - (79745d1)
  • API endpoint to fetch status of multiple swaps (#1043) - (130724d)
  • ability to disable cooperative signatures (#1044) - (dcf471c)
  • EVM quote on output (#1055) - (45a8a71)
  • nested referral stats - (569a945)
  • rescan last block when received (#1062) - (41fbb6f)
  • cltvDelta config option (#1076) - (69ada5d)
  • timeouts for async startup in sidecar - (8e60d4c)
  • include valid invoice expiration range in error - (7c84705)
  • API endpoint to fetch invoice expiry ranges - (c25f3bd)
  • explicit error when wrong asset is sent - (d3e7dce)
  • no coop claims for refunded chain swaps (#1104) - (4131f0e)
  • add alerts for batch claim failures (#1112) - (bf6976b)
  • swap restore with single public key - (f8275cb)
  • swap restore with batch of public keys - (77b7e82)
  • custom gap limit for swap restore - (1b1cfd4)
  • endpoint to get last used swap restore index - (80a62d5)
  • interval and amount batch sweep trigger - (12713b7)

Miscellaneous Chores

  • bump LND v0.19.0-beta (#942) - (bc2d15d)
  • switch Bitcoin and Elements Core to rpcauth (#943) - (729a77a)
  • bump version to v23.3.0 (#945) - (bdc919f)
  • remove cookie authentication from docker-scripts.sh (#947) - (3442af6)
  • bump hold to v0.3.1 (#948) - (f4ffc28)
  • update dependencies (#956) - (7e2c0cd)
  • bump tar-fs from 2.1.2 to 2.1.3 (#957) - (e837df0)
  • add extraFees to swagger doc (#962) - (75c79fc)
  • update LND to v0.19.1 (#968) - (3072281)
  • bump CLTV limit delta (#970) - (f54e5b6)
  • bump dependencies - (d2d2cf0)
  • bump CLN version to v25.05 - (3e0052d)
  • default boltz-cli API endpoint to mainnet (#978) - (55e8abd)
  • update regtest config file - (3422f7e)
  • add HTLCs to self payment client - (3701398)
  • parse whole coin amounts in boltz-cli - (f2e8cb1)
  • run prettier on docs - (e259350)
  • bump hold invoice plugin to v0.3.2 (#994) - (cd892b7)
  • update dependencies (#996) - (6fe0e5a)
  • run MRH watcher only on Liquid (#1001) - (daadf9f)
  • cleanup Transaction struct - (6aefbce)
  • fix CI build cache for hold invoice plugin (#1005) - (15475dd)
  • bump LND to v0.19.2 (#1012) - (6411311)
  • update dependencies (#1016) - (b8cf450)
  • bump max supported contract version - (7f15c57)
  • bump form-data from 4.0.0 to 4.0.4 (#1019) - (aa7d326)
  • bump axios from 1.10.0 to 1.11.0 (#1021) - (96343d5)
  • apply suggestions from rabbit - (30221da)
  • cleanup key extractor - (54caa71)
  • validate OpenAPI spec in CI (#1029) - (349f88f)
  • update dependencies - (8e377b7)
  • ignore tools for eslint and prettier - (b266c2a)
  • fix Rust 1.89.0 compiler warnings - (798b565)
  • bump dependencies - (7769616)
  • minor ZMQ cleanup (#1039) - (b3bebb2)
  • improve logging for offers - (4c674e2)
  • fix typos - (2d99b5c)
  • bump cipher-base from 1.0.4 to 1.0.6 (#1048) - (0064483)
  • bump sha.js from 2.4.11 to 2.4.12 (#1049) - (be745f5)
  • bump LND to v0.19.3 (#1050) - (f77368c)
  • update dependencies (#1051) - (4b9ff63)
  • update readme nostr link to Primal (#1053) - (08a65dc)
  • bump tracing-subscriber from 0.3.19 to 0.3.20 (#1054) - (fdd3860)
  • bump CLN to v25.09 (#1057) - (8397c2d)
  • bump dependencies - (4d90292)
  • bump Bitcoin Core v29.1 (#1061) - (5ef5a3b)
  • update NPM dependencies - (ac0613c)
  • bump Rust dependencies - (f7f7023)
  • bump eclair image - (9d37d88)
  • optimize Docker images - (4bc103c)
  • bump vite from 5.4.19 to 5.4.20 (#1066) - (0c26ce3)
  • address feedback RBF bumper review feedback - (d97743d)
  • use str references in RPC client - (bfaf106)
  • bump dependencies - (5267fc7)
  • update dependencies - (0e26ccc)
  • throw for unsupported db version (#1075) - (fd9deb0)
  • switch unit tests to USDT0 (#1080) - (f7936e2)
  • bump tar-fs from 2.1.3 to 2.1.4 (#1079) - (ebefc49)
  • add missing nginx config file (#1081) - (80c4f27)
  • bump dependencies - (1742004)
  • bump Bitcoin Core to v30.0 (#1089) - (a923b6c)
  • bump dependencies - (544f777)
  • bump CLN to v25.09.1 (#1094) - (6b757c0)
  • skip logging bad-txns-inputs-missingorspent errors (#1095) - (06f03d8)
  • bump vite from 5.4.20 to 5.4.21 (#1097) - (9fe5d57)
  • bump Eclair docker image version (#1100) - (21cb99b)
  • bump validator from 13.9.0 to 13.15.20 (#1103) - (ff26c2f)
  • add timeouts to sidecar node connections - (6795e9d)
  • update dependencies - (4aa29ed)
  • bump CLN to v25.09.3 (#1114) - (6b3b944)
  • update dependencies - (071e297)
  • bump js-yaml from 3.14.1 to 3.14.2 (#1119) - (5582ea3)
  • ignore errror when setting span parent (#1129) - (c55b45b)
  • bump dependencies - (11d1418)
  • remove Rust build cache from CI - (a96a976)
  • bump LND to v0.20.0-beta - (018945c)

Refactoring

  • extra percentage fee calculation (#959) - (26f4706)
  • wait with timeout for nursery to settle self payment - (91c80c8)
  • cancel invoice when we accept self payment - (9115b3a)
  • reverse hint schema (#963) - (991f2b5)
  • improve MRH watcher performance (#986) - (e5b1246)
  • switch to vitepress - (e45ba3f)
  • swap restore endpoint (#1023) - (8b153f9)
  • use Docker regtest for bitcoin tx tests - (36e1aba)
  • transaction input to enums - (02af386)
  • harden ZMQ disconnection logic - (bf5792d)
  • harden Rust ZMQ disconnection logic - (8bd1efc)
  • check against max configured contract version (#1041) - (859e5f6)
  • cleanup BOLT12 delete endpoint - (85980fc)
  • backup provider names - (c667dc6)
  • async Mattermost command handler - (4b12dd1)
  • RBF bump refund transactions in Rust - (c4b503c)
  • remove LND onchain wallet provider - (3cb1eb1)
  • reuse output address for replaced refunds - (55bf26e)
  • switch to docker compose regtest setup - (0221960)
  • more verbose webhook error logging - (eaf8298)
  • remove HTTP body from webhook error - (3a93c25)
  • deferred claimer interval trigger - (57177ff)

Tests

  • RpcClient error tests - (5f63db5)
  • Content-Type for webhook calls (#1101) - (07dd22b)

Data updated on: 2025-11-24 16:43 UTC