Haveno is now offering a new DEX protocol, a fully decentralized, censorship-resistant Payment Gateway that allows service providers like hosting companies to accept any form of payment - crypto, fiat, vouchers, even gold, all without KYC, without custodians, and without compromising user privacy.

🔍 Use Case Overview

You are a hosting provide and your customer wants to pay with Monero, but you prefer a SEPA bank transfer or PayPal,and using Haveno DPG, you both get what you want, without ever interacting directly.


🧠 How It Works

Haveno uses a network of self-hosted payment nodes that:

  • Accept incoming signed payment intents
  • Match buyer/seller intents via a P2P protocol
  • Use webhooks with cryptographic signatures to notify merchants
  • Relay payment proofs across nodes, maintaining complete decentralization

All this is done without any centralized Haveno server.


✅ Features

Feature Description
🧾 Signed Payment Intents Buyers generate a signed offer proving their intention to pay
📬 Webhook Verification Service providers get verifiable, tamper-proof notifications
🔁 Multi-Asset Swaps Accept Monero, but get paid in bank transfer, PayPal, or stablecoin
🧱 Composable Offers Sell bandwidth, CPU time, or disk space as individual tradeable items
🔗 No Custody or Gateway Risk You never hold crypto unless you want to
🔐 End-to-End Privacy Both merchant and client identities are fully protected

🛠️ Setting It Up

1. Install Haveno Node

git clone https://foss.haveno.com/haveno.git
cd haveno
make skip-deps

You’ll need to expose your webhook endpoint publicly if you want to receive payments automatically.


2. Configure Your Webhook

Your server should expose a POST /payment-webhook endpoint to receive payment events.

Each event contains:

{
  "type": "PAYMENT_CONFIRMED",
  "amount": "52.00",
  "currency": "XMR",
  "service_id": "hosting-tier1-100gb",
  "payment_proof": "base64-signed-json",
  "payer_pubkey": "abc123..."
}

Signature Verification (Python Example):

import nacl.signing
import base64

def verify(payload, signature, pubkey):
    key = nacl.signing.VerifyKey(pubkey, encoder=nacl.encoding.HexEncoder)
    key.verify(payload.encode(), base64.b64decode(signature))

3. Create a Payment Offer

Let’s say you offer 100GB VPS for 1 month:

haveno-cli create-offer \
  --service-id "hosting-tier1-100gb" \
  --amount 52 \
  --currency XMR \
  --webhook-url "https://yourhost.com/payment-webhook" \
  --settlement "paypal:[email protected]"

This will be publicly announced via the Haveno network.


💡 Accepting Fiat While Staying Private

Even if your customer pays in Monero, Haveno allows them to specify a counterparty that will swap it for fiat (bank transfer) to your account. You don’t know who they are. They don’t know who you are. Settlement is handled through atomic P2P trades, not escrow.


🔐 Securing Your Webhook

  • Always verify the payment_proof signature before provisioning a service.
  • You can reject payments not matching expected service_id or amount.
  • Optionally, require client certificates or encrypted tunnels (e.g. via Onion service).

📦 Bonus: Offer On-Demand Access

You can dynamically generate server instances only after Haveno notifies you of a confirmed payment. Use the service_id to provision appropriate resources.


💭 Use Cases Beyond Hosting

  • VPN providers (anonymous, usage-based payment)
  • Cloud compute & rendering farms
  • File storage and CDN delivery
  • Any API-based SaaS where users want to pay privately

Take a look at all of haveno's pre-made integrations to making the switch a breeze.

Some of the relevant integrations include:


🚀 Final Thoughts

This is the future of payments, value-based liquidity instead of pure token swaps. With Haveno's decentralized gateway:

  • You don’t rely on centralized APIs
  • You don’t need crypto expertise
  • You don’t risk custody

Just verify a signed webhook, and hand over the service.