What you need
| Field | What it does |
|---|---|
| Mint endpoint URL | Your server's public address-minting route. We call it to get a fresh address for each order. Not secret. |
| Webhook secret | A shared secret your server signs with and we verify. It can never touch your wallet. Secret. |
Self-hosting means running the blockchain yourself. You run the Bitcoin Cash Node app, a ready-made server, and a public address tool on your computer, and the Paytaca wallet on your phone. This guide walks through it on a Mac.
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.
Why we ask for each field
Mint endpoint URL
When a buyer clicks Buy, we ask your server for a fresh address. It hands back an address and nothing else; your wallet stays private behind it.
Webhook secret
Your server sends us a signed message whenever an order changes: paid, still settling, short, or expired. This secret proves the message came from your server. It can read nothing and move nothing.
Set up
- Get the Bitcoin Cash Node app, Node.js, and Paytaca
Three free downloads.
- Bitcoin Cash Node, from bitcoincashnode.org. Pick the Mac download for your computer, Apple Silicon or Intel. This is your node.
- Node.js (the green LTS button at nodejs.org). This runs the small server that hands out addresses.
- Paytaca, on your phone, from the App Store or Google Play. This is your wallet.
Bitcoin Cash Node ↗Node.js ↗Paytaca ↗
Download Bitcoin Cash Node - Make your two secret codes
Bitcoin Cash Node will not answer other programs without a password of its own, so you need two. Run the command below twice and label each one.
openssl rand -hex 32Secret What it does Node password Lets programs talk to your node. Goes in the settings file (step 3) and the server (step 7). Webhook secret Signs every message your server sends us. Goes in the server (step 7) and the dashboard (step 9), the same value in both. You can click Generate in the dashboard for the webhook secret instead. On Windows, run this in Git Bash.
- Set up the Bitcoin Cash Node app
Open Bitcoin Cash Node. The first time, it asks where to keep its data. Click OK. If Bitcoin Core is on this computer, pick Use a custom data directory and add /BitcoinCash to the path, because both apps use the same folder.
- On a Mac, open the bitcoin-qt menu and choose Preferences. On Windows, open Settings, then Options. Tick Prune block storage to, then click Open Configuration File.
- Paste the lines below into the file. Put your node password from step 2 after rpcpassword=.
- Save the file, click OK, quit Bitcoin Cash Node, and open it again.
Paste into the settings file
server=1 rpcbind=127.0.0.1 rpcallowip=127.0.0.1 rpcuser=shop rpcpassword=YOUR-NODE-PASSWORDserver=1 lets the server on this computer talk to your node. The 127.0.0.1 lines keep everyone else out.
Choose where it keeps its data Tick Prune block storage, then open the settings file The first start takes a long time while the node checks every block since 2009. You can do steps 4 through 8 meanwhile, but your first payment waits until it catches up.
- Make your wallet in Paytaca
Your money lives in Paytaca on your phone, never on this computer.
- Open Paytaca and create a new wallet. Write down the 12 words and keep them off your phone. They are the only key to your money.
- Open Settings, then Show Wallet Details. Copy the xPub Key and the Wallet Hash for step 7.
- If the xPub Key says Not available, close Paytaca completely and open it again.
Create your wallet in Paytaca Copy the xPub Key and the Wallet Hash The xPub Key lets the server make a fresh address for each sale. It cannot spend anything.
- Make the shop wallet in Bitcoin Cash Node
Your node needs a wallet of its own to watch for payments. It holds no keys, so nothing on this computer can spend your money.
- Open Window, then Console, and run the first command below.
- Open the bitcoin-qt menu, choose Preferences, click Open Configuration File, and add the second line under the ones from step 3. Save, quit Bitcoin Cash Node, and open it again.
1. In the Console, make the watch wallet
createwallet "shop" true trueIt answers with "name": "shop". Keep that name.
2. Add to the settings file
wallet=shopAdd it only after the command above has run once, or the app makes a wallet with keys instead.
- Make your store and copy the id
Sign in to the dashboard, make a store, and open its Settings. Copy the Store id. It starts with proj_, and the server calls it your project id.
Copy your Store id - Download and start the server
A ready-made server hands out an address for each sale and watches for the money. Run these one at a time, in the same Terminal window.
1. Make a folder for it
mkdir ~/Desktop/coinmoebius-bitcoin-cash2. Go into that folder
cd ~/Desktop/coinmoebius-bitcoin-cashEverything after this runs inside that folder.
3. Download the server
curl -fsSL https://www.coinmoebius.com/tools/bitcoin-cash-server.mjs -o bitcoin-cash-server.mjs4. Start a package file
npm init -y5. Install the three packages
npm install @aquarian-metals/coin-moebius-bitcoin-cash @aquarian-metals/coin-moebius-server @bitauth/libauth6. Start the server
node bitcoin-cash-server.mjsThe first run asks six questions: project id, webhook secret, rpcuser, node password, xPub Key, and Wallet Hash. It saves them next to the file and never asks again. To change one later, edit coin-moebius-bitcoin-cash.json, or delete it to start over.
Get the ready-made server It asks six questions, then runs Need a different port, or pointing it somewhere else?
The server listens on 8787, reports to coinmoebius.com, and marks an order paid after six blocks. Put any of these in front of the start command to change that.
Listen on a different port
PORT=9100 node bitcoin-cash-server.mjsPoint ngrok at the same number: ngrok http 9100.
Report to a different Coin Moebius
COIN_MOEBIUS_API=http://127.0.0.1:8787 node bitcoin-cash-server.mjsOnly if you run Coin Moebius yourself.
Wait for a different number of blocks
BITCOIN_CASH_CONFIRMATIONS=3 node bitcoin-cash-server.mjsThe buyer sees Payment received as soon as the network has the money either way.
Both at once
PORT=8788 COIN_MOEBIUS_API=http://127.0.0.1:8787 node bitcoin-cash-server.mjsThe server prints its port and where it reports every time it starts.
- Put your server online
Your server needs a public web address so we can reach it. A free tool called ngrok makes one.
- Make a free account at ngrok.com.
- Install it. On a Mac, brew install ngrok. On Windows, choco install ngrok, or download it from ngrok.com.
- Add your authtoken (ngrok shows the exact line on its setup page).
- Run the command below, then copy the https address next to Forwarding.
ngrok http 8787Copy the ngrok Forwarding address If you downloaded ngrok into a folder, run it from there as ./ngrok http 8787. Your free ngrok address stays the same every time you start it.
- Connect in the dashboard
Open Providers, click Connect a provider, then search for Bitcoin Cash and pick it. Paste two things and save.
- Your Bitcoin Cash server address: your ngrok address with /coin-moebius/bitcoin-cash/mint on the end.
- Shared secret: the webhook secret from step 2.
Search and pick Bitcoin Cash Paste the address and the secret When you save, we check that we can reach your server, so Bitcoin Cash Node, your server, and ngrok all need to be running.
- Add the buy button to your page
Make a product in the dashboard, then copy its buy button code onto your page. The two pieces go in two different places.
Near the bottom of the page, just before the closing body tag
<script src="https://sdk.coinmoebius.com/latest/sdk.global.js" crossorigin="anonymous" defer></script>One line, once per page.
Wherever you want the button to appear
<coin-moebius-buy project-id="proj_yourprojectid" product-id="your-product" amount="59.99" currency="USD" label="Buy now"> </coin-moebius-buy>Swap in your own project id and product id.
- Take your first payment
There is no sandbox for a self-hosted setup, so a small real payment is the test. Keep all three windows running.
- Open your page, click Buy, and pick Bitcoin Cash. The window shows an address, a QR code, and the amount.
- Send that exact amount from any Bitcoin Cash wallet.
- The window says Payment received as soon as the network has the money, usually within seconds. The payment shows up in Paytaca too.
- The order is marked paid after six blocks, about an hour. When the Transactions tab shows succeeded, your setup works end to end.
The buy window shows the address The payment is received
After you connect
Your first real payment is the test. Keep all three windows running: Bitcoin Cash Node, the server, and ngrok.
- The buy window says Payment received as soon as the network has the money. Your buyer can close it.
- The order settles after six blocks, about an hour.
- When the row in the Transactions tab reaches succeeded, your setup works end to end.
Troubleshooting
Checkout fails right away.
We could not reach your server. Check that all three windows are running and that the address in the dashboard ends in /coin-moebius/bitcoin-cash/mint.
The server says your node rejected the user name or password.
They must match rpcuser and rpcpassword in your settings file. Fix them in coin-moebius-bitcoin-cash.json and start the server again.
The server says it cannot reach your Bitcoin Cash node.
Bitcoin Cash Node is closed, or server=1 is missing from its settings file.
The server says your node has no wallet named shop open.
Add wallet=shop to the settings file as in step 5, then quit Bitcoin Cash Node and open it again.
The buyer paid but the order still says pending.
Normal while it settles. The order is marked paid at six blocks, about an hour after the money lands.
It still says pending after two hours.
The server is not running, its secret does not match the dashboard, or Bitcoin Cash Node has not caught up yet.
Money arrived but the order reads short.
The buyer sent less than the amount shown. The order is marked partial, and the dashboard shows how much arrived.
The payment shows in the dashboard but not in Paytaca.
Give it a couple of minutes. If it never shows, check that the Wallet Hash in coin-moebius-bitcoin-cash.json matches the one in Paytaca under Settings, then Show Wallet Details.
Good to know
Run it on a computer that stays on. For an everyday store, run the same parts on a computer that stays on, with a fixed web address.
Downtime is cheap. The server catches up after an outage and reports what it missed. Nothing is lost.
Your keys stay on your phone. Bitcoin Cash Node only watches. The 12 words in Paytaca are the only key to your money. Keep them off this computer.
Update before each May network upgrade. Bitcoin Cash upgrades its network every May. Install the new Bitcoin Cash Node release before then, or payments stop arriving.
Rotating the secret. Make a new webhook secret anytime, then use it in both the server and the dashboard.
Questions? Join our Discord