π MyZubster: The State of the Art β What Works, What Doesn't, and What's Missing
After weeks of development, debugging, and sleepless nights, we're ready to take stock of the current configuration of MyZubster β the decentralized marketplace for tokenizing real-world assets with Monero payments.
In this post, I'll share exactly where we are, what works, what's still missing, and how you can test everything yourself.
π What Works (and Works Well)
-
Fungible Tokens (ERCβ20 style)
β Token creation with all fields: name, symbol, supply, asset value, price, asset type (realestate, equity, art, commodity, debt, revenue), description, location, contract address.
β User holdings with amount and lockedAmount (for open orders).
β Complete order book: sell, buy, cancel.
β Automatic token transfer between buyer and seller.
β Reputation system: each completed trade awards points (seller +10/token, buyer +5/token), and tracks completed trades.
-
Monero (XMR) β Private Payments
β Wallet RPC connected and working on stagenet.
β Generation of unique subaddresses for each order.
β PaymentMonitor active: scans every 30 seconds for pending transactions.
β Automatic confirmation verification: when a transaction is confirmed, the order is automatically completed.
β Logs are clean, with no connection errors.
-
Frontend & Infrastructure
β React/Vite application served by Nginx.
-
β Node.js/Express API Gateway on port 3000.
β MongoDB database with all models (User, Token, TokenHolding, OrderBook, MoneroTransaction).
β Systemd service for the gateway (autoβrestarts on crash).
β UFW firewall with essential ports open.
β Tor onion service active and reachable (with a regenerated onion address).
πΌοΈ NFT Status
β
NFT model already in the database (fields: tokenId, name, description, imageUrl, owner, value, metadata, transferHistory).
β
/reputation page in the frontend (displays userβowned NFTs).
β Not yet integrated into the marketplace β NFTs cannot be bought or sold via the order book.
β NFT creation is not yet exposed via API.
Next step: create a /api/nfts route for issuing and transferring NFTs, and connect it to the frontend.
π· Tari Status
β Not yet implemented β currently only on the roadmap.
Tari will be used for:
Smart contracts for confessional robots (future vision).
Issuing programmable NFTs with onβchain logic.
Advanced asset management (e.g., automatic dividends).
Status: in design and planning. No code written yet.
π οΈ Current Configuration β How the System Is Set Up
Backend
Node.js v20.20.2 + Express
MongoDB on localhost:27017
Monero wallet RPC on localhost:18083 (stagenet)
PaymentMonitor integrated into the Node process (starts with the gateway)
Frontend
React + Vite, build in dist/, served by Nginx
Nginx as reverse proxy:
Listens on 127.0.0.1:80 for the onion service
Listens on 0.0.0.0:80 for clearnet (myzubster.com)
Proxies API requests to localhost:3000
Tor
Onion service regenerated, currently 2otfic43en3fp3kz7ddowd3xlps5km6obu7qsgp2jhq7qlfv7tdkzqad.onion
Minimal configuration with SocksPort 9050 for testing
Systemd
myzubster-gateway.service β manages the gateway
tor-daemon.service β manages Tor (custom service, not the default one)
π§© Challenges Faced and Solved
Challenge Solution
CSP (Content Security Policy) on Tor Removed definitively with add_header Content-Security-Policy "" always; in Nginx
Wallet RPC getting stuck Removed lock file (*.lock) and restarted with --disable-rpc-login
Daemon connection issues Used remote node node.moneroworld.com:38081 as fallback
Tor directory permissions chown -R debian-tor:debian-tor /var/lib/tor/myzubster/ and chmod 700
Wallet lock rm -f ~/monero/myzubster_wallet.lock before starting RPC
Cannot read properties of undefined (reading 'find') Added check on transfers.in and error handling in checkPayment
π What's Missing (Roadmap)
Immediate (next weeks)
NFT integration into the marketplace β /api/nfts route to create and transfer NFTs, and connect with the order book.
SSL/HTTPS β Let's Encrypt for clearnet.
Monero mainnet transition β after thorough testing on stagenet.
Admin dashboard β realβtime statistics and user management.
Future (vision)
Tari integration β smart contracts for programmable assets.
AI confessional robots + NFTs β the experimental part, with zeroβknowledge proofs.
Multiβcurrency β support for Bitcoin and other cryptocurrencies.
π§ͺ How to Test the System
Clearnet (HTTP, no SSL)
text
Onion (via Tor Browser)
text
http://2otfic43en3fp3kz7ddowd3xlps5km6obu7qsgp2jhq7qlfv7tdkzqad.onion/
API (Health check)
bash
curl https://myzubster.com/api/health
Test a Monero Payment (stagenet)
Register and create a token.
Create a sell order.
Initiate a payment via the API (or from the frontend) β a subaddress will be generated.
Send XMR from a stagenet faucet to that address.
Wait for the PaymentMonitor to complete the order (max 30 seconds + confirmations).
π Contribute!
The project is openβsource, and we welcome contributions of all kinds:
π Bug reports
π‘ Feature ideas
π§ Pull requests (especially for NFT and Tari)
GitHub: DanielIoni-creator/MyZubsterGateway
π Summary
Component Status
Fungible Tokens β
Fully functional
Marketplace (order book) β
Fully functional
Monero payments β
Fully functional on stagenet
NFTs (model + frontend) β³ Partial (trading missing)
Tari integration β Not started
SSL/HTTPS β To do
Admin dashboard β To do
π¬ Conclusion
We've reached a turning point: the core of the system is solid, the configuration is stable, and Monero payments work flawlessly. Now we can focus on advanced features like NFTs, Tari, and realβworld integration.
If you're a developer, a privacy advocate, or just curious, we invite you to explore the system and give us your feedback.
The future is private, programmable, and decentralized. MyZubster is just getting started.
Built with β€οΈ by the MyZubster team.
Top comments (0)