Disable new L-BTC swaps following the Liquid incident - #460
Merged
YusukeShimizu merged 4 commits intoSep 7, 2026
Merged
Conversation
Prevent new exposure during the public Liquid network security incident without disabling the services needed to recover existing contracts. Reject local and remote L-BTC requests before wallet or payment actions, and preserve active swaps when their request messages are retransmitted. Keep backend initialization and recovery callbacks enabled, omit L-BTC from capability announcements, and retain Bitcoin swap behavior. Cover request rejection and persisted recovery with Bitcoin disabled. Adapt Liquid integration tests using a pinned v7.0.0 upgrade fixture. Validate with the unit and race suite, builds, and diff lint. Live-node integration requires Linux; the Nix shell is unsupported on macOS.
The capability handler receives swap messages alongside capability announcements. Reporting these recognized types as unknown produces misleading errors, including for SwapInAgreement (42073). Leave swap processing to the existing swap handler and retain unknown message diagnostics for unrecognized types. Test both logging paths.
Warn users that v7.0.1 rejects new L-BTC swaps while preserving existing recovery mechanisms. Explain that recovery depends on the network and recovered chain, and ask users to retain their data and backend setup. Link the public Liquid Network statement and include its screenshot so readers can find the incident context and official updates.
YusukeShimizu
force-pushed
the
disable-new-liquid-swaps
branch
from
September 7, 2026 04:39
77e2599 to
2a6432d
Compare
Startup still reports Liquid swaps as enabled even though new requests are refused. Make the recovery-only state clear to operators, including those who have disabled Bitcoin swaps. Use the requested refusal and recovery wording for both CLN and LND. Retain LWK network and wallet details, and update the existing config integration test to wait for the new message.
YusukeShimizu
marked this pull request as ready for review
September 7, 2026 07:38
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Disable new L-BTC swap requests following the public Liquid Network security incident.
Both local RPC requests and incoming peer requests are rejected in both directions, including forced requests. L-BTC is omitted from capability announcements. Bitcoin swaps retain their existing behavior.
Liquid backend initialization, persisted swaps, and recovery callbacks remain enabled, including when Bitcoin swaps are disabled. Recovery still depends on Liquid network availability and the recovered chain; this change does not guarantee recovery. The README includes the official statement and screenshot.
Also stop the capability handler from incorrectly logging recognized swap messages, including
SwapInAgreement(42073), as unknown. The existing swap handler continues to process them.