Wat u nodig hebt
| Veld | Wat het doet |
|---|---|
| Mint-endpoint-URL | De publieke adres-mintroute van uw node. We roepen hem aan om een vers adres voor elke bestelling te krijgen. Niet geheim. |
| Webhook secret | Een gedeeld secret waarmee uw watcher ondertekent en wij verifiëren. Het kan uw wallet nooit raken. Geheim. |
Deze optie is voor mensen die hun eigen node willen draaien. U draait ook een Monero-node, een view-only wallet, en een kleine altijd-aan watcher op uw eigen machine. Deze gids loopt het allemaal door. Als u liever niets draait, verbind dan in plaats daarvan een gehoste crypto-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.
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.
Waarom we om elk veld vragen
Mint-endpoint-URL
Wanneer een koper op Kopen klikt, vragen we uw node om een vers adres om ze te tonen. Dat verzoek gaat naar deze ene publieke route. Hij geeft een adres terug en niets anders; uw wallet blijft privé erachter.
Webhook secret
Uw watcher vertelt ons "deze bestelling is betaald" door ons een ondertekend bericht te sturen. Dit gedeelde secret laat ons bevestigen dat het bericht echt van uw watcher kwam, zodat niemand een betaald-event kan vervalsen. Het kan niets lezen en niets verplaatsen.
Instellen
- Wat u gaat draaien
Drie dingen, allemaal op uw eigen machine. Niets hier wordt aan ons gegeven behalve de publieke mint-URL en het gedeelde secret.
- Een Monero-node (monerod) en een view-only wallet (monero-wallet-rpc), privé gehouden.
- Een mint-endpoint: één kleine publieke route die een vers adres per bestelling uitdeelt.
- Een watcher: een piepklein altijd-aan programma dat uw wallet in de gaten houdt en ons vertelt wanneer een betaling binnenkomt.
- Maak een view-only wallet aan
Een view-only wallet kan inkomende betalingen zien en verse ontvangstadressen minten, maar kan niet uitgeven. U bouwt hem uit het adres van uw echte wallet en zijn private view key, niets anders. Dat is wat uw node betalingen laat detecteren zonder ooit de macht te hebben ze te verplaatsen.
monero-wallet-cli --generate-from-view-key ~/monero/view-onlyHet vraagt om uw primaire adres en uw private view key. Voer nooit uw seed of spend key in, houd die op een aparte machine. Het schrijft view-only en view-only.keys; stel een wachtwoord in en sla het op in een bestand (wallet.password, naast de wallet) voor de volgende stap.
- Draai uw Monero-node
De daemon synchroniseert en houdt de blockchain. Draai hem als een service (systemd of Docker) zodat hij zichzelf herstart. Zijn RPC luistert op 127.0.0.1:18081.
monerod --data-dir ~/.bitmonero --prune-blockchain --restricted-rpcEen pruned node houdt de schijfvoetafdruk klein en ziet nog steeds elke inkomende betaling. De node bereikt het netwerk maar stelt niets publiek bloot.
- Draai de wallet-RPC
Een tweede service die de view-only wallet opent en de mint-endpoint en watcher beantwoordt. Richt hem op uw node en bind hem aan localhost. Draai hem ook als een service.
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-loginStel wallet-RPC nooit bloot aan het publieke internet; bind hem aan localhost of een privénetwerk. --disable-rpc-login is alleen prima omdat het localhost-only is; gebruik --rpc-login als hij van elders bereikbaar is. Alleen de mint-endpoint hieronder is publiek.
- Installeer het Coin Moebius Monero-pakket
Het levert de address-minter, de webhook-ondertekenaar, en de watcher, zodat u bijna geen code schrijft. Het snelste pad is het kant-en-klare voorbeeld hieronder: kopieer de map, vul vier waarden in, en start het.
npm install @aquarian-metals/coin-moebius-moneroHet pakket op npm ↗Kant-en-klaar voorbeeld (node, mint-endpoint, watcher) ↗
- Genereer uw webhook secret
Een sterke willekeurige waarde die de webhook ondertekent en verifieert. Twee manieren om er een te maken, uw keuze: klik op Genereren wanneer u de provider in het dashboard toevoegt (het draait in uw browser, nooit op onze servers), of voer het commando hieronder zelf uit. Hoe dan ook, plak dezelfde waarde in zowel uw watcher als het dashboard.
openssl rand -hex 32 - Zet de mint-endpoint op
Eén publieke POST-route die uw wallet afschermt. Hij gebruikt de createMoneroCreator van het pakket om een vers adres per bestelling te minten. Dit is het enige dat u blootstelt aan het internet, en het is veilig om bloot te stellen: het geeft een ontvangstadres terug en verplaatst geen 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 JSONU kiest waar prijzen vandaan komen. Coin Moebius roept nooit een price oracle aan.
- Draai de watcher en richt hem op ons
De watcher is het altijd-aan programma dat uw wallet elke paar seconden controleert en ons een bericht ondertekent wanneer een betaling bevestigt. Stel zijn webhook-URL in op uw projectadres (hieronder) en zijn secret op de waarde die u genereerde. Draai hem naast uw wallet, onder systemd of 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();Watcher-recept: indexer.js + systemd-unit + docker-compose ↗
Het is inhalend van opzet. Als het een tijd offline is, ziet de volgende run de betalingen die het miste en vertelt het ons dan. Een thuisserver is prima; u hebt geen perfecte uptime nodig.
- Uw webhook-URL
Stel de webhookUrl van de watcher in op uw projectadres. Uw project-id staat in de projectinstellingen in het dashboard.
https://api.coinmoebius.com/webhook/monero/<your project id> - Verbind in het dashboard
Provider toevoegen, kies Wees uw eigen provider, dan Monero. Plak uw mint-endpoint-URL en het webhook secret. Dat is alles wat we opslaan, en geen van beide waarden kan uw wallet raken.
Nadat u verbindt
Er is geen sandbox voor een zelf gehoste node, dus uw eerste kleine echte betaling is de test:
- Maak een product aan en plaats de buy button op een pagina (een lokaal HTML-bestand werkt) gericht op uw project.
- Betaal een klein bedrag Monero vanuit uw eigen wallet.
- Wacht op bevestigingen. Monero duurt ongeveer twintig minuten om volledig te bevestigen, van opzet.
- Open het tabblad Transacties. Wanneer de nieuwe rij succeeded bereikt, werken uw mint-endpoint, watcher en secret allemaal end-to-end.
Problemen oplossen
Checkout mislukt meteen.
We konden uw mint-endpoint niet bereiken. Bevestig dat het een publieke https-URL is en dat uw node online is. Het dashboard toont dit als een bereikbaarheidsbericht wanneer u opslaat.
De koper betaalde maar de bestelling blijft in behandeling.
Ofwel de watcher draait niet, of zijn secret komt niet overeen. Bevestig dat het watcher-proces draait en dat zijn MONERO_HMAC_SECRET de exacte waarde is die u in het dashboard plakte.
De betaling duurde even om te verschijnen.
Dat is normaal. Monero bevestigt over meerdere blokken; de watcher wacht op tien bevestigingen (ongeveer twintig minuten) voordat hij succes rapporteert.
Goed om te weten
Houd een view-only wallet op de hot box. De watcher hoeft alleen inkomende betalingen te zien. Houd uw spend key op een aparte, offline machine en veeg het geld daarvandaan op.
Stel wallet-RPC nooit bloot. Alleen de mint-endpoint is publiek. Bind wallet-RPC altijd aan localhost of een privénetwerk.
Downtime is goedkoop. De watcher haalt na een storing in en rapporteert de betalingen die het miste. Er gaat niets verloren.
Het secret roteren. Genereer wanneer u maar wilt een nieuw secret, plak het dan in zowel de watcher als het dashboard.
Monero circular economy
Vragen? Join our Discord