MoneroFlow Wiki
Comprehensive documentation for merchants using MoneroFlow
Overview
MoneroFlow is a privacy-focused point-of-sale (POS) and payment processing solution for merchants who want to accept Monero (XMR) payments. Built with security and privacy as core principles, MoneroFlow provides a full suite of tools for managing crypto payments without compromising your customers' anonymity.
π Private Payments
Accept Monero β the only truly private cryptocurrency. Customer transactions are untraceable and unlinkable.
π° No Chargebacks
Once payment is received, it's final. No fraud, no chargebacks, no payment disputes.
π Self-Hosted Option
Run your own monero-wallet-rpc for maximum control and sovereignty over your funds.
π± Complete POS Suite
In-store terminal, invoices, subscriptions, payment links, and analytics in one unified platform.
Core Features
- Point-of-Sale Terminal: Real-time QR code generation, automatic fiat-to-XMR conversion, payment status tracking
- Invoicing: Create, send, and track invoices with automatic XMR conversion and status updates
- Subscription Management: Recurring billing with automatic coin-address generation per lifecycle
- Payment Links: Shareable links that customers can use to pay from anywhere
- Cold Storage Sweep: Automatically sweep received XMR to cold wallet addresses
- Analytics Dashboard: Track revenue, payments, trends, and customer insights
How It Works
- Set up your wallet: Create a blockchain wallet directly in the app (client-side generation, keys never leave your device)
- Add your business info: Configure your business name, logo, and settings
- Start accepting payments: Use the PoS terminal, create invoices, or share payment links
- Receive XMR: Payments arrive directly to your Monero wallet address
- Optional sweep: Configure automatic cold storage sweep for security
Security & Audits
MoneroFlow has been audited for cryptographic security, data storage practices, and wallet integrity. Key findings below.
Cryptographic Security
- β
Uses
crypto.getRandomValues()for cryptographically secure random number generation - β Ed25519 elliptic curve cryptography (same as Monero's cryptographic primitives)
- β Real Monero seed phrase generation with proper checksums (25-word BIP39-style with Monero wordlist)
- β View-only wallet enforces spend key restriction (cannot accidentally spend from view-only mode)
Data Storage
- β State persisted via Zustand + IndexedDB β more secure than localStorage/sessionStorage
- β Seed phrases never stored in localStorage/sessionStorage
- β All client-side storage is encrypted at the browser level (IndexedDB security model)
- β No sensitive keys or seeds exposed in HTTP requests or server communications
Network Security
- β All API communications use HTTPS
- β Monero node connections use secure WebSocket (wss://) or HTTPS
- β Pinning to trusted Monero nodes with automatic failover
- β No unencrypted HTTP endpoints used for wallet operations
Code Security
- β No exposed seed phrases in console logs or error messages
- β Third-party lib (monero-ts) has no history of critical vulnerabilities
- β Input validation on all user inputs (seed phrase verification, addresses, amounts)
- β No deprecated cryptographic APIs used
- Seed phrases are displayed in plain text during setup for user backup β this is intentional and necessary. Make sure no one else can see your screen or copy the seed.
- Send/spend keys must be backed up securely. Without them, you cannot recover or spend your XMR.
- Connectivity browser wallets only work while the browser tab is open. Keys derive locally from your seed phrase and are never stored persistently.
- For maximum security, consider using monero-wallet-rpc self-hosting with cold wallet sweeps.
Best Practices
- ⬀ Always back up your seed phrase β write it down on paper, store it securely offline
- ⬀ Enable cold storage sweep β automatically sweep received funds to a separate cold wallet address
- ⬀ Use a secure connection β only access MoneroFlow over HTTPS
- ⬀ Don't share your seed phrase β never enter it in chat, email, or untrusted websites
- ⬀ Use strong device security β enable device lock, screen lock, and keep your OS updated
Merchant Benefits
Why Accept Monero Payments?
Complete Customer Privacy
Unlike Bitcoin, Ethereum, or traditional payment methods, Monero transactions are completely private. Your customers don't have to expose their financial history or transaction patterns. This is especially valuable for:
- Privacy-conscious customers
- Customers in regions with financial surveillance concerns
- Anyone wanting to avoid corporate data collection
No Chargebacks or Fraud
Traditional payment methods (credit cards, PayPal) allow customers to reverse transactions through chargeback disputes. Monero payments are irreversible once confirmed β you keep 100% of your revenue with no chargeback fees, disputes, or fraud losses.
Low Transaction Fees
Monero transaction fees are typically fractions of a cent (0.0001 XMR or less). Compare this to 2-3% credit card processing fees plus $0.30 per transaction. For high-volume merchants, this creates significant cost savings.
Fast Settlement
Monero transactions confirm in 2-10 minutes (typically 2 minutes). Compare this to 3-5 business days for bank transfers or wire transfers. Your business receives funds quickly, improving cash flow.
Access to Global Customers
Cryptocurrency has no borders. You can accept payments from customers anywhere in the world without dealing with cross-border fees, currency conversion fees, or international payment processor limitations.
Improve Customer Loyalty
Offering Monero payments:
- Attracts tech-savvy, privacy-conscious customers
- Demonstrates you value customer privacy
- Reduces friction for international customers
- Signals modern, forward-thinking business practices
Comparative Benefits
Credit Cards
- 2-3% fees
- Chargeback disputes possible
- Customer data harvested
- 3-5 settlement days
Bitcoin
- All transactions publicly traceable
- Higher fees during congestion
- Customer privacy concerns
- Slower confirmation
Monero
- Fractions of a cent
- Irreversible payments
- Completely private
- 2-minute confirmation
Quick Setup Guide
Step 1: Create Your Wallet
When you first access MoneroFlow, you'll be prompted to set up your wallet:
- Choose between Browser Wallet (quick, runs in browser) or Self-Custody RPC (requires running your own monero-wallet-rpc)
- For Browser Wallet: MoneroFlow generates a view-only wallet address and 25-word seed phrase client-side
- Critical: Write down your seed phrase on paper, store it securely offline. Never share it with anyone.
Step 2: Configure Business Settings
Navigate to Settings β Business Info and add:
- Business name
- Currency preference (AUD, USD, EUR, etc.)
- Base country for tax/regulatory purposes
- Notification email for payment confirmations
Step 3: Optional - Configure Cold Storage
For maximum security, configure automatic cold storage sweep:
- Go to Settings β Cold Storage
- Enter your cold wallet address (where received XMR will automatically be swept)
- Set sweep frequency (e.g., every 4 hours)
- Enable automatic sweep
Step 4: Start Accepting Payments
You're now ready to accept XMR payments! Use:
- PoS Terminal β For in-store transactions (QR code display)
- Invoices β For B2B or email invoicing
- Payment Links β For sharing on websites, social media, chat
Troubleshooting Setup
Wallet won't generate: Check you have JavaScript enabled. The wallet generation happens entirely client-side.
Seed phrase not showing: Refresh the page after wallet setup completes.
Cold sweep not working: Verify you have your spend key backed up. View-only keys cannot sweep. For RPC wallets, ensure monero-wallet-rpc is accessible with DLT sync required to view some keys (spend keys are needed for sweeps and thus should be backed up)
Dashboard Guide
The MoneroFlow dashboard is your command center for monitoring payments, managing invoices, and tracking performance.
Overview Tab
Key metrics displayed:
- Revenue: Total XMR received (converted to your fiat currency)
- Transactions: Number of completed payments
- Recent Activity: Latest invoices, subscriptions, and payment link transactions
- Wallet Status: Connection to Monero network (Self-Custody or Browser Wallet)
Sweep Status Banner
If cold storage sweep is enabled, a status banner is displayed at the top.
- π‘ Amber + Green Blinking: Sweep in progress, auto-activating
- π‘ Amber: Sweep active (or status message display)
- π’ Green: Sweep completed (disappears after ~5 seconds)
Badges
- Browser Wallet: Client-side, self-custody but ephemeral (keys derived when open; spend keys are generated but not persisted; need to reimport from seed if session cleared)
- Self-Custody: Connected to your own monero-wallet-rpc β full sovereignty
Navigation
- Overview: Main dashboard with metrics and recent activity
- Invoices: Create and manage invoices
- Subscriptions: Recurring payment plans
- Payments: Payment history and transaction details
PoS Terminal Guide
The Point-of-Sale terminal is designed for in-store transactions. It generates QR codes that customers can scan with any XMR wallet.
How to Use
- Navigate to Tools β PoS Terminal
- Enter the sale amount (in your fiat currency, e.g., AUD)
- MoneroFlow automatically converts to XMR and generates a QR code
- Display the QR code to the customer on your POS device
- Customer scans the QR code with their XMR wallet app
- Monitor payment status: Waiting β Confirmed β Received
- Once confirmed, the sale is complete!
Quick Amount Buttons
Configure frequently used amounts (e.g., $10, $20, $50) for one-tap entry. Go to Settings β PoS Quick Buttons to customize.
Transaction States
- Waiting: Payment initiated, waiting for customer to send XMR
- Confirming: XMR transaction detected on network, awaiting confirmations
- Received: 2+ confirmations, payment complete
- Failed: Transaction failed or timed out
Tips for Smooth Transactions
- Display the QR code clearly on a bright screen
- Have a simple explanation ready: "It's like Bitcoin but private"
- Consider preparing printed materials for new customers
- Wait for "Received" status before completing the sale
Invoices & Subscriptions
Creating Invoices
- Navigate to Tools β Invoices
- Click Invoice New
- Fill in details: Client name, description, amount, due date
- Send via email: Enter client email address (requires email integration)
- OR copy invoice link and share manually
- Track status: Pending β Paid β Overdue
Subscription Plans
Create recurring payment plans for monthly or recurring services:
- Navigate to Tools β Subscriptions
- Click Subscription New
- Configure: Plan name, amount, frequency, billing cycle
- Set auto-renewal and expiration policies
- Share subscription link with customer
Invoice States
- Pending: Awaiting payment
- Paid: Payment received and confirmed
- Overdue: Past due date, not yet paid
- Cancelled: Invoice cancelled before payment
Payment Links
Payment links are shareable URLs that customers can use to pay from anywhere. Generate once, share infinitely.
Creating Payment Links
- Navigate to Tools β Payment Links
- Click Link New, configuring amount and label
- Optionally add description
- Link is generated automatically
- Share link via chat, email, website, social media
Use Cases
- "Donate" button on website
- Tips jar for content creators
- Easy checkout for online purchases
- Accepting payments via social media DMs
Tracking
Monitor payment link activity in the Payments tab. Each payment link shows total received and transaction count.
Wallet Setup Guide
Browser Wallet
Quick setup, runs entirely in your browser. Keys are derived from your seed phrase and are not stored persistently.
Pros:
- Fast setup, no infrastructure required
- Self-custody β your keys derive locally (you need to preserve your seed phrase to recover)
- Flexible access from anywhere with a browser
Cons:
- Requires browser tab to remain open (connectivity wallet)
- Seed phrase must be backed up to recover β keys are not persisted in browser storage for security
- Less control than full RPC setup
Self-Custody RPC
Run your own monero-wallet-rpc instance for maximum control and sovereignty.
Pros:
- Full control over your wallet daemon
- No browser tab required (monero-wallet-rpc runs as a daemon)
- B
- Better performance for high-volume merchants
- Direct blockchain access
Cons:
- Requires infrastructure setup (monero-wallet-rpc installation and hosting)
- Requires secure network configuration (firewall, HTTPS tunnel)
- Responsible for security and uptime
Seed Phrase Backup
How to Backup
- Complete wallet setup
- Write down the 25-word seed phrase on paper (do not take a screenshot)
- Store it in a secure, offline location (safe, safe deposit box, hidden drawer)
- Consider creating multiple copies stored separately
- Store the wallet view-only seed and view-only spend spend keyε―ε°θη³»δΊΊ heaven ζ΄Ύ ηη©η»
Verification
After writing down your seed phrase:
- Go to Settings β Wallet Verification
- Re-enter the seed phrase to confirm it matches
- Mark as Backed Up only after verification
What NOT to Do
- β Never store seed phrases in password managers without your own evaluation
- β Never take screenshots or photos of your seed phrase
- β Never seed phrase in email, chat, or unencrypted cloud
- β Never share your seed phrase with support staff
Cold Storage Sweep
Cold storage sweep automatically transfers received XMR from your view-only address to a separate cold wallet address for maximum security.
Why Use Cold Storage?
- Maximum security β funds not in connected wallet
- Protection against online attacks
- Simplified recovery β only need to restore one cold wallet
- Best practice for businesses holding significant XMR value
How to Configure
- Generate a cold wallet address using Monero CLI, Cake Wallet, etc.
- Go to Settings β Cold Storage
- Enter your cold wallet address
- Set sweep frequency (default: 4 hours)
- Enable automatic sweep
Sweep Process
- MoneroFlow monitors your view-only address for received XMR
- At configured intervals (e.g., every scan sweep), it builds a transaction to sweep confirmed funds to your cold wallet
- You will see a countdown dialog before the sweep β this shows the amount and gives you a chance to postpone or cancel
- After your approval, MoneroFlow builds the transaction in the background using a worker
- Remember that moving funds from view-only to cold requires re-providing your XMR password (if the cold wallet is hosted within MoneroFlow) β currently not enforced by the UI but good practice
Troubleshooting Sweep
Sweep not triggering: Check if you have your spend key backed up and cold configuration correct.
Transaction failed: Verify cold wallet address is valid and you have enough XMR to cover transaction fees.
How to Pay with XMR
Please direct customers to the Customer Guide:
Open Customer Guide βOr share this quick reference:
- Download an XMR wallet (Cake Wallet, Monero Wallet, Feather Wallet)
- Buy XMR on an exchange (Binance, Kraken, LocalMonero)
- Generate a receive address in your wallet
- Send XMR to the merchant's address
- Wait for 2-10 confirmations
- Payment is complete!
Where to Buy XMR
Where can customers obtain XMR? Provide links to major exchanges and P2P platforms.
- Binance: β Most Popular exchange, user-friendly mobile app
- Kraken: β Strong security, US-friendly deposit methods
- LocalMonero: β Non-custodial XMR-specific P2P trading
- Hodl Hodl: β Escrow P2P trading with diverse payment options
- KuCoin: β Global exchange with many XMR trading pairs
RPC Self-Hosting Guide
How to run your own monero-wallet-rpc for maximum control.
Installation
- Download Monero CLI tools from official site
- Install on your server (Linux recommended)
- Generate wallet:
monero-wallet-cli --generate-from-keys - Start RPC daemon:
monero-wallet-rpc --wallet-file=wallet-name --rpc-bind-ip=127.0.0.1 --rpc-bind-port=18082
Configuration
Configure your firewall to allow MoneroFlow access:
sudo ufw allow from 192.168.60.123 to any port 18082
In MoneroFlow:
- Go to Settings β Self-Custody
- Enter RPC URL:
http://YOUR_SERVER:18082 - Enter username (if configured)
- Enter password (if configured)
- Test connection
- Use strong RPC username and passwords
- Consider additional layers like using a separate dedicated server for monero-wallet-rpc
- Avoid exposing MoneroFlow and monero-wallet-rpc on the same public IP
Analytics & Reports
Monitor your revenue, payment trends, and customer insights.
Dashboard Metrics
- Revenue: Total XMR received, converted to fiat
- Transactions: Number of completed payments
- Average Order Value: Mean payment amount
- Time to Confirm: Average transaction confirmation time
Reports
Downloadable CSV reports for:
- Daily revenue summary
- Transaction history
- Customer payment patterns
- Subscription lifecycle metrics
Referral Program
Earn passively by referring other merchants to MoneroFlow. Key shared only β providing that monetization data does not expose any private keys or wallet information. Use referral link at Settings β Referrals; copy code to share externally.
Referral Tiers
- Standard: Earn a percentage on referred transactions
- Pro (10 referrals): Earn increased commission rates