Tous les fournisseurs

Monero

Vous faites tourner votre propre nœud Monero, et le paiement va directement dans votre portefeuille. Aucune entreprise au milieu, pas même nous.

Ce dont vous avez besoin

ChampCe qu'il fait
URL de l'endpoint de minteurLa route publique de votre nœud qui génère des adresses. Nous l'appelons pour obtenir une adresse fraîche à chaque commande. Pas secrète.
Secret de webhookUn secret partagé que votre observateur signe et que nous vérifions. Il ne peut jamais toucher votre portefeuille. Secret.

Cette option est pour ceux qui veulent faire tourner leur propre nœud. Vous faites aussi tourner un nœud Monero, un portefeuille en lecture seule, et un petit observateur toujours actif sur votre propre machine. Ce guide passe en revue tout cela. Si vous préférez ne rien faire tourner, connectez plutôt un service crypto hébergé.

Money flow

Money

  1. Buyer

    Taps your Coin Moebius Buy Button and pays from their own wallet.

  2. Your product page

    Your Coin Moebius Buy Button asks Coin Moebius to start a checkout.

  3. Coin Moebius Messages only

    Gets a fresh address from your server and shows it to the buyer.

  4. Blockchain

    Carries the coins from the buyer straight to you.

    • Monero
    • Zano
    • Freedom Dollar
    • Bitcoin
    • Bitcoin Cash
  5. Your wallet

    Receives the coins.

  6. Your server

    Sees the payment land in your wallet and tells Coin Moebius the sale is paid. Your keys and balance never leave your server.

    Coin Moebius dashboardSale shows as paid.
  • No buyer data

    Card numbers never reach us. Buyer names, addresses and contact details are stripped before a sale is saved.

  • Where our bill comes in

    The payment goes to you. Our bill comes separately. On Flex, that bill is based on the sales you’ve made, at 2% + 20¢ each. Pro starts at $24 a month with 500 sales included, then a few cents for each extra sale. Business is $99 a month for unlimited sales. Your provider’s fees are separate from ours.

Pourquoi nous demandons chaque champ

URL de l'endpoint de minteur

Quand un acheteur clique sur Acheter, nous demandons à votre nœud une adresse fraîche à lui montrer. Cette requête va vers cette seule route publique. Elle renvoie une adresse et rien d'autre ; votre portefeuille reste privé derrière elle.

Secret de webhook

Votre observateur nous dit « cette commande est payée » en envoyant un message signé. Ce secret partagé nous permet de confirmer que le message provient bien de votre observateur, pour que personne ne puisse falsifier un événement payé. Il ne peut rien lire et rien déplacer.

