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
- 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
๐ 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 -
- 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) โ โ
โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
- 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
-
Development Setup {#setup}
๐ฆ PrerequisitesNode.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
๐ณ 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
- 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
- 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 '.'
- 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()
})
- 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
- 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
- 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" } }
)
-
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.)
-
Contributing Guide {#contributing}
๐ค How to ContributeFork 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
๐ 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
- 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
}'
- 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
Dashboard
API
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)