DEV Community

Daniel Ioni
Daniel Ioni

Posted on

πŸš€ MyZubster: The State of the Art – What Works, What Doesn't, and What's Missing

 πŸš€ 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)

  1. 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.

  2. 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.

  3. Frontend & Infrastructure

    βœ… React/Vite application served by Nginx.

  4. βœ… 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.
Enter fullscreen mode Exit fullscreen mode

πŸ”· 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.
Enter fullscreen mode Exit fullscreen mode

πŸ› οΈ 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)
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Tor

Onion service regenerated, currently 2otfic43en3fp3kz7ddowd3xlps5km6obu7qsgp2jhq7qlfv7tdkzqad.onion

Minimal configuration with SocksPort 9050 for testing
Enter fullscreen mode Exit fullscreen mode

Systemd

myzubster-gateway.service – manages the gateway

tor-daemon.service – manages Tor (custom service, not the default one)
Enter fullscreen mode Exit fullscreen mode

🧩 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.
Enter fullscreen mode Exit fullscreen mode

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.
Enter fullscreen mode Exit fullscreen mode

πŸ§ͺ How to Test the System
Clearnet (HTTP, no SSL)
text

https://myzubster.com

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).
Enter fullscreen mode Exit fullscreen mode

πŸ™Œ Contribute!

The project is open‑source, and we welcome contributions of all kinds:

πŸ› Bug reports

πŸ’‘ Feature ideas

πŸ”§ Pull requests (especially for NFT and Tari)
Enter fullscreen mode Exit fullscreen mode

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)