Skip to content

wavelength v0.2.0

Latest

Choose a tag to compare

@github-actions github-actions released this 23 Oct 12:50
· 21 commits to main since this release
v0.2.0
b82bd54

Wavelength v0.2.0 — Mainnet is open

Wavelength v0.2.0 is our first public mainnet release. Anyone can now join—no invitation required.

This release adds scheduled batches, free-only automatic refresh, and clearer payment status, alongside stronger signing checks and more reliable recovery. These notes cover changes since v0.1.2.

Get started with the daemon setup guide.

Stronger mainnet safeguards

The daemon now rejects plaintext operator and swap connections, public development passwords, and externally exposed HTTP gateways on mainnet by default. Mailbox traffic is restricted to the configured operator. (#1427, #1429)

Scheduled batches and visible waiting times

Wavelength can join operator-published batch windows, accounting for clock differences and signing the selected slot into its request. Round status, wallet activity, and wavecli now show why an operation is waiting and when it plans to join. (#1332, #1447)

Free-only automatic refresh

Automatic refresh waits for the operator’s free-refresh window and rejects any quote that charges a fee. Paid refresh remains available through an explicit request. Critical exits still proceed when needed and can incur on-chain mining fees. (#1391)

Stronger checks before signing

Incoming virtual transaction outputs (VTXOs) now require expiry evidence tied to their actual funding path. Signing checks verify spending scripts, transaction fields, and swap funding records before releasing signatures. Decoders also reject malformed or oversized records more defensively. (#1244, #1413, #1428, #785)

Clearer payment outcomes and credit limits

Credit spending and top-ups now have separate, explicit limits; both default to zero. Definitive payment failures stop lingering as pending, while transfers that have already committed signatures retain their recovery paths. Successful credit-only payments expose their payment preimage in activity history. (#1415, #1407, #1409, #1392)

More reliable round and exit recovery

Accepted rounds have persisted deadlines, and failed rounds release deposits when it is safe to retry. Exit recovery handles more broadcast failures and fee-rejected sweeps without mistaking an uncertain response for success. (#1317, #1393, #1319, #1356)

Accounting that survives restarts

Accounting commits alongside round completion and boarding sweeps, preserving attribution after a restart. Own-wallet transfers and recycled deposits no longer inflate incoming-payment totals. Fee history gains cursor pagination, and a read-only checker helps diagnose ledger inconsistencies. (#1324, #1330, #1345, #1353)

A more responsive daemon

Mailbox handling avoids several deadlocks under load, and optional /readyz and /livez endpoints detect stalled core actors. Backing-wallet balances now reflect the configured spending account, including supported remote-signing LND setups. (#1373, #1363, #1310, #1439)

Builds and mobile support

Android bindings use an SQLite backend compatible with the application sandbox. Release binaries and source builds now use Go 1.27.3. (#1352, #1440)

Verifying the release

Verify a downloaded binary or archive:

./scripts/verify-install.sh v0.2.0 <path>

Reproduce the release from the v0.2.0 checkout:

make docker-release tag=v0.2.0

See the reproducible build guide for details.

Contributors

Thanks to everyone represented in the commits, co-author credits, and merged pull requests:

Additional contributions came from @litbot-9000, including the lightninglabs-deploy identity, and claudell.

Full changelog: v0.1.2 → v0.2.0