DEV Community

Daniel Ioni
Daniel Ioni

Posted on

MyZubster: An Open Source Ecosystem for Skills Marketplace & Monero Payment Gateway

MyZubster: An Open Source Ecosystem for Skills Marketplace & Monero Payment Gateway

๐Ÿ’ก The Vision: Everyone Can Build, Earn, and Grow

Imagine a world where anyone can launch their own skills marketplace, accept Monero payments, and earn from every transaction โ€” without paying expensive fees to third-party platforms.

That's exactly what MyZubster enables.

This isn't just a payment gateway. It's a complete open source ecosystem that gives you:

  • ๐Ÿ”“ Full ownership of your marketplace
  • ๐Ÿ’ฐ Earn from fees you set (0.5% - 5%)
  • ๐Ÿ  Self-hosted โ€” no middlemen, no data sharing
  • ๐ŸŒ Borderless payments with Monero
  • ๐Ÿ“ฑ Mobile app ready for Android users

๐Ÿ—๏ธ The Ecosystem: Three Components, One Vision

MyZubster is built as a modular ecosystem where each component works independently but integrates seamlessly:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ MYZUBSTER ECOSYSTEM โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚ Monero โ”‚ โ”‚ Core โ”‚ โ”‚ Marketplace โ”‚ โ”‚
โ”‚ โ”‚ Wallet โ”‚โ”€โ”€โ–ถโ”‚ Gateway โ”‚โ”€โ”€โ–ถโ”‚ (Skills, Users, โ”‚ โ”‚
โ”‚ โ”‚ RPC โ”‚ โ”‚ (Node.js) โ”‚ โ”‚ Orders, Reviews) โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚ โ”‚ โ”‚
โ”‚ โ–ผ โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚ Mobile App โ”‚ โ”‚
โ”‚ โ”‚ (Android/React โ”‚ โ”‚
โ”‚ โ”‚ Native) โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
text

1. Core Gateway (MyZubsterAPP)

The heart of the ecosystem โ€” handles all Monero interactions:

  • Generates unique subaddress for each order
  • Monitors payments automatically (every 60 seconds)
  • Sends webhooks when payments are confirmed
  • Secure JWT authentication

2. Marketplace (MyZubster-Marketplace)

The business layer โ€” where value is created:

  • Skills โ€” Freelancers/experts list their services
  • Orders โ€” Clients pay for skills via Monero
  • Users โ€” Registration, login, roles (user โ†’ seller โ†’ admin)
  • Reviews โ€” Build trust in the community
  • Fees โ€” Set your commission (0.5% - 5%)

3. Mobile App (MyZubster-App)

The user interface โ€” connected to the marketplace:

  • Browse skills
  • Create orders
  • Track payment status
  • Manage profile

๐Ÿ’ฐ How You Can Earn

For Marketplace Owners

  1. Commission fees โ€” Set a percentage (e.g., 2%) on every transaction
  2. Premium listings โ€” Highlight skills for a fee
  3. White-label solution โ€” Rebrand MyZubster for your community
  4. No monthly fees โ€” Self-hosted, you keep everything

For Skill Providers (Sellers)

  1. Global audience โ€” Accept payments from anyone, anywhere
  2. No bank charges โ€” Monero payments are borderless
  3. Privacy โ€” Your wallet address is your identity
  4. Instant payments โ€” No chargebacks, no delays

For Developers

  1. Open source โ€” Fork it, customize it, improve it
  2. No lock-in โ€” Your data, your rules
  3. Full control โ€” Change anything you want

๐Ÿ”‘ Technical Deep Dive

Subaddress Generation โ€” Privacy by Design

Every order receives a unique Monero subaddress. This means:

  • Privacy: The user's payment is never linked to a single wallet
  • Tracking: Each payment is automatically matched to the correct order
  • Security: No one can see your total wallet balance

javascript
async function generateRealSubaddress(label) {
  const response = await fetch(`${MONERO_RPC_URL}/json_rpc`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      jsonrpc: '2.0',
      id: '0',
      method: 'create_address',
      params: {
        account_index: 0,
        label: `order_${label}`
      }
    })
  });

  const data = await response.json();
  return data.result.address;
}

Automatic Payment Monitoring

No manual checks needed. The gateway monitors all pending orders and updates status automatically:
javascript

async function checkPendingOrders() {
  const pendingOrders = await Order.findAll({
    where: { status: 'pending' }
  });

  const payments = await getBulkPayments(0);

  for (const order of pendingOrders) {
    const matchingPayments = payments.filter(
      p => p.address === order.moneroAddress
    );

    if (matchingPayments.length > 0) {
      const payment = matchingPayments[0];
      const amountReceived = payment.amount / 1e12;
      const confirmations = payment.confirmations;

      if (amountReceived >= order.moneroAmount && 
          confirmations >= MONERO_MIN_CONFIRMATIONS) {

        await updateOrder(order.id, {
          status: 'completed',
          confirmations,
          amountReceived,
          txHash: payment.tx_hash
        });

        await sendWebhook(order.id, 'completed', payment.tx_hash, confirmations, amountReceived);
      }
    }
  }
}

Webhook Integration โ€” Real-Time Updates

When a payment is confirmed, the marketplace receives a webhook instantly:
javascript

