DEV Community

Daniel Ioni
Daniel Ioni

Posted on

๐Ÿ“˜ MyZubster Gateway - Developer Guide Complete Technical Documentation for Tari + Monero Asset Tokenization

Complete Technical Documentation for Tari + Monero Asset Tokenization
๐Ÿ“š Table of Contents

Project Overview

System Architecture

Technology Stack

Development Setup

Project Structure

API Reference

Token Management

Bounty System - "Spiccioli"

Docker Deployment

Database Management

Known Issues & TODOs

Contributing Guide

Useful Commands

Useful Links
Enter fullscreen mode Exit fullscreen mode
  1. Project Overview {#overview}

MyZubster Gateway is a complete infrastructure for tokenizing real-world assets on the Tari blockchain (a Layer 2 solution built on Monero).
๐ŸŽฏ Core Features

Asset Tokenization โ€” Create and manage tokens representing real-world assets

Privacy First โ€” All transactions inherit Monero's privacy features

Spiccioli Bounty System โ€” Automated micro-bounties paid in Monero (XMR)

RWA Support โ€” Real Estate, Art, Commodities, and more

Docker Native โ€” Easy deployment with Docker Compose

GitHub Automation โ€” Fully automated bounty workflow
Enter fullscreen mode Exit fullscreen mode

๐Ÿ“Š Current Status
Component Status Port
Gateway API โœ… Running 3001
Dashboard UI โœ… Running 8080
MongoDB โœ… Running 27018
nginx โš ๏ธ Partial 80
MRE Token โœ… Active -
SRE Token โœ… Active -

  1. System Architecture {#architecture} text

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ MyZubster Gateway โ”‚
โ”‚ โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚ MONERO โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”‚ TARI โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”‚ TOKENIZED โ”‚ โ”‚
โ”‚ โ”‚ (Privacy) โ”‚ โ”‚ (Layer 2) โ”‚ โ”‚ ASSETS โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚ โ”‚ โ”‚ โ”‚ โ”‚
โ”‚ โ–ผ โ–ผ โ–ผ โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚ SPICCIOLI โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”‚ MyZubster โ”‚โ”€โ”€โ”€โ”€โ”€โ”€โ”‚ INVESTORS โ”‚ โ”‚
โ”‚ โ”‚ (Bounty) โ”‚ โ”‚ Gateway (API) โ”‚ โ”‚ (Token Holders)โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚ โ”‚ โ”‚ โ”‚ โ”‚
โ”‚ โ–ผ โ–ผ โ–ผ โ”‚
โ”‚ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚ โ”‚ DEVELOPERS โ”‚ โ”‚ DASHBOARD (UI) โ”‚ โ”‚ MONGODB โ”‚ โ”‚
โ”‚ โ”‚ (Contributors) โ”‚ (Node.js Proxy) โ”‚ โ”‚ (Database) โ”‚ โ”‚
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚ โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

  1. Technology Stack {#stack} Layer Technology Blockchain Tari (Layer 2) ยท Monero (Privacy Layer) Backend Node.js ยท Express.js Database MongoDB Frontend HTML5 ยท CSS3 ยท Vanilla JS Infrastructure Docker ยท nginx ยท Cloudflare Tunnel CI/CD GitHub Actions Languages JavaScript ยท YAML ยท Shell
  2. Development Setup {#setup}
    ๐Ÿ“ฆ Prerequisites

    Node.js (v20+)

    Docker & Docker Compose

    MongoDB

    nginx

    Git

๐Ÿš€ Quick Start
bash

1. Clone the repository

git clone https://github.com/yourusername/my-monero-bounty.git
cd my-monero-bounty

2. Start Docker containers

docker-compose up -d

3. Install dependencies

npm install

4. Start the dashboard server

node simple-server.js &

5. Access the dashboard

open http://localhost:8080

๐Ÿณ Docker Services
bash

Gateway container

docker run -d --name myzubster-gateway -p 3001:3000 myzubstergateway-gateway

MongoDB container

docker run -d --name myzubster-mongodb -p 27018:27017 mongo:7-jammy

Check status

docker ps

  1. Project Structure {#structure} text

my-monero-bounty/
โ”œโ”€โ”€ .github/
โ”‚ โ”œโ”€โ”€ ISSUE_TEMPLATE/
โ”‚ โ”‚ โ””โ”€โ”€ spicciolo-issue.yml # Bounty issue template
โ”‚ โ””โ”€โ”€ workflows/
โ”‚ โ””โ”€โ”€ bounty.yml # GitHub Actions automation
โ”œโ”€โ”€ static/
โ”‚ โ””โ”€โ”€ index.html # Dashboard UI
โ”œโ”€โ”€ simple-server.js # Proxy server for dashboard
โ”œโ”€โ”€ server.js # Main gateway (in Docker)
โ”œโ”€โ”€ FUNDING.md # Funding documentation
โ”œโ”€โ”€ PRIVACY.md # Privacy policy
โ”œโ”€โ”€ CONTRIBUTING.md # Contributing guidelines
โ””โ”€โ”€ README.md # Project overview

  1. API Reference {#api}

Base URL: http://localhost:3001/api/ (Gateway) or http://localhost:8080/api/ (Proxy)
๐Ÿ“ก Endpoints
GET /api/tokens

List all tokens
bash

curl -s http://localhost:3001/api/tokens | jq '.[] | {_id, name, symbol}'

GET /api/tokens/:id

Get token details by ID
bash

curl -s http://localhost:3001/api/tokens/6a5fd5ac6a0e1edf13e20a2b | jq '.'

GET /api/health

Health check endpoint
bash

curl -s http://localhost:3001/api/health | jq '.'

POST /api/tokens

Create a new token
bash

curl -X POST http://localhost:3001/api/tokens \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Singapore Real Estate",
"symbol": "SRE",
"totalSupply": 2000000,
"assetValue": 2000000,
"tokenPrice": 1,
"assetType": "realestate",
"assetLocation": "Singapore, Asia"
}' | jq '.'

  1. Token Management {#tokens} ๐Ÿ“ฆ Current Tokens Token Symbol Value Supply Location Milano Real Estate MRE โ‚ฌ1,000,000 1,000,000 Milano, Italy Singapore Real Estate SRE โ‚ฌ2,000,000 2,000,000 Singapore, Asia ๐Ÿ” Token Operations

Get token details:
bash

curl -s http://localhost:3001/api/tokens/6a5fd5ac6a0e1edf13e20a2b | jq '.'

Create token via MongoDB:
bash

docker exec -it myzubster-mongodb mongosh -u admin -p '5Tz1FIrvGyoKfOT5Z1pe' --authenticationDatabase admin
use myzubster
db.tokens.insertOne({
name: "Singapore Real Estate",
symbol: "SRE",
totalSupply: 2000000,
assetValue: 2000000,
tokenPrice: 1,
contractAddress: "0x2e7bdaef39ac",
blockchain: "tari",
assetType: "realestate",
assetDescription: "Token che rappresenta un immobile a Singapore",
assetLocation: "Singapore, Asia",
issuer: "6a5f742332b226d34448d39c",
status: "active",
createdAt: new Date(),
updatedAt: new Date()
})

  1. Bounty System โ€” "Spiccioli" {#bounty}

Spiccioli (Italian for "small change") is an automated micro-bounty system that pays contributors in Monero (XMR).
๐Ÿ“‚ File Structure
text

.github/
โ”œโ”€โ”€ ISSUE_TEMPLATE/
โ”‚ โ””โ”€โ”€ spicciolo-issue.yml # Issue template for bounties
โ””โ”€โ”€ workflows/
โ””โ”€โ”€ bounty.yml # GitHub Actions automation

๐Ÿ’ฐ Bounty Map
Label Bounty (XMR) Approx (USD)
good-first-issue 0.01 XMR ~$25
documentation 0.02 XMR ~$50
bug 0.05 XMR ~$125
feature 0.10 XMR ~$250
security 0.20 XMR ~$500
๐Ÿ”„ How It Works

User opens an issue using the "Spicciolo" template

Label is applied (e.g., "bug", "feature")

GitHub Action automatically adds a comment with the bounty amount

Developer claims: "I'll take this!"

Developer completes the task and submits a PR

After review and merge, the developer receives XMR payment
Enter fullscreen mode Exit fullscreen mode
  1. Docker Deployment {#docker} ๐Ÿณ Current Containers bash

docker ps

Container Image Ports Status
myzubster-gateway 7f73dbfd80b6 3001:3000 Up (healthy)
myzubster-mongodb mongo:7-jammy 27018:27017 Up (healthy)
๐Ÿ”ง Useful Docker Commands
bash

View logs

docker logs myzubster-gateway --tail 50
docker logs myzubster-mongodb --tail 50

Restart containers

docker restart myzubster-gateway myzubster-mongodb

Stop containers

docker stop myzubster-gateway myzubster-mongodb

Access container shell

docker exec -it myzubster-gateway /bin/bash
docker exec -it myzubster-mongodb /bin/bash

Inspect container

docker inspect myzubster-gateway
docker inspect myzubster-mongodb

  1. Database Management {#database} ๐Ÿ”‘ MongoDB Credentials Variable Value Username admin Password 5Tz1FIrvGyoKfOT5Z1pe Database myzubster Host localhost Port 27018 ๐Ÿ“Š Connect to MongoDB bash

docker exec -it myzubster-mongodb mongosh -u admin -p '5Tz1FIrvGyoKfOT5Z1pe' --authenticationDatabase admin

๐Ÿ“ Common MongoDB Commands
javascript

// Show databases
show dbs

// Use database
use myzubster

// Show collections
show collections

// Find all tokens
db.tokens.find().pretty()

// Find specific token
db.tokens.find({ symbol: "SRE" }).pretty()

// Count tokens
db.tokens.count()

// Insert token
db.tokens.insertOne({
name: "Token Name",
symbol: "TKN",
totalSupply: 1000000,
// ...
})

// Delete token
db.tokens.deleteOne({ symbol: "SRE" })

// Update token
db.tokens.updateOne(
{ symbol: "SRE" },
{ $set: { status: "inactive" } }
)

  1. Known Issues & TODOs {#issues}
    โš ๏ธ Current Issues
    Issue Status Workaround
    Token Balance API not implemented ๐Ÿ”ด High Use MongoDB directly
    nginx configuration incomplete ๐ŸŸก Medium Use port 8080 directly
    Rate limiting active on myzubster.com ๐ŸŸก Medium Use localhost
    GitHub SSH key missing passphrase ๐ŸŸก Medium Re-add SSH key
    /api/tokens returns empty with auth ๐Ÿ”ด High Use MongoDB
    ๐Ÿ”ง TODOs

    โ˜‘

    Dashboard UI created and working on port 8080
    โ˜‘

    MRE token created and active
    โ˜‘

    SRE token created and active
    โ˜‘

    Spiccioli bounty system configured
    โ–ก

    Fix nginx configuration
    โ–ก

    Implement /api/tokens/balance endpoint
    โ–ก

    Add wallet integration for XMR payments
    โ–ก

    Create mobile-responsive UI
    โ–ก

    Add authentication (JWT, OAuth)
    โ–ก

    Implement token transfer functionality
    โ–ก

    Add more asset types (Art, Commodities, etc.)

  2. Contributing Guide {#contributing}
    ๐Ÿค How to Contribute

    Fork the repository

    Claim an issue with the ๐Ÿช™ bounty label

    Work on the task and submit a Pull Request

    Earn Monero (XMR) when your PR is merged

๐Ÿ“ Code Style

JavaScript: ES6+ with async/await

Follow the existing code structure

Write meaningful commit messages

Include tests if possible
Enter fullscreen mode Exit fullscreen mode

๐Ÿ”’ Security

Never expose API keys or secrets

Use environment variables for configuration

All sensitive data should be encrypted

Follow the privacy guidelines in PRIVACY.md
Enter fullscreen mode Exit fullscreen mode
  1. Useful Commands {#commands} ๐Ÿ” Quick Commands bash

Check all services

docker ps
ss -tlnp | grep -E "80|3001|8080|27018"

Test dashboard

curl -I http://localhost:8080

Test API

curl -s http://localhost:3001/api/health
curl -s http://localhost:3001/api/tokens

Test proxy

curl -s http://localhost:8080/api/tokens

View logs

sudo journalctl -u nginx -f
docker logs myzubster-gateway --tail 50
docker logs myzubster-mongodb --tail 50

Restart services

sudo systemctl restart nginx
docker restart myzubster-gateway myzubster-mongodb
pkill -f simple-server.js && node simple-server.js &

๐Ÿ› ๏ธ Development Commands
bash

Start dashboard

cd /root/my-monero-bounty
node simple-server.js &

Enter MongoDB

docker exec -it myzubster-mongodb mongosh -u admin -p '5Tz1FIrvGyoKfOT5Z1pe' --authenticationDatabase admin

View tokens in MongoDB

use myzubster
db.tokens.find().pretty()

Create token via API (if working)

curl -X POST http://localhost:3001/api/tokens \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "New Token",
"symbol": "NTK",
"totalSupply": 1000000,
"assetValue": 1000000
}'

  1. Useful Links {#links} Resource URL Dashboard http://localhost:8080 API Gateway http://localhost:3001 Health Check http://localhost:3001/api/health Tokens List http://localhost:3001/api/tokens MongoDB mongodb://localhost:27018 GitHub https://github.com Tari https://tari.com Monero https://getmonero.org ๐Ÿ“Œ Quick Reference Card bash

Connect to server

ssh root@188.213.161.186

Dashboard

http://localhost:8080

API

http://localhost:3001

MongoDB Credentials

Username: admin
Password: 5Tz1FIrvGyoKfOT5Z1pe
Database: myzubster

Docker

docker ps
docker logs myzubster-gateway --tail 50
docker restart myzubster-gateway myzubster-mongodb

Proxy Server

cd /root/my-monero-bounty
node simple-server.js &

Happy coding! ๐Ÿš€

Built with โค๏ธ on Tari ยท Powered by Monero

Top comments (0)