Introduction
Haveno (“harbour” in Esperanto) is a privacy-first, Bisq-inspired DEX focused on Monero and fiat.
Running your own Haveno node (sometimes nick-named a “nodo” in the community) means you:
- validate your own P2P order book
- provide liquidity routing for others
- can act as an arbitrator, bank-wire signer or chat relay
- never rely on a central web service to trade XMR ↔ fiat/crypto
Getting Started
1. Basic Fundamentals
Aspect |
Details |
Core software |
Two processes: Haveno daemon (havenod – P2P + escrow) and Haveno desktop (Electron GUI). |
Underlying tech |
Tor transport layer, Monero multisig escrow, Bisq message protocol fork. |
Ports |
9999 (P2P), 8000 (API), 8001 (Tor onion traffic). |
2. Why Run Your Own Haveno Node?
- Self-custody – multisig escrow keys live on your machine.
- Order-book privacy – your Tor IP publishes offers; no central server can log them.
- Liquidity health – more peers → tighter spreads for everyone.
- Earn fees – arbitrators and trade mediators share 30 % of dispute fees.
3. Minimum Hardware & Network
Resource |
Recommended |
Disk |
2 GB for Haveno itself + Monero wallet files; add Monero node storage if you run it on the same box. |
RAM |
2 GB free (daemon ~300 MB, GUI another 300 MB). |
CPU |
Any 64-bit dual-core (AVX2 speeds multisig sigs). |
Bandwidth |
~5 GB / month per active trader; negligible when idle. |
OS |
Linux x86-64 preferred; macOS & Windows builds exist. |
4. Installation Paths
4.1 Native (Linux/macOS/Windows)
All downloads are available on Github or on the Haveno website.
docker run -d --name havenod \
-p 9999:9999 -p 8000:8000 \
-v $HOME/haveno-data:/data \
haveno/havenod:latest \
--tor=true --wallet-dir=/data/wallets
4.3 Systemd Service (for auto-restart)
# /etc/systemd/system/havenod.service
[Unit]
Description=Haveno DEX Daemon
After=network.target
[Service]
User=haveno
ExecStart=/usr/local/bin/havenod --app-dir=/var/lib/haveno
Restart=on-failure
[Install]
WantedBy=multi-user.target
5. Key Command-Line Flags
Flag |
Purpose |
--wallet-dir |
Path for multisig trader wallets. |
--monero-daemon-address |
Point at your own monerod (127.0.0.1:18081 ). |
--tor |
On by default; set false for clearnet testing. |
--arbitrator |
Enable dispute-resolving role; requires stake XMR. |
--log-level debug |
Verbose logging. |
6. Securing the Nodo
- Run under non-root user (
haveno
).
- Enable Tor; clearnet offers leak IP.
- Use a cold backup of the multisig wallet seed.
- Set firewall – expose only port 9999 if you want inbound peers; otherwise run behind NAT.
- Automatic updates – watch https://github.com/haveno-dex/haveno/releases RSS.
7. Performance & Maintenance
Task |
Interval |
Check daemon height vs. Monero node |
Daily |
Rotate Tor hidden-service keys |
Monthly |
Export trade history (JSON) |
After each completed trade |
Upgrade Haveno version |
On every tagged release |
8. Advanced Integrations
Use-case |
Extra steps |
Headless trading bot |
Use REST API on port 8000; generate auth token. |
Liquidity provider |
Start with --offer-file /path/offers.json to auto-place offers. |
External Monero node |
--monero-daemon-address <ip:port> and --monero-wallet-rpc-port . |
9. Troubleshooting Quick Chart
Symptom |
Cause |
Fix |
“Monero RPC not reachable” |
Wrong port or auth |
Check monerod URL, restart Haveno. |
Offers never broadcast |
Tor offline |
Verify Tor service, nyx shows circuits. |
Trade stuck in arbitrating |
Arbitrator offline |
Wait; if >48 h, ping another arbitrator with trade ID. |
11. Bottom Line
Running a Haveno nodo is lighter than a full Monero node yet critical for a censorship-resistant DEX:
- 2 GB disk, 600 MB RAM, an evening’s setup
- Keep your trades private, keys local
- Strengthen Monero’s circular economy by adding order-book resiliency
If you already run monerod
, adding Haveno is the next leverage-point for self-sovereign trading.