
New BasicSwap Release (v0.15)
BasicSwap's new 3.3.1 user interface and 0.15.0 codebase are now available, featuring a large range of improvements across the board.
This update is MANDATORY as it contains critical coin core upgrades, major performance improvements, and improved network capabilities. Non-updated instances won't be able to see offers sent by updated ones.. Additionally, Firo users need to update their BasicSwap instance and upgrade their coins to version 0.14.14.3 (fixes a chainhalt) to be able to continue using the platform.


This substantial update represents weeks of dedicated effort, incorporating numerous improvements, bug fixes, new features, and significant refactors of different core components of the system. The changes stem from extensive testing by both contributors and community members, resulting in a significant step forward for user experience and platform stability.
Most Notable Updates π‘
While this update is massive in scope, many changes are backend changes to improve efficiency, stability, and cross-compatibility. However, several significant user experience enhancements are worth highlighting.
Multi-Network Support & Network Portals π
The multi-network support improvements in this release represent important backend groundwork and architectural pieces of a larger puzzle. While the code is in place, the multi-net feature is not yet ready for general use as it won't automatically configure itself or download required components like the Simplex client. This is foundational work preparing for future user-facing features.
Building upon the multi-net infrastructure introduced in v0.14.4, this release brings significant incremental improvements to BasicSwap's network portal system. Network portals now enable swaps between users operating on entirely different networks, removing the previous requirement for all participants to be connected to the same messaging network. This architectural evolution represents a major step forward in decentralizing BasicSwap's infrastructure and improving its resilience.
One of the most significant changes in this area is the migration of SMSG pubkey management directly into BasicSwap itself, rather than relying solely on Particl Core to handle this functionality. This gives BasicSwap greater control over its messaging infrastructure and reduces dependency on external systems. The system also now automatically sets the appropriate simplex mode per bid (when Simplex is used as the messaging layer), thus intelligently managing connections and ensuring optimal routing for each swap.
Additionally, to maintain compatibility across the network during this transition period, extensive work has been done to ensure backwards compatibility with older SMSG payload versions. Indeed, the system now gracefully handles multiple active networks without throwing errors, making it possible to test and deploy new network configurations while maintaining existing functionality. This foundation sets the stage for future improvements in load balancing, network diversity, and overall platform resilience as BasicSwap continues to mature.
Real-Time Dynamic Balances with WebSockets and Other UX Improvements π«
The user experience has received a substantial upgrade with the introduction of real-time balance updates powered by WebSockets. WIth it, there's no need to manually refresh pages to see updated balance information anymore. Your wallet balances now update automatically in real-time as transactions occur. This creates a significantly more responsive and modern user experience that aligns with expectations set by contemporary web applications.
Alongside the dynamic balance updates, the notification system has also been completely overhauled. The new Toasts notification system provides more dynamic and contextually useful alerts that appear seamlessly within the interface, keeping you informed about swap status changes, incoming bids, completed transactions, and system events without disrupting your workflow. A new notifications history page has also been added, allowing you to review past notifications and keep track of all important information even if you dismiss a notification too quickly.
Under the hood, significant UX work has been done to improve WebSocket connection stability and prevent disconnections that could interrupt the real-time data flow. These improvements ensure that your connection remains active and responsive, with the system automatically reconnecting if any temporary network issues occur.
Multiple Critical Coin Core Updates πͺ
This release includes several important cryptocurrency node upgrades that improve security, stability, and compatibility across the BasicSwap platform. Most notably, Particl Core has been updated to version 27.2.2.0, which addresses critical issues with ZMQ missing curve functions and fixes the signmessage functionality for v23 compatibility. These fixes ensure smooth integration with BasicSwap's latest messaging and cryptographic additions, preventing potential issues during the swap process.
Monero has been upgraded to daemon version 0.18.4.3, accompanied by significant improvements to error handling. The system now correctly identifies additional transient errors (including request-sent, idle, and output distribution errors) and automatically retries when these temporary issues occur. This results in a reduction of the likelihood of failed swaps due to transient Monero network conditions, making XMR-based swaps more reliable and user-friendly.
The Firo integration has been updated to version 0.14.14.3. Dash Core has been upgraded to version 22.1.3, while Wownero has received optimization improvements including reducing the unlock time to 4 confirmations and better efficiency through code reuse. Bitcoin integration now includes signature grinding for low-r value signatures to ensure compatibility with Bitcoin Core's current behavior.
Enhanced Key Derivation Paths & Wallet Portability π
BasicSwap v0.15.0 introduces updated default key derivation paths that significantly improve wallet interoperability and user sovereignty. These new derivation paths, which apply when using Bitcoin descriptor wallets, allow users to export and import keys generated within BasicSwap directly into other popular wallet software such as Electrum. This essentially removes previous barriers to wallet portability and gives users greater control over their private keys.
The ability to use BasicSwap-generated keys across different wallet applications represents an important step toward better alignment with industry standards and best practices. Users are no longer locked into a single wallet implementation (BasicSwap's) and can freely move their keys between different wallets depending on their needs. Whether you want to use Electrum's light wallet features for certain transactions or prefer BasicSwap for others, your keys remain portable and accessible.
Perhaps more importantly, this change is particularly significant as it represents the first step toward full Electrum compatibility, which is coming as one of our very next releases. Once complete, this integration will allow users to operate BasicSwap without running local blockchain nodes at all, dramatically reducing the hardware requirements and setup complexity. This is also why much of the SMSG key management and related functionality has been migrated from Particl Core into BasicSwap itself; by reducing dependencies on specific node implementations, BasicSwap gains the flexibility to work with lightweight wallet backends like Electrum while maintaining the full set of features.
This architectural shift reflects BasicSwap's commitment to both user control and wallet sovereignty as well as usability and ease-of-use. By adopting more widely-compatible key derivation paths and reducing reliance on full node implementations, the platform ensures that users retain full control over their cryptocurrency holdings while gaining access to more flexible deployment options. It's worth noting that this improvement specifically applies to descriptor wallets, which represents the modern standard for Bitcoin wallet architecture.
Major UI/UX Refactor & Performance Overhaul π
Perhaps the most technically impressive, yet largely invisible, improvement in v0.15.0 is a massive refactoring of the user interface's backend architecture that eliminates numerous performance bottlenecks and dramatically improves page responsiveness. Previously, the UI operated in a largely sequential manner, where each task had to wait for the previous step to complete before proceeding. If you were loading a page that needed to fetch wallet data, then retrieve price information, then calculate values, each of these operations would queue up one after another, sometimes resulting in delays of several seconds or more before the page became interactive.
This sequential architecture has been completely redesigned to enable parallel processing. Price fetching, historical data retrieval, volume calculations, and other similar processes, now run in their own dedicated background thread entirely within the backend, rather than being triggered by frontend JavaScript requests. The backend automatically pulls price data every 5 minutes, caches it both in memory and in the database, and serves it instantly through an API endpoint when the frontend requests it. This eliminates the scenario where opening a page would trigger slow API calls to external price services, leaving you staring at a loading spinner while the JavaScript waited for responses.
Similarly, wallet information retrieval has been optimized through the implementation of an RPC connection pool (rpc_pool) that handles data fetching from cryptocurrency wallets without blocking other operations. Previously, requesting wallet information would lock up the interface while waiting for RPC responses from the various blockchain daemons. Now, these calls are managed through a pool that can handle multiple simultaneous requests efficiently, ensuring that checking one wallet's balance doesn't prevent you from viewing another wallet's transactions.
As for the HTTP server itself, it has been refactored from a single-threaded design that queued all requests sequentially to a multi-threaded architecture capable of handling 5 or more simultaneous page loads without bottlenecking. Before this update, you could effectively only use one page at a time. Attempting to open multiple pages simultaneously would queue them up, with each page waiting for the previous one to finish loading. This meant that rapidly navigating through the interface felt sluggish and unresponsive. Now, you can open the offers page, navigate to your bids, check your wallet balances, and review swap history all in rapid succession without waiting for each page to fully load before opening the next.
The refactor also included extensive code cleanup, removing deprecated code paths, eliminating redundant operations, and fixing multiple memory leaks that could cause performance degradation during extended usage. Specific bottlenecks on the offers page and bids page, where loading large amounts of data could slow the interface to a crawl, have been identified and eliminated. The CryptoCompare dependency for price data has been removed entirely in favor of the new background thread architecture, giving BasicSwap greater control over its data sources and reducing reliance on external services.
While much of this work happens behind the scenes and may not be immediately obvious, the cumulative effect is going to be apparent. Pages load faster, navigation feels snappier, data appears without delays, and the entire interface responds more quickly to your actions. These improvements lay a solid foundation for future feature development, ensuring that as BasicSwap continues to grow and add functionality, the underlying architecture can support it without sacrificing performance.
Install the Latest BasicSwap Update π₯οΈ
To install the new update, which includes both the codebase and user interface updates, simply update BasicSwap through the usual process and launch the DEX again.
Docker
If you've installed BasicSwap following the Docker method...
- Shutdown BasicSwap properly and stop the Docker image (
docker-compose stop), - From the basicswap folder, type the
git pullcommand, - In the
/dockerfolder, run thedocker-compose build --no-cachecommand, - Once the process completes, launch BasicSwap again using the
docker-compose upcommand.
Note: Depending on your Docker version, adding a dash between docker and compose may not be necessary and may instead throw an error.
Non-Docker
If you've installed BasicSwap following the non-Docker method...
- Shutdown BasicSwap properly,
- From the
~/coinswaps/basicswapfolder, type thegit pullcommand, - Execute the following command:
pip install --require-hashes -r requirements.txt, - Execute the following command:
pip3 install ., - Launch BasicSwap as usual.
Install Script
If you've installed BasicSwap using Nahuhh's Github installation script
- Execute the update command:
bsx-update.
Changelog π
Coin(s)
- Dash β Upgraded Dash Core to version 22.1.3
- Firo β Upgraded Firo Core to version 0.14.14.3 (emergency release)
- Monero β Upgraded Monero daemon to version 0.18.4.3
- Monero β Add request-sent, idle, and output distribution to transient errors for better error handling
- Monero β Retry on transient error to improve swap reliability
- Wownero β Coins now unlock after 4 confirmations instead of 3
- Wownero β Reuse
threadPollXMRChainstate&monerod_proxy_configfor better efficiency - Bitcoin β Grind for low-r value signatures to match Bitcoin Core behavior
- Particl β Updated Particl Core to version 27.2.2.0 (fixes ZMQ missing curve functions and
signmessagefor v23) - Particl β Keep compatible with Particl 23.2.7
- Particl β Added
deprecatedrpcline toparticl.conf - Particl β Explicitly set
messagemagicstring for Particl v27
AMM (Automated Market Maker)
- AMM bug fixes for improved stability
- Use float for
amount_stepinstead of string to fix type errors - Icon beside amount & consistent size of add/edit buttons for better UI consistency
- Use same rates for buying and selling to fix rate parity issues
Network & SMSG (Multi-Net Support)
- Add network portals to allow swaps between users on different networks
- Manage SMSG pubkeys within BasicSwap instead of Particl Core
- Store pubkeys in BSX if possible
- Automatically set direct simplex mode per bid
- Fix
add_to_outboxparameter - Add network portal data to database
- Add
message_netsfield to bids and offers - Don't raise an error if multiple networks are active (for testing)
- Rename
smsg_plaintext_versionfor clarity - Set
smsg_payload_versionautomatically if unset - Make backwards compatible with smsg payload version 1
- Enable network logging category in prepare script
- Fix selection when no networks are specified
- Fix
verifyMessageparameter order - Add
ttlparameter tosmsgEncrypt
ZMQ
- Remove
time.sleep(0.1)for improved performance - Use
recv_multipartand set server keypair in prepare script - Use persistent client keypair for better connection stability
- Fix default ZMQ configuration
- Use ZMQ for Particl Core balances in the GUI
UI Code & Experience
- GUI version 3.3.1
- Dynamic balances using WebSockets β balances now update in real-time without page refresh
- Better notifications system using Toasts for more dynamic and useful GUI notifications
- Updated toasts and added notifications history page
- Fixed identity tooltips on bids page
- Removed bottleneck on offers page for better performance
- Major refactor and optimizations for improved memory efficiency
- Fix pricechart display when no price/historical data is available
- Fix getwalletinfo + various fixes
- Fix WebSockets connection stability to keep connections alive
- Removed CryptoCompare dependency + Added background thread for price fetching
- Fix small bug with changepassword required
- Show notification when new release of BSX is available
- Fix BTC chart loading even if BTC is not enabled
- Lint: eslints code quality improvements
Core Functionality
- Change default key derivation paths β allows users to import keys generated on BasicSwap into Electrum (only applies when using descriptor wallets)
- Fix rate tolerance calculations
- Fix Simplex SQLite duplicate server entries
- Allow relative paths in inputs for better flexibility
- Allow
lock-tx nLockTimeto be >chain height + 2 - Fix
force_db_upgradesetting - Fix backwards compatibility with older SMSG payload versions
- Timeout bids before the script coin lock tx is mined to prevent stuck swaps
- Backports from upstream improvements
- Adjust daemon startup log timing and types for better debugging
- Reuse Particl daemon when adding coins to improve efficiency
- Remove default values occluding error in scripts for better error reporting
- Refactor: remove unused code for cleaner codebase
- Refactor: deduplicate threads array
- Add an env var to switch core repositories in prepare script
Automation
- Set max concurrent incoming bids to 1 as a strategy improvement
Development
- Add pre-commit hooks to ensure code quality
Dependencies
- Bumped
python-gnupgfrom 0.5.4 to 0.5.5 - Bumped
websocket-clientfrom 1.8.0 to 1.9.0 - Bumped
blackfrom 25.1.0 to 25.9.0
Tests
- Disable checking for updates in tests
- Updated
test_settings.py
Build
- Raise version to 0.15.0
- Update
guixpacked version
You can inspect all changes by verifying the 0.14.6 comparison page here.
Contributors π
BasicSwap v0.15.0 represents the collective effort of talented developers from around the world who share a common vision: building a truly decentralized, privacy-preserving exchange platform. This release showcases the power of open-source collaboration and the dedication of our community.
We would like to extend our heartfelt gratitude to the following contributors who made this release possible:
ποΈ Tecnovert β Lead developer and architect behind the core infrastructure, multi-network portal system, SMSG enhancements, and coin integrations.
π¨ Crz (@gerlof) β Frontend architect responsible for the comprehensive UI/UX refactor and performance overhaul.
π Ofrnxmr (@ofrnxmr) β Privacy coin specialist focusing on Monero and Wownero integration improvements as well as thorough testing and bug fixes.
Thank you to all our contributors, testers, and community members for your continued support. Together, we're building the future of decentralized exchangeβone commit at a time. π
Stay Connected
Stay connected with us on our social media channels for real-time updates, news, and more.
- Twitter: @basicswapdex
- Matrix: BasicSwap channel
- GitHub: BasicSwap repositories
- Support the project: Donation page

BasicSwap Team
The official team behind BasicSwap. We're a group of passionate contributors dedicated to making atomic swap technology ubiquitous by creating accessible, user-friendly solutions for everyone.
Related Posts
BasicSwap Integration on Litecoin's Nexus Mobile Wallet
By BasicSwap Team on April 14, 2026
BasicSwap DEX is coming to mobile! Learn more about the upcoming integration on Litecoin's Nexus wallet in this progress report.
Development Update (November 2025)
By BasicSwap Team on December 1, 2025
A summary of the recent developments and progress made by BasicSwap contributors since our last update

New BasicSwap Release (v0.15.1)
By BasicSwap Team on November 15, 2025
A new version of BasicSwap is now available for download.