Configuration

  1. Ce que vous ferez tourner

    Trois choses, toutes sur votre propre machine. Rien ici ne nous est donné, sauf l'URL publique du minteur et le secret partagé.

    • Un nœud Monero (monerod) et un portefeuille en lecture seule (monero-wallet-rpc), gardés privés.
    • Un endpoint de minteur : une petite route publique qui distribue une adresse fraîche par commande.
    • Un observateur : un minuscule programme toujours actif qui surveille votre portefeuille et nous prévient quand un paiement arrive.
  2. Créez un portefeuille en lecture seule

    Un portefeuille en lecture seule peut voir les paiements entrants et générer des adresses de réception fraîches, mais il ne peut pas dépenser. Vous le construisez à partir de l'adresse de votre vrai portefeuille et de sa clé de vue privée, rien d'autre. C'est ce qui permet à votre nœud de détecter les paiements sans jamais détenir le pouvoir de les déplacer.

    monero-wallet-cli --generate-from-view-key ~/monero/view-only

    Il demande votre adresse principale et votre clé de vue privée. N'entrez jamais votre seed ni votre clé de dépense, gardez-les sur une machine séparée. Il écrit view-only et view-only.keys ; définissez un mot de passe et enregistrez-le dans un fichier (wallet.password, à côté du portefeuille) pour l'étape suivante.

  3. Faites tourner votre nœud Monero

    Le démon se synchronise et détient la blockchain. Faites-le tourner comme un service (systemd ou Docker) pour qu'il redémarre tout seul. Son RPC écoute sur 127.0.0.1:18081.

    monerod --data-dir ~/.bitmonero --prune-blockchain --restricted-rpc

    Un nœud élagué garde une faible empreinte disque tout en voyant chaque paiement entrant. Le nœud atteint le réseau mais n'expose rien de public.

  4. Faites tourner le wallet RPC

    Un second service qui ouvre le portefeuille en lecture seule et répond à l'endpoint de minteur et à l'observateur. Pointez-le vers votre nœud et liez-le à localhost. Faites-le tourner comme un service aussi.

    monero-wallet-rpc \
      --wallet-file ~/monero/view-only \
      --password-file ~/monero/wallet.password \
      --rpc-bind-ip 127.0.0.1 --rpc-bind-port 18083 \
      --daemon-address 127.0.0.1:18081 --trusted-daemon \
      --disable-rpc-login

    N'exposez jamais le wallet RPC à l'Internet public ; liez-le à localhost ou à un réseau privé. --disable-rpc-login n'est acceptable que parce que c'est localhost uniquement ; utilisez --rpc-login s'il est joignable depuis ailleurs. Seul l'endpoint de minteur ci-dessous est public.

  5. Installez le paquet Monero de Coin Moebius

    Il fournit le générateur d'adresses, le signataire de webhook et l'observateur, pour que vous écriviez presque aucun code. La voie la plus rapide est l'exemple prêt à l'emploi ci-dessous : copiez le dossier, remplissez quatre valeurs, et démarrez-le.

    npm install @aquarian-metals/coin-moebius-monero
  6. Générez votre secret de webhook

    Une valeur aléatoire forte qui signe et vérifie le webhook. Deux façons d'en créer une, à votre choix : cliquez sur Générer quand vous ajoutez le fournisseur dans le tableau de bord (cela tourne dans votre navigateur, jamais sur nos serveurs), ou exécutez la commande ci-dessous vous-même. Dans les deux cas, collez la même valeur dans votre observateur et dans le tableau de bord.

    openssl rand -hex 32
  7. Mettez en place l'endpoint de minteur

    Une seule route POST publique qui sert de façade à votre portefeuille. Elle utilise le createMoneroCreator du paquet pour générer une adresse fraîche par commande. C'est la seule chose que vous exposez à Internet, et c'est sans danger : elle renvoie une adresse de réception et ne déplace aucun argent.

    // POST /coin-moebius/monero/mint
    import { createMoneroCreator } from '@aquarian-metals/coin-moebius-monero/server';
    
    const mint = createMoneroCreator({
      walletRpcUrl: 'http://127.0.0.1:18083/json_rpc',
      store: myStore,
      xmrPerUnit: async (cur) => (cur === 'XMR' ? 1 : await myPriceFeed(cur)),
    });
    // return mint({ productId, amount, currency, metadata }) as JSON

    Vous choisissez d'où viennent les prix. Coin Moebius n'appelle jamais d'oracle de prix.

  8. Faites tourner l'observateur et pointez-le vers nous

    L'observateur est le programme toujours actif qui vérifie votre portefeuille toutes les quelques secondes et nous signe un message quand un paiement se confirme. Réglez son URL de webhook sur l'adresse de votre projet (ci-dessous) et son secret sur la valeur que vous avez générée. Faites-le tourner à côté de votre portefeuille, sous systemd ou Docker.

    import { createMoneroIndexer } from '@aquarian-metals/coin-moebius-monero/server';
    
    const watcher = createMoneroIndexer({
      walletRpcUrl: 'http://127.0.0.1:18083/json_rpc',
      store: myStore,
      webhookUrl: process.env.MONERO_WEBHOOK_URL,   // your Coin Moebius URL, below
      hmacSecret: process.env.MONERO_HMAC_SECRET,   // the secret you generated
      requiredConfirmations: 10,
    });
    watcher.start();

    Il rattrape par conception. S'il est hors ligne un moment, l'exécution suivante voit les paiements qu'il a manqués et nous le dit alors. Un serveur domestique convient ; vous n'avez pas besoin d'une disponibilité parfaite.

  9. Votre URL de webhook

    Réglez le webhookUrl de l'observateur sur l'adresse de votre projet. Votre identifiant de projet est dans les réglages du projet du tableau de bord.

    https://api.coinmoebius.com/webhook/monero/<your project id>
  10. Connectez dans le tableau de bord

    Add provider, choisissez Soyez votre propre fournisseur, puis Monero. Collez l'URL de votre endpoint de minteur et le secret de webhook. C'est tout ce que nous stockons, et aucune de ces valeurs ne peut toucher votre portefeuille.

Après la connexion

Il n'y a pas de sandbox pour un nœud auto-hébergé, donc votre premier petit paiement réel est le test :

  1. Créez un produit et placez le bouton d'achat sur une page (un fichier HTML local convient) pointé vers votre projet.
  2. Payez un petit montant de Monero depuis votre propre portefeuille.
  3. Attendez les confirmations. Monero prend environ vingt minutes pour confirmer pleinement, par conception.
  4. Ouvrez l'onglet Transactions. Quand la nouvelle ligne atteint succeeded, votre endpoint de minteur, votre observateur et votre secret fonctionnent tous de bout en bout.

Dépannage

Le paiement échoue tout de suite.

Nous n'avons pas pu joindre votre endpoint de minteur. Confirmez que c'est une URL https publique et que votre nœud est en ligne. Le tableau de bord l'affiche comme un message de joignabilité quand vous enregistrez.

L'acheteur a payé mais la commande reste en attente.

Soit l'observateur ne tourne pas, soit son secret ne correspond pas. Confirmez que le processus de l'observateur est actif et que son MONERO_HMAC_SECRET est la valeur exacte que vous avez collée dans le tableau de bord.

Le paiement a mis un moment à apparaître.

C'est normal. Monero confirme sur plusieurs blocs ; l'observateur attend dix confirmations (environ vingt minutes) avant de signaler la réussite.

Bon à savoir

Gardez un portefeuille en lecture seule sur la machine chaude. L'observateur n'a besoin que de voir les paiements entrants. Gardez votre clé de dépense sur une machine séparée et hors ligne et balayez les fonds depuis là.

N'exposez jamais le wallet RPC. Seul l'endpoint de minteur est public. Liez le wallet RPC à localhost ou à un réseau privé à tout moment.

L'indisponibilité coûte peu. L'observateur rattrape après une panne et signale les paiements qu'il a manqués. Rien n'est perdu.

Rotation du secret. Générez un nouveau secret à tout moment, puis collez-le à la fois dans l'observateur et dans le tableau de bord.

Monero circular economy

Des questions ? Join our Discord

Prêt à connecter un fournisseur ?

Choisissez les fournisseurs que vous utilisez déjà. Les acheteurs paient via vos comptes, et vous gardez un seul bouton d'achat.