Latest Release
- Repository: BoltzExchange/boltz-backend
- Published on: 2025-11-24 16:17:11 UTC
- Version Tag: v3.12.0
- By: michael1011
- On GitHub: BoltzExchange/boltz-backend/releases
This release features:
- Swap restore enhancements: New
/swap/restoreendpoint 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/restoreendpoint (#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)
cltvDeltaconfig 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
Data updated on: 2025-11-24 16:43 UTC