RetoSwap (previously Haveno-reto), a P2P Monero DEX
How to set up RetoSwap (previously Haveno-reto) - a P2P decentralized exchange (DEX) based on Monero - in Whonix
Introduction
[edit]Name
[edit]The name of the app was changed from Haveno-reto to RetoSwap on 22 November 2024[1], but the old name can still be seen when launching the app, and people online may variously refer to it as either name or even as plain "Haveno" (technically, Haveno or Haveno DEX is the name of the upstream project).
Background
[edit]RetoSwap is a fork of Haveno (Haveno DEX), which is itself a fork of Bisq.
RetoSwap is a peer-to-peer (P2P) decentralized exchange (DEX), meaning that each user that runs the RetoSwap software is running their own server (built into the software) for trades; there is no central server where trades are coordinated.
RetoSwap has a built-in Monero (currency code: XMR) wallet and uses Monero as the base pair for all trades on its platform.
Haveno (Haveno DEX) is the upstream (parent) project of RetoSwap and doesn't feature any actual live trading with real cryptocurrencies (it only has testnet/stagenet trading).
Bisq is the project that Haveno was forked from. It is a P2P DEX with a built-in Bitcoin (BTC) wallet and uses Bitcoin as the base pair for all trades on its platform.
Links
[edit]RetoSwap Links
[edit]RetoSwap official website:
https://retoswap.com/![]()
RetoSwap official X/Twitter account:
https://x.com/RetoSwap/![]()
RetoSwap GitHub project homepage:
https://github.com/retoaccess1/haveno-reto![]()
RetoSwap GitHub project releases page (downloads available here):
https://github.com/retoaccess1/haveno-reto/releases/![]()
RetoSwap old homepage (redirects to retoswap.com):
https://haveno-reto.com![]()
Haveno (Haveno DEX) Links
[edit]Haveno official website:
https://haveno.exchange/![]()
Haveno official FAQ:
https://haveno.exchange/faq/![]()
Haveno GitHub project homepage:
https://github.com/haveno-dex/haveno![]()
Haveno GitHub project issues page (issues with RetoSwap can generally be reported there):
https://github.com/haveno-dex/haveno/issues![]()
Other Guides
[edit]boldsucks's Haveno Documentation:
https://boldsuck.codeberg.page/haveno-docs/![]()
boldsucks's guide to setting up RetoSwap on Whonix:
https://boldsuck.codeberg.page/haveno-reto-docs/tor-config/DirectBindTor/#whonix![]()
RetoSwap official redirect (Github mirror):
https://docs.retoswap.com/tor-config/DirectBindTor/#whonix![]()
Installation
[edit]
-
This guide was created in February 2025 and is based on Whonix 17.2.8.5 and RetoSwap 10.0.18. As the app's name was recently changed from Haveno-reto, some file paths referenced below use the name
havenoorhaveno-reto. This may change in the future.
System Requirements
[edit]Generally, RetoSwap doesn't use a lot of system resources, as it connects to remote Monero nodes by default and doesn't download any full blockchains to the user's computer. It can also be set up to use a local Monero node, but that is beyond the scope of this guide.
Generally, the storage space used by RetoSwap will be under 100 MB.
Downloading & Installing RetoSwap
[edit]
- All of the steps for downloading & installing the RetoSwap .deb file take place on Whonix-Workstation
1. Download RetoSwap:
Download the latest .deb version of RetoSwap from:
https://github.com/retoaccess1/haveno-reto/releases/![]()
(For example, for RetoSwap v1.0.18, download
https://github.com/retoaccess1/haveno-reto/releases/download/v1.0.18/haveno-linux-deb.zip![]()
).
You can also go to the official RetoSwap website's download section:
https://retoswap.com/#download![]()
and under "RetoSwap for Linux," click the .deb button.
It should download automatically to:
/home/user/.tb/tor-browser/Browser/Downloads/
Related: Navigating Tor Browser Downloads
2. Note
- Digital signatures are a tool enhancing download security. They are commonly used across the internet and nothing special to worry about.
- Optional, not required: Digital signatures are optional and not mandatory for using Whonix, but an extra security measure for advanced users. If you've never used them before, it might be overwhelming to look into them at this stage. Just ignore them for now.
- Learn more: Curious? If you are interested in becoming more familiar with advanced computer security concepts, you can learn more about digital signatures here: Verifying Software Signatures
3. Verify the signature
Undocumented. Out of scope for this guide. Refer to upstream documentation (if any exists) or general third-party documentation on digital software signature verification.
4. Extract the archive:
Right-click on the downloaded .zip (e.g., /home/user/.tb/tor-browser/Browser/Downloads/haveno-linux-deb.zip) and click Extract Here.
5. Install the .deb:
Open the newly extracted folder (e.g., /home/user/.tb/tor-browser/Browser/Downloads/haveno-linux-deb/) and in a terminal window type (with a trailing space):
sudo dpkg -i
Then, drag the .deb installer from the folder into the terminal to complete the file path (e.g., for RetoSwap v1.0.18, it should read:
sudo dpkg -i '/home/user/.tb/tor-browser/Browser/Downloads/haveno-linux-deb/haveno-v1.0.18-linux-x86_64-installer.deb')
Press enter.
RetoSwap should be installed to /opt/haveno/.
If it fails because of missing dependencies, run the command:
sudo apt install -f
to download and install the missing dependencies, and then try the original sudo dpkg -i '[...].deb' command again.
6. Create a desktop shortcut:
Optional. Copy (or drag) /opt/haveno/lib/haveno-Haveno.desktop to your desktop.
Setting Up the Tor Hidden Service
[edit]
- All of the steps for setting up the Tor hidden service take place on Whonix-Gateway
7. Create the Tor hidden service:
Open file /usr/local/etc/torrc.d/50_user.conf in an editor with administrative ("root") rights.
1 Select your platform.
2 Notes.
- Sudoedit guidance: See Open File with Root Rights
for details on why using sudoeditimproves security and how to use it. - Editor requirement: Close Featherpad (or the chosen text editor) before running the
sudoeditcommand.
3 Open the file with root rights.
sudoedit /usr/local/etc/torrc.d/50_user.conf
2 Notes.
- Sudoedit guidance: See Open File with Root Rights
for details on why using sudoeditimproves security and how to use it. - Editor requirement: Close Featherpad (or the chosen text editor) before running the
sudoeditcommand. - Template requirement: When using Qubes-Whonix, this must be done inside the Template.
3 Open the file with root rights.
sudoedit /usr/local/etc/torrc.d/50_user.conf
4 Notes.
- Shut down Template: After applying this change, shut down the Template.
- Restart App Qubes: All App Qubes based on the Template need to be restarted if they were already running.
- Qubes persistence: See also Qubes Persistence

