Decentralized P2P exchange built on Monero and Tor
Find a file
Robbie Blaine 1a42336ba5
Add aarch64 architecture support to CI
Extend CI workflow to build for both `x86_64` and `aarch64` architectures:
- Add ARM variants for Ubuntu and macOS in the build matrix
- Skip tests on `aarch64` builds with `-x test` flag as JavaFX 21.x.x
  doesn't currently support the ARM64 architecture
- Update artifact naming to include architecture identifiers
- Configure architecture-specific build paths and release outputs

This change enables native builds for ARM-based systems like Apple Silicon
Macs and ARM servers, improving performance for users on these platforms
while maintaining full test coverage on `x86_64` where supported.

Make localnet cache OS-specific

Prevent Error: Failed to CreateArtifact: Received non-retryable
error: Failed request: (409) Conflict: an artifact with this name
already exists on the workflow run

Add a warning about `linux/aarch64` tests being skipped

Simplify GitHub Actions workflow conditions

Replace verbose condition syntax with simpler `runner.os` expressions to
improve readability and maintainability. This change:

- Uses `runner.os` instead of specific `matrix.os` version strings
- Removes unnecessary `${{ }}` expression wrappers in if conditions
- Consolidates OS-specific conditions (e.g. `ubuntu-22.04` or
  `ubuntu-22.04-arm`) into simpler checks (`runner.os == 'Linux'`)

Fix JavaFX loading on Mac ARM64 architecture

JavaFX 21.0.2 supports Mac ARM64 (Apple Silicon) but was failing to
load with `UnsatisfiedLinkError` because the build system wasn't
detecting ARM architecture properly.

This change allows the build system to correctly identify Mac ARM64
systems and use the appropriate JavaFX libraries, resolving the
compatibility issues when running on Apple Silicon Macs.

Split Build and Package Installer steps

