<!DOCTYPE html>
<br> * { margin: 0; padding: 0; box-sizing: border-box; }<br> body {<br> font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;<br> background: #0a0a14;<br> color: #d0d0d0;<br> padding: 40px 20px;<br> line-height: 1.7;<br> }<br> .container {<br> max-width: 1100px;<br> margin: 0 auto;<br> background: #12121f;<br> padding: 50px;<br> border-radius: 24px;<br> border: 1px solid rgba(0,212,255,0.08);<br> box-shadow: 0 25px 60px rgba(0,0,0,0.8);<br> }<br> h1 {<br> font-size: 42px;<br> color: #00d4ff;<br> margin-bottom: 5px;<br> }<br> h1 small {<br> font-size: 16px;<br> font-weight: normal;<br> color: #666;<br> margin-left: 15px;<br> }<br> .subtitle {<br> color: #777;<br> font-size: 16px;<br> margin-bottom: 40px;<br> border-left: 4px solid #00d4ff;<br> padding-left: 18px;<br> }<br> h2 {<br> color: #00d4ff;<br> margin: 40px 0 18px 0;<br> font-size: 26px;<br> border-bottom: 1px solid rgba(255,255,255,0.04);<br> padding-bottom: 10px;<br> }<br> h3 {<br> color: #66ccff;<br> margin: 25px 0 12px 0;<br> font-size: 19px;<br> }<br> h4 {<br> color: #99ddee;<br> margin: 18px 0 8px 0;<br> font-size: 16px;<br> }<br> p { margin: 10px 0; color: #c0c0c0; }<br> code {<br> background: #1a1a2e;<br> padding: 2px 10px;<br> border-radius: 6px;<br> font-size: 13px;<br> color: #00d4ff;<br> font-family: 'Consolas', 'Courier New', monospace;<br> }<br> pre {<br> background: #0a0a18;<br> padding: 18px 22px;<br> border-radius: 14px;<br> overflow-x: auto;<br> font-size: 13.5px;<br> border-left: 4px solid #00d4ff;<br> margin: 15px 0;<br> font-family: 'Consolas', 'Courier New', monospace;<br> color: #d0d0d0;<br> }<br> .badge {<br> display: inline-block;<br> background: rgba(0,212,255,0.1);<br> padding: 3px 14px;<br> border-radius: 20px;<br> font-size: 12px;<br> color: #00d4ff;<br> margin: 2px 4px 2px 0;<br> }<br> .status-ok { color: #00ff88; font-weight: bold; }<br> .status-warn { color: #ffaa00; font-weight: bold; }<br> .status-err { color: #ff5555; font-weight: bold; }<br> .card {<br> background: rgba(255,255,255,0.03);<br> padding: 20px 24px;<br> border-radius: 14px;<br> border: 1px solid rgba(255,255,255,0.04);<br> margin: 15px 0;<br> }<br> .grid-2 {<br> display: grid;<br> grid-template-columns: 1fr 1fr;<br> gap: 20px;<br> }<br> .footer {<br> margin-top: 50px;<br> padding-top: 25px;<br> border-top: 1px solid rgba(255,255,255,0.05);<br> color: #555;<br> font-size: 14px;<br> text-align: center;<br> }<br> .footer a { color: #00d4ff; text-decoration: none; }<br> .footer a:hover { text-decoration: underline; }<br> .toc {<br> background: rgba(0,212,255,0.03);<br> padding: 20px 25px;<br> border-radius: 14px;<br> margin: 20px 0 30px 0;<br> border: 1px solid rgba(0,212,255,0.06);<br> }<br> .toc a { color: #66ccff; text-decoration: none; }<br> .toc a:hover { text-decoration: underline; }<br> .toc li { margin: 5px 0; list-style: none; }<br> .toc ul { padding-left: 20px; }<br> @media (max-width: 700px) {<br> .container { padding: 25px; }<br> h1 { font-size: 28px; }<br> .grid-2 { grid-template-columns: 1fr; }<br> }<br>
<h1>๐ MyZubster Gateway <small>Developer Guide</small></h1>
A Complete Technical Documentation for Tari + Monero Asset Tokenization
<br>
<span>v1.0</span>
<span>Tari</span>
<span>Monero</span>
<span>RWA</span>
<span>NFT</span>
<strong>๐ Table of Contents</strong>
<ul>
<li><a href="#overview">1. Project Overview</a></li>
<li><a href="#architecture">2. System Architecture</a></li>
<li><a href="#setup">3. Development Setup</a></li>
<li><a href="#api">4. API Reference</a></li>
<li><a href="#tokens">5. Token Management</a></li>
<li><a href="#bounty">6. Bounty System (Spiccioli)</a></li>
<li><a href="#docker">7. Docker Deployment</a></li>
<li><a href="#issues">8. Known Issues & TODOs</a></li>
<li><a href="#contributing">9. Contributing</a></li>
<li><a href="#links">10. Useful Links</a></li>
</ul>
<h2 id="overview">1. Project Overview</h2>
<p>
<strong>MyZubster Gateway</strong> is a complete infrastructure for <strong>tokenizing real-world assets</strong>
on the <strong>Tari blockchain</strong> (a Layer 2 solution built on <strong>Monero</strong>).
</p>
<h3>๐ฏ Core Features</h3>
<ul>
<li>โ
<strong>Asset Tokenization</strong> โ Create and manage tokens representing real-world assets</li>
<li>โ
<strong>Privacy First</strong> โ All transactions inherit Monero's privacy features</li>
<li>โ
<strong>Spiccioli Bounty System</strong> โ Automated micro-bounties paid in Monero (XMR)</li>
<li>โ
<strong>RWA Support</strong> โ Real Estate, Art, Commodities, and more</li>
<li>โ
<strong>Docker Native</strong> โ Easy deployment with Docker Compose</li>
<li>โ
<strong>GitHub Automation</strong> โ Fully automated bounty workflow</li>
</ul>
<h3>๐ Current Status</h3>
<table>
<tbody><tr>
<td><code>Gateway</code></td>
<td><span>โ
Running</span></td>
<td>Port <code>3001</code> (Docker container)</td>
</tr>
<tr>
<td><code>Dashboard</code></td>
<td><span>โ
Running</span></td>
<td>Port <code>8080</code> (Node.js proxy)</td>
</tr>
<tr>
<td><code>MongoDB</code></td>
<td><span>โ
Running</span></td>
<td>Port <code>27018</code> (Docker container)</td>
</tr>
<tr>
<td><code>nginx</code></td>
<td><span>โ ๏ธ Partial</span></td>
<td>Port <code>80</code> โ Rate limiting active</td>
</tr>
<tr>
<td><code>MRE Token</code></td>
<td><span>โ
Active</span></td>
<td>1,000,000 MRE ยท โฌ1,000,000</td>
</tr>
</tbody></table>
<h2 id="architecture">2. System Architecture</h2>
<pre>โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ MyZubster Gateway โ
โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโ โ
โ โ MONERO โโโโโโโโ TARI โโโโโโโโ TOKENIZED โ โ
โ โ (Privacy) โ โ (Layer 2) โ โ ASSETS (MRE) โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ โ
โ โผ โผ โผ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโ โ
โ โ SPICCIOLI โโโโโโโโ MyZubster โโโโโโโโ INVESTORS โ โ
โ โ (Bounty) โ โ Gateway (API) โ โ (MRE Holders) โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโ โ
โ โ โ โ โ
โ โผ โผ โผ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโ โ
โ โ DEVELOPERS โ โ DASHBOARD (UI) โ โ MONGODB โ โ
โ โ (Contributors) โ (Node.js Proxy) โ โ (Database) โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
<h3>๐ง Technology Stack</h3>
<ul>
<li><strong>Blockchain:</strong> Tari (Layer 2) ยท Monero (Privacy Layer)</li>
<li><strong>Backend:</strong> Node.js ยท Express.js ยท Docker</li>
<li><strong>Database:</strong> MongoDB</li>
<li><strong>Frontend:</strong> HTML5 ยท CSS3 ยท Vanilla JS</li>
<li><strong>Infrastructure:</strong> nginx ยท Cloudflare Tunnel</li>
<li><strong>CI/CD:</strong> GitHub Actions</li>
<li><strong>Languages:</strong> JavaScript ยท YAML ยท Shell</li>
</ul>
<h2 id="setup">3. Development Setup</h2>
<h3>๐ฆ Prerequisites</h3>
<ul>
<li>Node.js (v20+)</li>
<li>Docker & Docker Compose</li>
<li>MongoDB</li>
<li>nginx</li>
<li>Git</li>
</ul>
<h3>๐ Quick Start</h3>
<pre># 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
<h3>๐ณ Docker Services</h3>
<pre># 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
<h2 id="api">4. API Reference</h2>
<p>Base URL: <code>http://localhost:3001/api/</code> (Gateway) or <code>http://localhost:8080/api/</code> (Proxy)</p>
<h3>๐ก Endpoints</h3>
<h4>GET /api/tokens</h4>
<p>List all tokens</p>
<pre>curl -s http://localhost:3001/api/tokens | jq '.[] | {_id, name, symbol}'
</pre>
<h4>GET /api/tokens/:id</h4>
<p>Get token details by ID</p>
<pre>curl -s http://localhost:3001/api/tokens/6a5fd5ac6a0e1edf13e20a2b | jq '.'
</pre>
<h4>GET /api/health</h4>
<p>Health check endpoint</p>
<pre>curl -s http://localhost:3001/api/health | jq '.'
</pre>
<h4>POST /api/tokens</h4>
<p>Create a new token</p>
<pre>curl -X POST -H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Milano Real Estate",
"symbol": "MRE",
"totalSupply": 1000000,
"assetValue": 1000000,
"assetType": "realestate",
"assetLocation": "Milano, Italia"
}' \
http://localhost:3001/api/tokens
<h2 id="tokens">5. Token Management</h2>
<h3>๐ฆ MRE Token (Milano Real Estate)</h3>
<pre>{
"_id": "6a5fd5ac6a0e1edf13e20a2b",
"name": "Milano Real Estate",
"symbol": "MRE",
"totalSupply": 1000000,
"assetValue": 1000000,
"tokenPrice": 1,
"contractAddress": "0x1d6acafee39ac",
"blockchain": "tari",
"assetType": "realestate",
"assetDescription": "Token che rappresenta un immobile a Milano",
"assetLocation": "Milano, Italia",
"issuer": "6a5f742332b226d34448d39c",
"status": "active",
"createdAt": "2026-07-21T20:25:16.042Z"
}
<h3>๐ Token Operations</h3>
<h4>Get token details</h4>
<pre>curl -s http://localhost:3001/api/tokens/6a5fd5ac6a0e1edf13e20a2b | jq '.'
</pre>
<h4>Get token balance (โ ๏ธ NOT YET IMPLEMENTED)</h4>
<pre># This endpoint is currently not available
curl -s http://localhost:3001/api/tokens/balance?id=6a5fd5ac6a0e1edf13e20a2b
Returns: {"error":"Errore nel recupero del token"}
</pre>
<h2 id="bounty">6. Bounty System โ "Spiccioli"</h2>
<p>
<strong>Spiccioli</strong> (Italian for "small change") is an automated micro-bounty system
that pays contributors in <strong>Monero (XMR)</strong> for completing tasks.
</p>
<h3>๐ File Structure</h3>
<pre>.github/
โโโ ISSUE_TEMPLATE/
โ โโโ spicciolo-issue.yml # Issue template for bounties
โโโ workflows/
โโโ bounty.yml # GitHub Actions automation
<h3>๐ฐ Bounty Map</h3>
<table>
<tbody><tr>
<th style="text-align: left">Label</th>
<th style="text-align: left">Bounty (XMR)</th>
<th style="text-align: left">Approx (USD)</th>
</tr>
<tr>
<td><code>good-first-issue</code></td>
<td>0.01 XMR</td>
<td>~$25</td>
</tr>
<tr>
<td><code>documentation</code></td>
<td>0.02 XMR</td>
<td>~$50</td>
</tr>
<tr>
<td><code>bug</code></td>
<td>0.05 XMR</td>
<td>~$125</td>
</tr>
<tr>
<td><code>feature</code></td>
<td>0.10 XMR</td>
<td>~$250</td>
</tr>
<tr>
<td><code>security</code></td>
<td>0.20 XMR</td>
<td>~$500</td>
</tr>
</tbody></table>
<h3>๐ How It Works</h3>
<pre>1. 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
7. Docker Deployment
๐ณ Current Containers
# Gateway container
docker ps | grep myzubster-gateway
CONTAINER ID IMAGE COMMAND PORTS
33d57d429224 7f73dbfd80b6 "docker-entrypoint.sโฆ" 0.0.0.0:3001->3000/tcp
MongoDB container
docker ps | grep myzubster-mongodb
ef68f6afcda3 mongo:7-jammy "docker-entrypoint.sโฆ" 0.0.0.0:27018->27017/tcp
<h3>๐ง Useful Docker Commands</h3>
<pre># View logs
docker logs myzubster-gateway --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
<h2 id="issues">8. Known Issues & TODOs</h2>
<h3>โ ๏ธ Current Issues</h3>
<ul>
<li><span>โ ๏ธ</span> <strong>Token Balance API</strong> โ The endpoint <code>/api/tokens/balance</code> is not implemented. Workaround: use MongoDB directly.</li>
<li><span>โ ๏ธ</span> <strong>nginx Configuration</strong> โ nginx is configured but serving the default page, not proxying to the gateway.</li>
<li><span>โ ๏ธ</span> <strong>Rate Limiting</strong> โ nginx has a rate limit zone enabled on <code>myzubster.com</code>.</li>
<li><span>โ ๏ธ</span> <strong>SSH Key</strong> โ GitHub push fails due to missing SSH passphrase.</li>
</ul>
<h3>๐ง TODOs</h3>
<ul>
<li>โ
Dashboard UI created and working on port 8080</li>
<li>โฌ Fix nginx configuration to serve the dashboard properly</li>
<li>โฌ Implement <code>/api/tokens/balance</code> endpoint</li>
<li>โฌ Add wallet integration for XMR payments</li>
<li>โฌ Create mobile-responsive UI</li>
<li>โฌ Add authentication (JWT, OAuth)</li>
<li>โฌ Implement token transfer functionality</li>
<li>โฌ Add more asset types (Art, Commodities, etc.)</li>
</ul>
<h2 id="contributing">9. Contributing</h2>
<h3>๐ค How to Contribute</h3>
<ol>
<li><strong>Fork</strong> the repository</li>
<li><strong>Claim</strong> an issue with the <span>bounty</span> label</li>
<li><strong>Work</strong> on the task and submit a Pull Request</li>
<li><strong>Earn</strong> Monero (XMR) when your PR is merged</li>
</ol>
<h3>๐ Code Style</h3>
<ul>
<li>JavaScript: ES6+ with async/await</li>
<li>Follow the existing code structure</li>
<li>Write meaningful commit messages</li>
<li>Include tests if possible</li>
</ul>
<h3>๐ Security</h3>
<ul>
<li>Never expose API keys or secrets</li>
<li>Use environment variables for configuration</li>
<li>All sensitive data should be encrypted</li>
<li>Follow the privacy guidelines in <code>PRIVACY.md</code></li>
</ul>
<h2 id="links">10. Useful Links</h2>
<ul>
<li>๐ <strong>Dashboard:</strong> <a href="http://localhost:8080">http://localhost:8080</a></li>
<li>๐ก <strong>API Gateway:</strong> <a href="http://localhost:3001">http://localhost:3001</a></li>
<li>โค๏ธ <strong>Health Check:</strong> <a href="http://localhost:3001/api/health">http://localhost:3001/api/health</a></li>
<li>๐ฆ <strong>Tokens List:</strong> <a href="http://localhost:3001/api/tokens">http://localhost:3001/api/tokens</a></li>
<li>๐ <strong>GitHub Repository:</strong> <a href="https://github.com">https://github.com</a></li>
<li>๐ <strong>Tari Blockchain:</strong> <a href="https://tari.com">https://tari.com</a></li>
<li>๐ <strong>Monero Project:</strong> <a href="https://getmonero.org">https://getmonero.org</a></li>
</ul>
<p>
Built with โค๏ธ on <strong>Tari</strong> ยท Powered by <strong>Monero</strong>
</p>
<p>
MyZubsterGateway v1.0 ยท 2026
</p>
๐ฏ How to Use This Guide
Save it as a file:
bash
cat > /root/my-monero-bounty/guide.html << 'EOF'
[PASTE THE CODE ABOVE HERE]
EOF
Open it in your browser:
bash
http://localhost:8080/guide.html
Or open the file directly:
bash
firefox /root/my-monero-bounty/guide.html
๐ Guide Features
Section Description
Project Overview What MyZubster Gateway does
System Architecture Visual diagram of the entire system
Development Setup How to get started
API Reference All endpoints with examples
Token Management MRE token details and operations
Bounty System "Spiccioli" documentation
Docker Deployment Container management
Known Issues Current problems and TODOs
Contributing How to contribute and earn XMR
Useful Links Quick access to all services
The guide is now ready for developers! ๐๐
Top comments (0)