Wszyscy dostawcy

Monero

Prowadzisz własny węzeł Monero, a płatność trafia prosto do Twojego portfela. Żadna firma nie stoi pośrodku, nawet my.

Czego potrzebujesz

PoleDo czego służy
Mint endpoint URLPubliczna trasa Twojego węzła do generowania adresów. Wywołujemy ją, by uzyskać świeży adres dla każdego zamówienia. Nie jest tajny.
Webhook secretWspółdzielony sekret, którym Twój watcher podpisuje, a my weryfikujemy. Nigdy nie może dotknąć Twojego portfela. Tajny.

Ta opcja jest dla osób, które chcą prowadzić własny węzeł. Uruchamiasz też węzeł Monero, portfel tylko do podglądu oraz niewielki, stale działający watcher na własnej maszynie. Ten przewodnik prowadzi przez to wszystko. Jeśli wolisz niczego nie uruchamiać, podłącz zamiast tego hostowaną usługę krypto.

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.

Dlaczego prosimy o każde pole

Mint endpoint URL

Gdy kupujący kliknie Buy, prosimy Twój węzeł o świeży adres, by mu go pokazać. To żądanie idzie do tej jednej publicznej trasy. Zwraca adres i nic więcej; Twój portfel pozostaje prywatny za nią.

Webhook secret

Twój watcher mówi nam "to zamówienie jest opłacone", wysyłając podpisaną wiadomość. Ten współdzielony sekret pozwala nam potwierdzić, że wiadomość naprawdę pochodzi od Twojego watchera, by nikt nie mógł sfałszować zdarzenia opłacenia. Nie może niczego odczytać ani niczego przenieść.

Konfiguracja

  1. Co będziesz uruchamiać

    Trzy rzeczy, wszystkie na Twojej własnej maszynie. Nic tutaj nie jest nam przekazywane poza publicznym mint URL i współdzielonym sekretem.

    • Węzeł Monero (monerod) i portfel tylko do podglądu (monero-wallet-rpc), trzymane prywatnie.
    • Mint endpoint: jedna mała publiczna trasa, która wydaje świeży adres na zamówienie.
    • Watcher: malutki, stale działający program, który obserwuje Twój portfel i mówi nam, gdy nadejdzie płatność.
  2. Utwórz portfel tylko do podglądu

    Portfel tylko do podglądu widzi przychodzące płatności i generuje świeże adresy odbiorcze, ale nie może wydawać. Budujesz go z adresu swojego prawdziwego portfela i jego prywatnego klucza podglądu, niczego więcej. To właśnie pozwala Twojemu węzłowi wykrywać płatności, nie posiadając nigdy mocy, by je przenieść.

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

    Prosi o Twój adres główny i prywatny klucz podglądu. Nigdy nie wpisuj swojego seeda ani klucza wydatkowego, trzymaj je na osobnej maszynie. Zapisuje view-only oraz view-only.keys; ustaw hasło i zapisz je w pliku (wallet.password, obok portfela) na następny krok.

  3. Uruchom swój węzeł Monero

    Demon synchronizuje i przechowuje blockchain. Uruchom go jako usługę (systemd lub Docker), by sam się restartował. Jego RPC nasłuchuje na 127.0.0.1:18081.

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

    Węzeł przycięty utrzymuje mały ślad na dysku i wciąż widzi każdą przychodzącą płatność. Węzeł sięga do sieci, ale niczego nie udostępnia publicznie.

  4. Uruchom wallet RPC

    Druga usługa, która otwiera portfel tylko do podglądu i odpowiada mint endpointowi oraz watcherowi. Skieruj ją na swój węzeł i przypisz do localhost. Uruchom ją również jako usługę.

    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

    Nigdy nie wystawiaj wallet RPC do publicznego internetu; przypisz je do localhost lub sieci prywatnej. --disable-rpc-login jest w porządku tylko dlatego, że dotyczy wyłącznie localhost; użyj --rpc-login, jeśli jest osiągalne skądkolwiek indziej. Publiczny jest tylko mint endpoint poniżej.

  5. Zainstaluj pakiet Coin Moebius Monero

    Dostarcza generator adresów, podpisywanie webhooków i watcher, więc piszesz niemal zero kodu. Najszybsza droga to gotowy do uruchomienia przykład poniżej: skopiuj folder, wpisz cztery wartości i uruchom go.

    npm install @aquarian-metals/coin-moebius-monero
  6. Wygeneruj swój webhook secret

    Mocna losowa wartość, która podpisuje i weryfikuje webhook. Dwa sposoby na jej utworzenie, do wyboru: kliknij Generate, gdy dodajesz dostawcę w panelu (działa w Twojej przeglądarce, nigdy na naszych serwerach), albo sam uruchom komendę poniżej. Tak czy inaczej wklej tę samą wartość zarówno w swoim watcherze, jak i w panelu.

    openssl rand -hex 32
  7. Postaw mint endpoint

    Jedna publiczna trasa POST, która stoi przed Twoim portfelem. Używa createMoneroCreator z pakietu, by wygenerować świeży adres na zamówienie. To jedyna rzecz, którą wystawiasz do internetu, i można ją bezpiecznie wystawić: zwraca adres odbiorczy i nie przenosi żadnych pieniędzy.

    // 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

    Ty wybierasz, skąd biorą się ceny. Coin Moebius nigdy nie wywołuje wyroczni cenowej.

  8. Uruchom watcher i skieruj go na nas

    Watcher to stale działający program, który co kilka sekund sprawdza Twój portfel i podpisuje nam wiadomość, gdy płatność się potwierdzi. Ustaw jego webhook URL na adres Twojego projektu (poniżej), a jego sekret na wartość, którą wygenerowałeś. Uruchom go obok swojego portfela, pod systemd lub 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,   // Twój adres Coin Moebius, poniżej
      hmacSecret: process.env.MONERO_HMAC_SECRET,   // sekret, który wygenerowałeś
      requiredConfirmations: 10,
    });
    watcher.start();

    Z założenia nadrabia zaległości. Jeśli będzie offline przez jakiś czas, kolejny przebieg zobaczy płatności, które przegapił, i wtedy nam o nich powie. Domowy serwer jest w porządku; nie potrzebujesz idealnej dostępności.

  9. Twój webhook URL

    Ustaw webhookUrl watchera na adres Twojego projektu. Identyfikator Twojego projektu znajduje się w ustawieniach projektu w panelu.

    https://api.coinmoebius.com/webhook/monero/<your project id>
  10. Podłącz w panelu

    Add provider, wybierz Be your own provider, a następnie Monero. Wklej swój mint endpoint URL i webhook secret. To wszystko, co przechowujemy, i żadna z tych wartości nie może dotknąć Twojego portfela.