Cleaner CI output, split Build and Package installer step into two steps
2025-05-10 22:53:18 +02:00
.github Add aarch64 architecture support to CI 2025-05-10 22:53:18 +02:00
.idea Removing star and unused imports with checkstyle 2023-03-19 15:03:24 -04:00
apitest support buying xmr without deposit or fee using passphrase 2024-12-16 10:20:56 -05:00
assets/src support DAI Stablecoin (ERC20) 2025-02-16 16:53:35 -05:00
cli support buying xmr without deposit or fee using passphrase 2024-12-16 10:20:56 -05:00
common/src bump version to v1.1.1 2025-04-26 19:08:22 -04:00
config/checkstyle upgrade to gradle 8.0.2 for checkstyle heap size adjustment 2023-03-25 11:41:16 -04:00
core use default 'password' to authenticate with wallet rpc server 2025-05-07 08:37:24 -04:00
daemon/src support cloning up to 10 offers with shared reserved funds (#1668) 2025-04-05 17:29:55 -04:00
desktop move settings tab to last 2025-05-02 06:27:12 -04:00
docs re-arrange deployment sections and use markup for notes & warnings 2025-04-21 09:02:17 -04:00
gpg_keys update pgp public key for commit verification 2025-02-28 09:33:40 -05:00
gradle Add aarch64 architecture support to CI 2025-05-10 22:53:18 +02:00
inventory/src/main/resources update p2p connection and message packages 2023-04-26 13:52:31 -04:00
media update donation qr and readme 2025-05-08 07:10:39 -04:00
monitor update p2p connection and message packages 2023-04-26 13:52:31 -04:00
p2p/src fix concurrent modification in portfolio by locking sequence number map 2025-04-29 08:39:34 -04:00
proto/src/main/proto recover from payment received nack with updated multisig info 2025-04-24 21:07:05 -04:00
relay Revert "enable proof of work dos protection in torrc" 2024-07-19 09:07:23 -04:00
scripts Update tails script to expect installer instead of archive 2025-04-21 11:11:29 -04:00
seednode bump version to v1.1.1 2025-04-26 19:08:22 -04:00
statsnode/src/main Update p2p package #756 (#884) 2024-05-15 06:52:36 -04:00
.editorconfig Bisq 2021-05-04 20:20:01 -04:00
.gitattributes remove what's left of git lfs 2022-09-17 07:52:47 -04:00
.gitignore feat: add flatpak builds (#1230) 2024-10-08 14:02:40 -04:00
build.gradle Add aarch64 architecture support to CI 2025-05-10 22:53:18 +02:00
gradle.properties upgrade to gradle 8.0.2 for checkstyle heap size adjustment 2023-03-25 11:41:16 -04:00
gradlew downgrade Gradle wrapper to 8.2.1 2023-12-19 13:35:47 -05:00
gradlew.bat Upgrade Gradle wrapper to 8.5 2023-12-16 19:16:41 -05:00
LICENSE Change http links to https in LICENSE (#1660) 2025-03-22 07:58:05 -04:00
Makefile add arbitrator2 mainnet config to Makefile 2025-04-17 14:53:11 -04:00
README.md update donation qr and readme 2025-05-08 07:10:39 -04:00
settings.gradle remove pricenode from main repo 2023-02-06 08:57:24 -05:00

Haveno logo

GitHub Workflow Status GitHub issues with bounty Twitter Follow Matrix rooms Contributor Covenant

What is Haveno?

Haveno (pronounced ha‧ve‧no) is an open source platform to exchange Monero for fiat currencies like USD, EUR, and GBP or other cryptocurrencies like BTC, ETH, and BCH.

Main features:

  • Communications are routed through Tor, to preserve your privacy.

  • Trades are peer-to-peer: trades on Haveno happen between people only, there is no central authority.

  • Trades are non-custodial: Haveno supports arbitration in case something goes wrong during the trade, but arbitrators never have access to your funds.

  • There is No token, because it's not needed. Transactions between traders are secured by non-custodial multisignature transactions on the Monero network.

See the FAQ on our website for more information.

Haveno Demo

https://github.com/user-attachments/assets/eb6b3af0-78ce-46a7-bfa1-2aacd8649d47

Installing Haveno

Haveno can be installed on Linux, macOS, and Windows by using a third party installer and network.

Note

The official Haveno repository does not support making real trades directly.

To make real trades with Haveno, first find a third party network, and then use their installer or build their repository. We do not endorse any networks at this time.

A test network is also available for users to make test trades using Monero's stagenet. See the instructions to build Haveno and connect to the test network.

Alternatively, you can create your own mainnet network.

Note that Haveno is being actively developed. If you find issues or bugs, please let us know.

Main repositories

  • haveno - This repository. The core of Haveno.
  • haveno-ts - TypeScript library for using Haveno.
  • haveno-ui - A new user interface (WIP).
  • haveno-meta - For project-wide discussions and proposals.

If you wish to help, take a look at the repositories above and look for open issues. We run a bounty program to incentivize development. See Bounties.

Keep in touch and help out!

Haveno is a community-driven project. For it to be successful it's fundamental to have the support and help of the community. Join the community rooms on our Matrix server:

Email: contact@haveno.exchange Website: haveno.exchange

Contributing to Haveno

See the developer guide to get started developing for Haveno.

See docs/CONTRIBUTING.md for our styling guides.

If you are not able to contribute code and want to contribute development resources, donations fund development bounties.

Bounties

To incentivize development and reward contributors, we adopt a simple bounty system. Contributors may be awarded bounties after completing a task (resolving an issue). Take a look at the issues labeled '💰bounty' in the main haveno repository. Details and conditions for receiving a bounty.

Support

To bring Haveno to life, we need resources. If you have the possibility, please consider donating to the project:

Donate Monero
47fo8N5m2VVW4uojadGQVJ34LFR9yXwDrZDRugjvVSjcTWV2WFSoc1XfNpHmxwmVtfNY9wMBch6259G6BXXFmhU49YG1zfB