- General procedure: This is a general procedure required for Qubes and is unspecific to Qubes-Whonix.
2 Notes.
- Example only: This is just an example. Other tools could achieve the same goal.
- Troubleshooting and alternatives: If this example does not work for you, or if you are not using Whonix, please refer to Open File with Root Rights.
3 Open the file with root rights.
sudoedit /usr/local/etc/torrc.d/50_user.conf
Edit the file to add the following:[2]
# RetoSwap (Haveno-reto) incoming anonymity connections HiddenServiceDir /var/lib/tor/haveno/ HiddenServicePort 9999 10.152.152.11:9999
Save and close the file.
8. Reload Tor.
After changing Tor configuration, Tor must be reloaded for changes to take effect.
Note: If Tor does not connect after completing all these steps, then a user mistake is the most likely explanation. Recheck /usr/local/etc/torrc.d/50_user.conf and repeat the steps outlined in the sections above. If Tor then connects successfully, all the necessary changes have been made.
If you are using Qubes-Whonix™, complete the following steps.
Qubes App Launcher (blue/grey "Q") → Service → Whonix-Gateway™ ProxyVM (commonly named 'sys-whonix') → Reload Tor
If you are using a graphical Whonix-Gateway, complete the following steps.
Start Menu → System Tools → Reload Tor
If you are using a terminal Whonix-Gateway, click
HERE for instructions.
Complete the following steps.
Reload Tor.
sudo systemctl reload tor@default.service
Check Tor's daemon status.
sudo systemctl status tor@default.service
It should include a a message saying.
Active: active (running) since ...
In case of issues, try the following debugging steps.
Check Tor's config.
sudo -u debian-tor tor --verify-config
The output should be similar to the following.
Sep 17 17:40:41.416 [notice] Read configuration file "/usr/local/etc/torrc.d/50_user.conf". Configuration was valid
9. Get your hidden service address:
Retrieve the newly generated hidden service .onion address:
sudo cat /var/lib/tor/haveno/hostname
It should look something like:
exampleonionaddress52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion
Copy and keep your .onion address handy for the next steps.
Setting Up the Firewall
[edit]
- All of the steps for setting up the firewall take place on Whonix-Workstation
10. Open the firewall port:
Modify Whonix-Workstation User Firewall Settings
Note: If no changes have yet been made to Whonix Firewall Settings, then the Whonix User Firewall Settings File /etc/whonix_firewall.d/50_user.conf appears empty (because it does not exist). This is expected.
Ensure the VM has sudo access first. If PERSISTENT Mode | SYSMAINT Session is available in some form, you must boot into this mode before these steps will work.
Platform specific. Select your platform.
Graphical Whonix-Workstation SYSMAINT Session
System Maintenance Panel → Open Terminal → run /usr/libexec/whonix-firewall/firewall50user
Qubes App Launcher (blue/grey "Q") → Whonix-Workstation App Qube (commonly called anon-whonix) → QTerminal → run sudoedit /usr/local/etc/whonix_firewall.d/50_user.conf
For more help, press on Learn More on the right.
Note: This is for informational purposes only! Do not edit /etc/whonix_firewall.d/30_whonix_workstation_default.conf.
The Whonix Global Firewall Settings File /etc/whonix_firewall.d/30_whonix_workstation_default.conf contains default settings and explanatory comments about their purpose. By default, the file is opened read-only and is not meant to be directly edited. Below, it is recommended to open the file without root rights. The file contains an explanatory comment on how to change firewall settings.
## Please use "/etc/whonix_firewall.d/50_user.conf" for your custom configuration,
## which will override the defaults found here. When {{project_name_short}} is updated, this
## file may be overwritten.
Also see: Whonix modular flexible .d style configuration folders.
To view the file, follow these instructions.
If using Qubes-Whonix, complete these steps.
Qubes App Launcher (blue/grey "Q") → Template → whonix-workstation-18 → QTerminal → run nano /etc/whonix_firewall.d/30_whonix_workstation_default.conf
If using a graphical Whonix-Workstation, complete these steps.
Start Menu → System Tools → Global Firewall Settings
If using a terminal Whonix-Workstation, complete these steps.
In Whonix-Workstation, view the global firewall configuration file in an editor. nano /etc/whonix_firewall.d/30_whonix_workstation_default.conf
Edit the file to add the following: [3]
# RetoSwap (Haveno-reto) firewall TCP port 9999 EXTERNAL_OPEN_PORTS+=" 9999 "
Save and close the file.
11. Reload the firewall:
Reload Whonix-Workstation Firewall.
Ensure the VM has sudo access first. If PERSISTENT Mode | SYSMAINT Session is available in some form, and you are not booted into it, reboot the VM to reload the firewall.
Platform-specific. Select your platform.
Graphical Whonix-Workstation SYSMAINT Session
System Maintenance Panel → Open Terminal → run sudo whonix_firewall
Qubes App Launcher (blue/grey "Q") → Whonix-Workstation App Qube (commonly named anon-whonix) → QTerminal → run sudo whonix_firewall
Setting Up RetoSwap
[edit]
- All of the steps for setting up RetoSwap take place on Whonix-Workstation
12. Set your hidden service address: Open the file /home/user/.local/share/Haveno-reto/haveno.properties in an editor.
- This filepath uses the old name "Haveno-reto"; this might change in a future update of RetoSwap.
Edit the file to add the following:
hiddenServiceAddress=
followed by your hidden service .onion address from the section "Setting Up the Tor Hidden Service."
It should look something like this:
hiddenServiceAddress=exampleonionaddress52rck2vv4rvmdlkiu3zzui5du4xyclen53wid.onion
Save and close the file.
13. Done.
You can now run RetoSwap, and it should connect. If it fails, see the Troubleshooting section.
Troubleshooting
[edit]If RetoSwap fails to connect or gives errors on startup, try launching the app several times. This could be a network issue.
There is also a forum topic dedicated to setting up RetoSwap on Whonix, where you can get support:
https://forums.whonix.org/t/installing-haveno-in-whonix/20014![]()
Footnotes
[edit]- ↑ https://x.com/RetoSwap/status/1859903768164532588

- ↑ 10.152.152.11 refers to the internal IP address of Whonix-Workstation. You can verify this by running the command
ifconfigon Whonix-Workstation. TCP port 9999 is the default P2P port for RetoSwap. - ↑ TCP port 9999 is the default P2P port for RetoSwap.
We believe security software like Whonix needs to remain open source and independent. Would you help sustain and grow the project? Learn more about our 13 year success story and maybe DONATE!



