{"adoption": {"forks": 183, "observed_at": "2026-08-28T04:04:33.342900+00:00", "stars": 1377}, "canonical_url": "https://ross.abutalabs.com/products/haveno", "card": {"archived": false, "artifact_type": "application", "description": "Decentralized P2P exchange platform built on Monero and Tor", "domain": ["privacy", "fintech", "censorship-circumvention"], "enriched": true, "function": ["p2p", "security", "privacy", "gui", "rpc"], "health_score": 99, "homepage": "https://haveno.exchange", "language": "Java", "license": "AGPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["haveno-dex/haveno"], "name": "haveno-dex/haveno", "platform": ["windows"], "pushed_at": "2026-08-26T18:12:05+00:00", "repo": "haveno-dex/haveno", "stars": 1377, "tags": ["monero", "decentralized-exchange", "tor", "non-custodial", "p2p-trading", "java", "grpc", "bisq-fork", "cryptocurrency", "linux", "macos", "desktop"], "topics": ["monero", "exchange", "java", "p2p", "tor", "peer-to-peer", "cryptocurrency", "decentralized", "haveno"], "urls": [], "use_cases": ["buy monero with fiat without KYC", "trade XMR for BTC privately", "run a decentralized exchange network", "exchange crypto peer-to-peer non-custodially", "set up a testnet trading environment for monero", "create my own mainnet haveno network"], "what_it_is": "Haveno is an open-source, non-custodial, peer-to-peer exchange platform for trading Monero against fiat currencies and other cryptocurrencies, with all communications routed through Tor. It is written in Java, offers a desktop GUI and a gRPC daemon with a TypeScript client, and supports arbitration via multisignature transactions without any central authority or token.", "when_to_avoid": ["you need a hosted exchange with fiat bank transfers handled for you", "you want to trade assets not paired with XMR", "you need a mobile or web-only client", "you require official endorsement of a mainnet network - the core repo only provides the platform"], "when_to_choose": ["you want privacy-focused, Tor-routed, non-custodial Monero trading", "you prefer P2P trades with no central authority or exchange token", "you want to operate or customize your own exchange network", "you need a Bisq-like alternative that is simpler and Monero-native"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/haveno", "repo": "haveno-dex/haveno", "role": "main", "score": 96}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.342900+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:40:26.472625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5008d461be6d404cc5f1f0c82576f692a349a2df6871809697f261794af8b712", "fetched_at": "2026-08-28T04:04:33.342900+00:00", "kind": "readme", "missing": false, "url": "https://github.com/haveno-dex/haveno"}, {"content_hash": "54c7c98b02ced9cb45f92f58a5179c96055c46d39f579ca0dbc91ad19a5c0de9", "fetched_at": "2026-08-29T11:56:39.396161+00:00", "kind": "homepage", "missing": false, "url": "https://haveno.exchange"}, {"content_hash": "823feb7c7c3beaba79ab16146caaf5a78deb28ac00ab67a008091e98225f8bc1", "fetched_at": "2026-08-29T11:56:39.401409+00:00", "kind": "site_page", "missing": false, "url": "https://docs.haveno.exchange/"}, {"content_hash": "1f5e08d5cc0c68db45551481dc9b9e6707989865e2ff44db70d4940cc7cb55d8", "fetched_at": "2026-08-29T11:56:39.403118+00:00", "kind": "site_page", "missing": false, "url": "https://docs.haveno.exchange/developers/installing"}, {"content_hash": "a4b4a6edee18c559c9332bee86255559ee274b4769b802f7b2f1b213ce066766", "fetched_at": "2026-08-29T11:56:39.399110+00:00", "kind": "site_page", "missing": false, "url": "https://haveno.exchange/faq"}, {"content_hash": "c3f826e71f2e0e4855724d803c381e6a2ee78efd61236492f6bc929c588f2451", "fetched_at": "2026-08-29T11:56:39.404960+00:00", "kind": "site_page", "missing": false, "url": "https://haveno.exchange/blog/ready-for-mainnet"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.342900+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:40:26.472625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5008d461be6d404cc5f1f0c82576f692a349a2df6871809697f261794af8b712", "fetched_at": "2026-08-28T04:04:33.342900+00:00", "kind": "readme", "missing": false, "url": "https://github.com/haveno-dex/haveno"}, {"content_hash": "54c7c98b02ced9cb45f92f58a5179c96055c46d39f579ca0dbc91ad19a5c0de9", "fetched_at": "2026-08-29T11:56:39.396161+00:00", "kind": "homepage", "missing": false, "url": "https://haveno.exchange"}, {"content_hash": "823feb7c7c3beaba79ab16146caaf5a78deb28ac00ab67a008091e98225f8bc1", "fetched_at": "2026-08-29T11:56:39.401409+00:00", "kind": "site_page", "missing": false, "url": "https://docs.haveno.exchange/"}, {"content_hash": "1f5e08d5cc0c68db45551481dc9b9e6707989865e2ff44db70d4940cc7cb55d8", "fetched_at": "2026-08-29T11:56:39.403118+00:00", "kind": "site_page", "missing": false, "url": "https://docs.haveno.exchange/developers/installing"}, {"content_hash": "a4b4a6edee18c559c9332bee86255559ee274b4769b802f7b2f1b213ce066766", "fetched_at": "2026-08-29T11:56:39.399110+00:00", "kind": "site_page", "missing": false, "url": "https://haveno.exchange/faq"}, {"content_hash": "c3f826e71f2e0e4855724d803c381e6a2ee78efd61236492f6bc929c588f2451", "fetched_at": "2026-08-29T11:56:39.404960+00:00", "kind": "site_page", "missing": false, "url": "https://haveno.exchange/blog/ready-for-mainnet"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:40:26.472625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5008d461be6d404cc5f1f0c82576f692a349a2df6871809697f261794af8b712", "fetched_at": "2026-08-28T04:04:33.342900+00:00", "kind": "readme", "missing": false, "url": "https://github.com/haveno-dex/haveno"}, {"content_hash": "54c7c98b02ced9cb45f92f58a5179c96055c46d39f579ca0dbc91ad19a5c0de9", "fetched_at": "2026-08-29T11:56:39.396161+00:00", "kind": "homepage", "missing": false, "url": "https://haveno.exchange"}, {"content_hash": "823feb7c7c3beaba79ab16146caaf5a78deb28ac00ab67a008091e98225f8bc1", "fetched_at": "2026-08-29T11:56:39.401409+00:00", "kind": "site_page", "missing": false, "url": "https://docs.haveno.exchange/"}, {"content_hash": "1f5e08d5cc0c68db45551481dc9b9e6707989865e2ff44db70d4940cc7cb55d8", "fetched_at": "2026-08-29T11:56:39.403118+00:00", "kind": "site_page", "missing": false, "url": "https://docs.haveno.exchange/developers/installing"}, {"content_hash": "a4b4a6edee18c559c9332bee86255559ee274b4769b802f7b2f1b213ce066766", "fetched_at": "2026-08-29T11:56:39.399110+00:00", "kind": "site_page", "missing": false, "url": "https://haveno.exchange/faq"}, {"content_hash": "c3f826e71f2e0e4855724d803c381e6a2ee78efd61236492f6bc929c588f2451", "fetched_at": "2026-08-29T11:56:39.404960+00:00", "kind": "site_page", "missing": false, "url": "https://haveno.exchange/blog/ready-for-mainnet"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.342900+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.342900+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.342900+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:40:26.472625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5008d461be6d404cc5f1f0c82576f692a349a2df6871809697f261794af8b712", "fetched_at": "2026-08-28T04:04:33.342900+00:00", "kind": "readme", "missing": false, "url": "https://github.com/haveno-dex/haveno"}, {"content_hash": "54c7c98b02ced9cb45f92f58a5179c96055c46d39f579ca0dbc91ad19a5c0de9", "fetched_at": "2026-08-29T11:56:39.396161+00:00", "kind": "homepage", "missing": false, "url": "https://haveno.exchange"}, {"content_hash": "823feb7c7c3beaba79ab16146caaf5a78deb28ac00ab67a008091e98225f8bc1", "fetched_at": "2026-08-29T11:56:39.401409+00:00", "kind": "site_page", "missing": false, "url": "https://docs.haveno.exchange/"}, {"content_hash": "1f5e08d5cc0c68db45551481dc9b9e6707989865e2ff44db70d4940cc7cb55d8", "fetched_at": "2026-08-29T11:56:39.403118+00:00", "kind": "site_page", "missing": false, "url": "https://docs.haveno.exchange/developers/installing"}, {"content_hash": "a4b4a6edee18c559c9332bee86255559ee274b4769b802f7b2f1b213ce066766", "fetched_at": "2026-08-29T11:56:39.399110+00:00", "kind": "site_page", "missing": false, "url": "https://haveno.exchange/faq"}, {"content_hash": "c3f826e71f2e0e4855724d803c381e6a2ee78efd61236492f6bc929c588f2451", "fetched_at": "2026-08-29T11:56:39.404960+00:00", "kind": "site_page", "missing": false, "url": "https://haveno.exchange/blog/ready-for-mainnet"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.342900+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.342900+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:40:26.472625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5008d461be6d404cc5f1f0c82576f692a349a2df6871809697f261794af8b712", "fetched_at": "2026-08-28T04:04:33.342900+00:00", "kind": "readme", "missing": false, "url": "https://github.com/haveno-dex/haveno"}, {"content_hash": "54c7c98b02ced9cb45f92f58a5179c96055c46d39f579ca0dbc91ad19a5c0de9", "fetched_at": "2026-08-29T11:56:39.396161+00:00", "kind": "homepage", "missing": false, "url": "https://haveno.exchange"}, {"content_hash": "823feb7c7c3beaba79ab16146caaf5a78deb28ac00ab67a008091e98225f8bc1", "fetched_at": "2026-08-29T11:56:39.401409+00:00", "kind": "site_page", "missing": false, "url": "https://docs.haveno.exchange/"}, {"content_hash": "1f5e08d5cc0c68db45551481dc9b9e6707989865e2ff44db70d4940cc7cb55d8", "fetched_at": "2026-08-29T11:56:39.403118+00:00", "kind": "site_page", "missing": false, "url": "https://docs.haveno.exchange/developers/installing"}, {"content_hash": "a4b4a6edee18c559c9332bee86255559ee274b4769b802f7b2f1b213ce066766", "fetched_at": "2026-08-29T11:56:39.399110+00:00", "kind": "site_page", "missing": false, "url": "https://haveno.exchange/faq"}, {"content_hash": "c3f826e71f2e0e4855724d803c381e6a2ee78efd61236492f6bc929c588f2451", "fetched_at": "2026-08-29T11:56:39.404960+00:00", "kind": "site_page", "missing": false, "url": "https://haveno.exchange/blog/ready-for-mainnet"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.342900+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.342900+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.342900+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:40:26.472625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5008d461be6d404cc5f1f0c82576f692a349a2df6871809697f261794af8b712", "fetched_at": "2026-08-28T04:04:33.342900+00:00", "kind": "readme", "missing": false, "url": "https://github.com/haveno-dex/haveno"}, {"content_hash": "54c7c98b02ced9cb45f92f58a5179c96055c46d39f579ca0dbc91ad19a5c0de9", "fetched_at": "2026-08-29T11:56:39.396161+00:00", "kind": "homepage", "missing": false, "url": "https://haveno.exchange"}, {"content_hash": "823feb7c7c3beaba79ab16146caaf5a78deb28ac00ab67a008091e98225f8bc1", "fetched_at": "2026-08-29T11:56:39.401409+00:00", "kind": "site_page", "missing": false, "url": "https://docs.haveno.exchange/"}, {"content_hash": "1f5e08d5cc0c68db45551481dc9b9e6707989865e2ff44db70d4940cc7cb55d8", "fetched_at": "2026-08-29T11:56:39.403118+00:00", "kind": "site_page", "missing": false, "url": "https://docs.haveno.exchange/developers/installing"}, {"content_hash": "a4b4a6edee18c559c9332bee86255559ee274b4769b802f7b2f1b213ce066766", "fetched_at": "2026-08-29T11:56:39.399110+00:00", "kind": "site_page", "missing": false, "url": "https://haveno.exchange/faq"}, {"content_hash": "c3f826e71f2e0e4855724d803c381e6a2ee78efd61236492f6bc929c588f2451", "fetched_at": "2026-08-29T11:56:39.404960+00:00", "kind": "site_page", "missing": false, "url": "https://haveno.exchange/blog/ready-for-mainnet"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.342900+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:33.342900+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:40:26.472625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5008d461be6d404cc5f1f0c82576f692a349a2df6871809697f261794af8b712", "fetched_at": "2026-08-28T04:04:33.342900+00:00", "kind": "readme", "missing": false, "url": "https://github.com/haveno-dex/haveno"}, {"content_hash": "54c7c98b02ced9cb45f92f58a5179c96055c46d39f579ca0dbc91ad19a5c0de9", "fetched_at": "2026-08-29T11:56:39.396161+00:00", "kind": "homepage", "missing": false, "url": "https://haveno.exchange"}, {"content_hash": "823feb7c7c3beaba79ab16146caaf5a78deb28ac00ab67a008091e98225f8bc1", "fetched_at": "2026-08-29T11:56:39.401409+00:00", "kind": "site_page", "missing": false, "url": "https://docs.haveno.exchange/"}, {"content_hash": "1f5e08d5cc0c68db45551481dc9b9e6707989865e2ff44db70d4940cc7cb55d8", "fetched_at": "2026-08-29T11:56:39.403118+00:00", "kind": "site_page", "missing": false, "url": "https://docs.haveno.exchange/developers/installing"}, {"content_hash": "a4b4a6edee18c559c9332bee86255559ee274b4769b802f7b2f1b213ce066766", "fetched_at": "2026-08-29T11:56:39.399110+00:00", "kind": "site_page", "missing": false, "url": "https://haveno.exchange/faq"}, {"content_hash": "c3f826e71f2e0e4855724d803c381e6a2ee78efd61236492f6bc929c588f2451", "fetched_at": "2026-08-29T11:56:39.404960+00:00", "kind": "site_page", "missing": false, "url": "https://haveno.exchange/blog/ready-for-mainnet"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:40:26.472625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5008d461be6d404cc5f1f0c82576f692a349a2df6871809697f261794af8b712", "fetched_at": "2026-08-28T04:04:33.342900+00:00", "kind": "readme", "missing": false, "url": "https://github.com/haveno-dex/haveno"}, {"content_hash": "54c7c98b02ced9cb45f92f58a5179c96055c46d39f579ca0dbc91ad19a5c0de9", "fetched_at": "2026-08-29T11:56:39.396161+00:00", "kind": "homepage", "missing": false, "url": "https://haveno.exchange"}, {"content_hash": "823feb7c7c3beaba79ab16146caaf5a78deb28ac00ab67a008091e98225f8bc1", "fetched_at": "2026-08-29T11:56:39.401409+00:00", "kind": "site_page", "missing": false, "url": "https://docs.haveno.exchange/"}, {"content_hash": "1f5e08d5cc0c68db45551481dc9b9e6707989865e2ff44db70d4940cc7cb55d8", "fetched_at": "2026-08-29T11:56:39.403118+00:00", "kind": "site_page", "missing": false, "url": "https://docs.haveno.exchange/developers/installing"}, {"content_hash": "a4b4a6edee18c559c9332bee86255559ee274b4769b802f7b2f1b213ce066766", "fetched_at": "2026-08-29T11:56:39.399110+00:00", "kind": "site_page", "missing": false, "url": "https://haveno.exchange/faq"}, {"content_hash": "c3f826e71f2e0e4855724d803c381e6a2ee78efd61236492f6bc929c588f2451", "fetched_at": "2026-08-29T11:56:39.404960+00:00", "kind": "site_page", "missing": false, "url": "https://haveno.exchange/blog/ready-for-mainnet"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:40:26.472625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5008d461be6d404cc5f1f0c82576f692a349a2df6871809697f261794af8b712", "fetched_at": "2026-08-28T04:04:33.342900+00:00", "kind": "readme", "missing": false, "url": "https://github.com/haveno-dex/haveno"}, {"content_hash": "54c7c98b02ced9cb45f92f58a5179c96055c46d39f579ca0dbc91ad19a5c0de9", "fetched_at": "2026-08-29T11:56:39.396161+00:00", "kind": "homepage", "missing": false, "url": "https://haveno.exchange"}, {"content_hash": "823feb7c7c3beaba79ab16146caaf5a78deb28ac00ab67a008091e98225f8bc1", "fetched_at": "2026-08-29T11:56:39.401409+00:00", "kind": "site_page", "missing": false, "url": "https://docs.haveno.exchange/"}, {"content_hash": "1f5e08d5cc0c68db45551481dc9b9e6707989865e2ff44db70d4940cc7cb55d8", "fetched_at": "2026-08-29T11:56:39.403118+00:00", "kind": "site_page", "missing": false, "url": "https://docs.haveno.exchange/developers/installing"}, {"content_hash": "a4b4a6edee18c559c9332bee86255559ee274b4769b802f7b2f1b213ce066766", "fetched_at": "2026-08-29T11:56:39.399110+00:00", "kind": "site_page", "missing": false, "url": "https://haveno.exchange/faq"}, {"content_hash": "c3f826e71f2e0e4855724d803c381e6a2ee78efd61236492f6bc929c588f2451", "fetched_at": "2026-08-29T11:56:39.404960+00:00", "kind": "site_page", "missing": false, "url": "https://haveno.exchange/blog/ready-for-mainnet"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:40:26.472625+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5008d461be6d404cc5f1f0c82576f692a349a2df6871809697f261794af8b712", "fetched_at": "2026-08-28T04:04:33.342900+00:00", "kind": "readme", "missing": false, "url": "https://github.com/haveno-dex/haveno"}, {"content_hash": "54c7c98b02ced9cb45f92f58a5179c96055c46d39f579ca0dbc91ad19a5c0de9", "fetched_at": "2026-08-29T11:56:39.396161+00:00", "kind": "homepage", "missing": false, "url": "https://haveno.exchange"}, {"content_hash": "823feb7c7c3beaba79ab16146caaf5a78deb28ac00ab67a008091e98225f8bc1", "fetched_at": "2026-08-29T11:56:39.401409+00:00", "kind": "site_page", "missing": false, "url": "https://docs.haveno.exchange/"}, {"content_hash": "1f5e08d5cc0c68db45551481dc9b9e6707989865e2ff44db70d4940cc7cb55d8", "fetched_at": "2026-08-29T11:56:39.403118+00:00", "kind": "site_page", "missing": false, "url": "https://docs.haveno.exchange/developers/installing"}, {"content_hash": "a4b4a6edee18c559c9332bee86255559ee274b4769b802f7b2f1b213ce066766", "fetched_at": "2026-08-29T11:56:39.399110+00:00", "kind": "site_page", "missing": false, "url": "https://haveno.exchange/faq"}, {"content_hash": "c3f826e71f2e0e4855724d803c381e6a2ee78efd61236492f6bc929c588f2451", "fetched_at": "2026-08-29T11:56:39.404960+00:00", "kind": "site_page", "missing": false, "url": "https://haveno.exchange/blog/ready-for-mainnet"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 89}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2382, "days_push": 7, "days_rel": 74, "gap_med": 28.5, "n_releases_24m": 19}, "score": 96, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}