Was Sie brauchen
| Feld | Was es tut |
|---|---|
| Mint-Endpunkt-URL | Die öffentliche Adress-Präge-Route Ihres Knotens. Wir rufen sie auf, um für jede Bestellung eine frische Adresse zu erhalten. Nicht geheim. |
| Webhook-Secret | Ein gemeinsames Geheimnis, mit dem Ihr Beobachter signiert und das wir verifizieren. Es kann Ihr Wallet nie berühren. Geheim. |
Diese Option ist für Menschen, die ihren eigenen Knoten betreiben möchten. Sie betreiben außerdem einen Monero-Knoten, ein reines Sicht-Wallet und einen kleinen, dauerhaft laufenden Beobachter auf Ihrer eigenen Maschine. Diese Anleitung führt durch all das. Wenn Sie lieber nichts betreiben möchten, verbinden Sie stattdessen einen gehosteten Krypto-Dienst.
Money flow
Money
Buyer
Taps your Coin Moebius Buy Button and pays from their own wallet.
Your product page
Your Coin Moebius Buy Button asks Coin Moebius to start a checkout.
Coin Moebius Messages only
Gets a fresh address from your server and shows it to the buyer.
Blockchain
Carries the coins from the buyer straight to you.
Your wallet
Receives the coins.
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.
No cut of your sales
You pay a flat plan price. We never take a percentage of what you sell.
Warum wir nach jedem Feld fragen
Mint-Endpunkt-URL
Wenn ein Käufer Kaufen klickt, fragen wir Ihren Knoten nach einer frischen Adresse, um sie ihm zu zeigen. Diese Anfrage geht an diese eine öffentliche Route. Sie gibt eine Adresse zurück und sonst nichts; Ihr Wallet bleibt privat dahinter.
Webhook-Secret
Ihr Beobachter sagt uns "diese Bestellung ist bezahlt", indem er uns eine signierte Nachricht sendet. Dieses gemeinsame Geheimnis lässt uns bestätigen, dass die Nachricht echt von Ihrem Beobachter kam, sodass niemand ein bezahltes Ereignis fälschen kann. Es kann nichts lesen und nichts bewegen.
Einrichten
- Was Sie betreiben werden
Drei Dinge, alle auf Ihrer eigenen Maschine. Nichts davon wird uns gegeben außer der öffentlichen Mint-URL und dem gemeinsamen Secret.
- Ein Monero-Knoten (monerod) und ein reines Sicht-Wallet (monero-wallet-rpc), privat gehalten.
- Ein Mint-Endpunkt: eine kleine öffentliche Route, die pro Bestellung eine frische Adresse ausgibt.
- Ein Beobachter: ein winziges, dauerhaft laufendes Programm, das Ihr Wallet beobachtet und uns sagt, wenn eine Zahlung landet.
- Ein reines Sicht-Wallet erstellen
Ein reines Sicht-Wallet kann eingehende Zahlungen sehen und frische Empfangsadressen prägen, aber es kann nicht ausgeben. Sie bauen es aus der Adresse Ihres echten Wallets und seinem privaten Sicht-Schlüssel, sonst nichts. Das ist es, was Ihren Knoten Zahlungen erkennen lässt, ohne je die Macht zu halten, sie zu bewegen.
monero-wallet-cli --generate-from-view-key ~/monero/view-onlyEs fragt nach Ihrer primären Adresse und Ihrem privaten Sicht-Schlüssel. Geben Sie nie Ihren Seed oder Spend Key ein, halten Sie diese auf einer separaten Maschine. Es schreibt view-only und view-only.keys; setzen Sie ein Passwort und speichern Sie es in einer Datei (wallet.password, neben dem Wallet) für den nächsten Schritt.
- Ihren Monero-Knoten betreiben
Der Daemon synchronisiert und hält die Blockchain. Betreiben Sie ihn als Dienst (systemd oder Docker), sodass er von selbst neu startet. Sein RPC lauscht auf 127.0.0.1:18081.
monerod --data-dir ~/.bitmonero --prune-blockchain --restricted-rpcEin beschnittener Knoten hält den Festplatten-Fußabdruck klein und sieht trotzdem jede eingehende Zahlung. Der Knoten erreicht das Netzwerk, gibt aber nichts Öffentliches preis.
- Das Wallet-RPC betreiben
Ein zweiter Dienst, der das reine Sicht-Wallet öffnet und den Mint-Endpunkt und Beobachter bedient. Richten Sie ihn auf Ihren Knoten und binden Sie ihn an localhost. Betreiben Sie ihn ebenfalls als Dienst.
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-loginSetzen Sie das Wallet-RPC nie dem öffentlichen Internet aus; binden Sie es an localhost oder ein privates Netzwerk. --disable-rpc-login ist nur in Ordnung, weil es localhost-only ist; nutzen Sie --rpc-login, wenn es von anderswo erreichbar ist. Nur der Mint-Endpunkt unten ist öffentlich.
- Das Coin-Moebius-Monero-Paket installieren
Es liefert den Adresspräger, den Webhook-Signierer und den Beobachter, sodass Sie fast keinen Code schreiben. Der schnellste Weg ist das einsatzbereite Beispiel unten: kopieren Sie den Ordner, füllen Sie vier Werte aus und starten Sie es.
npm install @aquarian-metals/coin-moebius-moneroDas Paket auf npm ↗Einsatzbereites Beispiel (Knoten, Mint-Endpunkt, Beobachter) ↗
- Ihr Webhook-Secret erzeugen
Ein starker Zufallswert, der den Webhook signiert und verifiziert. Zwei Wege, eines zu erstellen, Ihre Wahl: klicken Sie Erzeugen, wenn Sie den Anbieter im Dashboard hinzufügen (es läuft in Ihrem Browser, nie auf unseren Servern), oder führen Sie den Befehl unten selbst aus. So oder so fügen Sie denselben Wert in Ihren Beobachter und ins Dashboard ein.
openssl rand -hex 32 - Den Mint-Endpunkt aufsetzen
Eine öffentliche POST-Route, die Ihrem Wallet vorgelagert ist. Sie nutzt die createMoneroCreator des Pakets, um pro Bestellung eine frische Adresse zu prägen. Das ist das Einzige, was Sie dem Internet aussetzen, und es ist sicher auszusetzen: es gibt eine Empfangsadresse zurück und bewegt kein Geld.
// 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 JSONSie wählen, woher die Preise kommen. Coin Moebius ruft nie ein Preis-Orakel auf.
- Den Beobachter betreiben und auf uns richten
Der Beobachter ist das dauerhaft laufende Programm, das Ihr Wallet alle paar Sekunden prüft und uns eine Nachricht signiert, wenn eine Zahlung bestätigt. Setzen Sie seine Webhook-URL auf Ihre Projektadresse (unten) und sein Secret auf den Wert, den Sie erzeugt haben. Betreiben Sie ihn neben Ihrem Wallet, unter systemd oder 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();Beobachter-Rezept: indexer.js + systemd-Unit + docker-compose ↗
Er holt von Natur aus auf. Wenn er eine Zeit lang offline ist, sieht der nächste Lauf die verpassten Zahlungen und sagt es uns dann. Ein Heimserver reicht; Sie brauchen keine perfekte Verfügbarkeit.
- Ihre Webhook-URL
Setzen Sie die webhookUrl des Beobachters auf Ihre Projektadresse. Ihre Projekt-ID steht in den Projekteinstellungen im Dashboard.
https://api.coinmoebius.com/webhook/monero/<your project id> - Im Dashboard verbinden
Anbieter hinzufügen, wählen Sie Ihr eigener Anbieter sein, dann Monero. Fügen Sie Ihre Mint-Endpunkt-URL und das Webhook-Secret ein. Das ist alles, was wir speichern, und keiner der Werte kann Ihr Wallet berühren.
Nachdem Sie verbunden haben
Es gibt keinen Sandbox für einen selbst gehosteten Knoten, Ihre erste kleine echte Zahlung ist also der Test:
- Erstellen Sie ein Produkt und setzen Sie den Buy-Button auf eine Seite (eine lokale HTML-Datei reicht), die auf Ihr Projekt zeigt.
- Zahlen Sie einen kleinen Betrag Monero aus Ihrem eigenen Wallet.
- Warten Sie auf Bestätigungen. Monero braucht von Natur aus etwa zwanzig Minuten zur vollen Bestätigung.
- Öffnen Sie den Reiter Transaktionen. Wenn die neue Zeile succeeded erreicht, funktionieren Ihr Mint-Endpunkt, Beobachter und Secret alle von Ende zu Ende.
Fehlerbehebung
Der Checkout scheitert sofort.
Wir konnten Ihren Mint-Endpunkt nicht erreichen. Bestätigen Sie, dass es eine öffentliche https-URL ist und dass Ihr Knoten online ist. Das Dashboard zeigt dies beim Speichern als Erreichbarkeitsmeldung.
Der Käufer hat gezahlt, aber die Bestellung bleibt ausstehend.
Entweder läuft der Beobachter nicht, oder sein Secret stimmt nicht überein. Bestätigen Sie, dass der Beobachter-Prozess läuft und dass sein MONERO_HMAC_SECRET der genaue Wert ist, den Sie ins Dashboard eingefügt haben.
Die Zahlung brauchte eine Weile, bis sie erschien.
Das ist normal. Monero bestätigt über mehrere Blöcke; der Beobachter wartet auf zehn Bestätigungen (etwa zwanzig Minuten), bevor er Erfolg meldet.
Gut zu wissen
Halten Sie ein reines Sicht-Wallet auf der heißen Maschine. Der Beobachter muss nur eingehende Zahlungen sehen. Halten Sie Ihren Spend Key auf einer separaten, offline Maschine und schöpfen Sie Gelder von dort ab.
Setzen Sie das Wallet-RPC nie aus. Nur der Mint-Endpunkt ist öffentlich. Binden Sie das Wallet-RPC jederzeit an localhost oder ein privates Netzwerk.
Ausfallzeit ist günstig. Der Beobachter holt nach einem Ausfall auf und meldet die verpassten Zahlungen. Nichts geht verloren.
Das Secret rotieren. Erzeugen Sie jederzeit ein neues Secret, fügen Sie es dann sowohl in den Beobachter als auch ins Dashboard ein.
Monero circular economy
Fragen? Join our Discord