Coinswap v0.2.0 Release Notes
This release introduces major improvements to the protocol's efficiency, security, and usability.
📋 Changelog Summary (v0.1.3 → v0.2.0)
- 🔧 30 Issues Closed: View on GitHub
- ✅ 109 Merged PRs: View on GitHub
Highlights of V0.2.0
The major highlights of this release are as follows:
- New Taproot + Musig2 Swap Protocol. This protocol allows faster swap rounds, unified funding and contract transactions, cheaper fees for swap recovery, and better anonymity set for increased privacy.
- Coinswap-FFI suits with language bindings into JS, Kotlin, Python, Swift, and Ruby. Allowing downstream wallets to easily integrate Coinswap in their stack.
- Coinswap-Docker with customizable Docker Compose configuration to quickly deploy the maker server backend stack, including bitcoind (Mutinynet), Tor, and preconfigured makerd/maker-cli. This enables swap server deployment in any environment with minimal configuration.
- Taker-App. A NodeJS Coinswap Client desktop app built with the coinswap-ffi/coinswap-js. Providing a working prototype and example of a real-life coinswap client.
- Public Marketplace is Now Live in Mutinynet Inquisition Signet, seeded with initial community run makers.
Major Improvements in v0.2.0
| Type | Improvement | PR(s) | Contributor |
|---|---|---|---|
| Protocol | Add watcher integration (deprecate tracker) and add hashlock-based recovery for swaps. | #621 | Wukong247 |
| Protocol | Implement private-key handover flow for Taproot swaps, enabling secure privkey transfer. | #631 | stark-3k |
| Protocol | Small watcher improvements and fixes to watch_tower and related modules. | #636 | Wukong247 |
| Protocol | Add hashlock- and timelock-based recovery paths so Taproot swaps can be recovered via preimage or timeout. | #637 | stark-3k |
| Protocol | Update watcher and offerbook logic to improve offer handling and market behavior. | #679 | Wukong247 |
| Protocol | Use swap ID as the connection identifier to reliably associate peers with swaps. | #663 | stark-3k |
| Protocol | Optimize watcher performance and market logic (offerbook integration and faster processing). | #666 | Wukong247 |
| Refactors | Refactor OngoingSwap and Connection state to persist swapcoins in state storage.
| #627 | 0xEgao |
| Refactors | Fix bug in handle_private_key_handover (formatting/docs and functional fix).
| #629 | Godzilla-oss |
| Refactors | Misc demo and code cleanup changes (clippy/fmt and small fixes). | #643 | stark-3k |
| Refactors | Add several Taproot integration tests covering multi-maker/taker flows and aborts. | #649 | 0xEgao |
| Refactors | Simplify and streamline the sync API used for wallet/rpc synchronization. | #665 | Godzilla-oss |
| Test | Improve test framework assertions for funding and verification to reduce flakiness. | #610 | NeoZ666 |
| Test | Add unit tests for watch_tower utility functions.
| #648 | Godzilla-oss |
| Test | Move balance verification into individual test cases to avoid shared-state flakiness. | #672 | 0xEgao |
| Test | Add nextest test runner and pin stable clippy in CI.
| #612 | Godzilla-oss |
| Apps | UI improvement: show total value of manually selected UTXOs in the virtual render. | #623 | NeoZ666 |
| Apps | FFI: add new methods and change interfaces from private->public where applicable. | #630 | NeoZ666 |
| Apps | Add an experimental --taproot flag to CLI apps to enable Taproot flows.
| #634 | stark-3k |
| Apps | Minor FFI updates to support the GUI application integration. | #639 | NeoZ666 |
| Docs | Add V2 demo documentation describing the Taproot+Musig2 protocol flow. | #645 | mojoX911 |
| Infrastructure | Add initial Docker image to run coinswap services for demos and testing. | #600 | hulxv |
| Infrastructure | Improve Docker setup for bitcoind configuration (ports, wallet names, defaults). | #640 | hulxv |
| Infrastructure | Prevent Tor auth password from being overwritten by default during setup. | #641 | stark-3k |
| Infrastructure | Refactor docker-compose to use profiles, add makerd-internal, healthchecks, and env configurability. | #659 | hulxv |
Full Changelog: v0.1.3...v0.2.0
Contributions
The project is under active beta development and open for contributions and beta testing. The Coinswap marketplace is live in Mutinynet SIgnet. Detailed instructions for connecting to Mutiny Signet can be found here. Bug fixes and feature requests are very much welcome.
Major References
- Project overview, contribution and guidelines: Readme
- Manuals and Demo Docs: Doc Folder
- Protocol Specifications: Spec Repo
- Coinswap Docker: Setup Instructions
- Taker App: Build From Source