Po podłączeniu

Nie ma sandboxa dla węzła hostowanego samodzielnie, więc Twoja pierwsza mała prawdziwa płatność jest testem:

  1. Utwórz produkt i umieść przycisk kupna na stronie (wystarczy lokalny plik HTML) wskazującej na Twój projekt.
  2. Zapłać małą kwotę Monero z własnego portfela.
  3. Poczekaj na potwierdzenia. Monero z założenia potrzebuje około dwudziestu minut, by w pełni się potwierdzić.
  4. Otwórz zakładkę Transactions. Gdy nowy wiersz osiągnie succeeded, Twój mint endpoint, watcher i sekret działają od początku do końca.

Rozwiązywanie problemów

Checkout od razu się nie udaje.

Nie mogliśmy dotrzeć do Twojego mint endpointu. Potwierdź, że to publiczny adres https i że Twój węzeł jest online. Panel pokazuje to jako komunikat o osiągalności przy zapisie.

Kupujący zapłacił, ale zamówienie pozostaje pending.

Albo watcher nie działa, albo jego sekret się nie zgadza. Potwierdź, że proces watchera jest uruchomiony i że jego MONERO_HMAC_SECRET to dokładnie ta wartość, którą wkleiłeś do panelu.

Płatność trochę zajęła, zanim się pokazała.

To normalne. Monero potwierdza się przez kilka bloków; watcher czeka na dziesięć potwierdzeń (około dwudziestu minut), zanim zgłosi powodzenie.

Warto wiedzieć

Trzymaj portfel tylko do podglądu na maszynie online. Watcher musi jedynie widzieć przychodzące płatności. Trzymaj klucz wydatkowy na osobnej maszynie offline i stamtąd przelewaj środki.

Nigdy nie wystawiaj wallet RPC. Publiczny jest tylko mint endpoint. Przez cały czas przypisuj wallet RPC do localhost lub sieci prywatnej.

Przestoje są tanie. Watcher nadrabia zaległości po awarii i zgłasza płatności, które przegapił. Nic nie ginie.

Rotacja sekretu. Wygeneruj nowy sekret kiedy chcesz, a potem wklej go zarówno do watchera, jak i do panelu.

Monero circular economy

Pytania? Join our Discord

Gotowy podłączyć dostawcę?

Wybierz dostawców, których już używasz. Kupujący płacą przez Twoje konta, a Ty zachowujesz jeden przycisk kupna.