router.post('/order-update', async (req, res) => {
  const { orderId, status, txHash, confirmations, amountReceived } = req.body;

  const order = await Order.findByPk(orderId);
  order.status = status;
  order.txHash = txHash;
  order.confirmations = confirmations;
  order.amountReceived = amountReceived;
  await order.save();

  console.log(`โœ… Order ${orderId} updated to ${status}`);
  res.json({ success: true });
});

๐Ÿงช Complete Payment Flow
text

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    USER JOURNEY                                โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                                 โ”‚
โ”‚  1. Buyer browses skills on app or marketplace                  โ”‚
โ”‚  2. Buyer creates an order                                       โ”‚
โ”‚  3. Marketplace requests subaddress from Core Gateway           โ”‚
โ”‚  4. Core Gateway generates unique Monero address                โ”‚
โ”‚  5. Buyer sends Monero to the address                           โ”‚
โ”‚  6. Core Gateway detects payment (60s interval)                 โ”‚
โ”‚  7. Payment confirmed (1+ confirmations)                        โ”‚
โ”‚  8. Core Gateway sends webhook to Marketplace                   โ”‚
โ”‚  9. Marketplace updates order status to "completed"            โ”‚
โ”‚  10. Buyer and seller receive notifications                     โ”‚
โ”‚  11. Funds are available to seller                               โ”‚
โ”‚                                                                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿš€ Getting Started: From Zero to Live in 30 Minutes
Prerequisites

    โœ… A VPS (DigitalOcean, Hetzner, Contabo)

    โœ… A domain (optional, but recommended)

    โœ… Basic Linux command knowledge

    โœ… Monero wallet setup (testnet or mainnet)

Step 1: Server Setup
bash

# Install required packages
sudo apt update && sudo apt upgrade -y
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs postgresql nginx
sudo npm install -g pm2

Step 2: Clone and Configure
bash

# Clone repositories
git clone https://github.com/DanielIoni-creator/MyZubsterAPP.git
git clone https://github.com/DanielIoni-creator/MyZubster-Marketplace.git

# Configure environment variables for each
cd MyZubsterAPP && cp .env.example .env
cd ../MyZubster-Marketplace && cp .env.example .env

Step 3: Deploy with PM2
bash

pm2 start app.js --name core-gateway
pm2 start server.js --name marketplace
pm2 save
pm2 startup

Step 4: Configure Nginx & SSL
nginx

server {
    listen 80;
    server_name your-domain.com;

    location /api/ {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
    }

    location / {
        proxy_pass http://localhost:4000;
        proxy_set_header Host $host;
    }
}

bash

sudo certbot --nginx -d your-domain.com -d www.your-domain.com

๐Ÿ“ˆ Why Open Source?

MyZubster is 100% open source because we believe:

    Transparency builds trust โ€” Anyone can audit the code

    Community drives innovation โ€” Contributors make it better

    Freedom matters โ€” No vendor lock-in, no hidden fees

    Knowledge sharing โ€” Learn how Monero payments work under the hood

๐Ÿ”ฎ Future Roadmap
Feature Status  Description
โœ… Monero Gateway  Complete    Subaddress, monitoring, webhooks
โœ… Marketplace Complete    Skills, orders, users, reviews
โœ… Mobile App  Complete    Android, React Native
๐Ÿšง Fee System In Progress Customizable commissions
๐Ÿšง Admin Dashboard    In Progress Manage users, orders, skills
๐Ÿ“ Email Notifications    Planned Order confirmations, updates
๐Ÿ“ Docker Support Planned One-command deployment
๐Ÿ“ Multi-language Planned IT, EN, FR, ES
๐Ÿ“ Mainnet Ready  โœ… Done    Switch from testnet to mainnet
๐Ÿ“ Repositories

    MyZubsterAPP (Core Gateway) โ€” Monero RPC, subaddress, monitoring, webhooks

    MyZubster-Marketplace โ€” Skills marketplace with JWT, webhooks

    MyZubster-App โ€” Android mobile application

๐ŸŽฏ Who Is This For?

Entrepreneurs โ€” Launch your own skills marketplace without paying platform fees.

Developers โ€” Learn how to integrate Monero payments in Node.js.

Freelancers โ€” Sell your skills globally with borderless payments.

Open source enthusiasts โ€” Contribute to a growing ecosystem.

Privacy advocates โ€” Use Monero for private, censorship-resistant payments.
๐Ÿ’ญ Final Thoughts: Build, Earn, Own

MyZubster is more than a payment gateway. It's a complete ecosystem that empowers you to:

    ๐Ÿ  Build your own marketplace

    ๐Ÿ’ฐ Earn from every transaction

    ๐Ÿ”’ Own your data and your business

    ๐ŸŒ Connect globally with Monero

The code is open. The possibilities are endless. What will you build?
๐ŸŒŸ Support the Project

    โญ Star the repositories

    ๐Ÿ› Report bugs

    ๐Ÿ’ก Suggest features

    ๐Ÿง‘โ€๐Ÿ’ป Contribute code

    ๐Ÿ“ Write tutorials

    ๐Ÿ—ฃ๏ธ Share with your network

Ready to start your own marketplace? ๐Ÿš€

Built with โค๏ธ for the Monero and open source communities
Enter fullscreen mode Exit fullscreen mode

Top comments (0)