DEV Community

Daniel Ioni
Daniel Ioni

Posted on

πŸ€– Decentralized Robot2 Gateway – Automatic Payments in MYZ and XMR with 24/7 Escrow

πŸ€– Decentralized Robot Gateway – Automatic Payments in MYZ and XMR with 24/7 Escrow

Author: Daniel Ioni
Project: MyZubster Gateway
Technologies: Node.js, Express, MongoDB, Monero RPC, Tari Wallet, Mongoose
Introduction

Imagine a world where robots work for you 24/7 and get paid automatically in cryptocurrency upon job completion. No human intervention, no trust required, no waiting.

This is exactly what I built with MyZubster Gateway: a decentralized payment infrastructure that allows robots (physical or software) to receive automatic payments in $MYZ (Tari token) or XMR (Monero) upon job completion, with a 2-of-3 escrow system and auto-release without requiring human arbitrators.
Architecture Overview

The gateway is a Node.js/Express application exposing REST APIs for:

Bounty Management (create, assign, complete)

Staking & Reputation (lock MYZ to earn trust levels)

Real Estate Escrow (property purchase with deposit)

Reward History (transparent tracking of every payment)

Robot Escrow (automatic payment after delivery, with dispute window)

Robot Brain (decision logic for robots: accept job, execute, deliver)
Enter fullscreen mode Exit fullscreen mode

The core of the system is the escrow_robot.js module, which manages the entire job lifecycle:

Client locks funds (MYZ or XMR) in escrow.

Robot accepts the job with a time limit to deliver.

Robot delivers β†’ client has 48 hours to dispute.

No dispute β†’ funds automatically released: 98% to robot, 2% as platform fee.

Dispute β†’ human arbitrator or DAO vote.
Enter fullscreen mode Exit fullscreen mode

Everything is programmable, scalable, and transparent.
Technology Stack
Component Technology
Backend Node.js + Express
Database MongoDB (Mongoose ODM)
$MYZ Token Smart contract on Tari (Rust)
Monero monero-wallet-rpc
Notifications Webhook / Telegram (stub)
Deployment Local on port 3001, ready for Netlify/Heroku
API Overview

  1. Bounty http

POST /api/bounty/create
POST /api/bounty/assign
POST /api/bounty/complete
GET /api/bounty/list

  1. Staking & Reputation http

POST /api/stake/stake
GET /api/stake/level/:userId
GET /api/stake/active

  1. Real Estate Escrow http

POST /api/escrow/house/create
POST /api/escrow/house/lock
POST /api/escrow/house/proof
POST /api/escrow/house/release
POST /api/escrow/house/refund
GET /api/escrow/house/:id

  1. Reward History http

GET /api/rewards?userId=xxx
POST /api/rewards/trigger

  1. Robot Escrow http

POST /api/robot/escrow/create
POST /api/robot/escrow/deliver
POST /api/robot/escrow/dispute
GET /api/robot/escrow/:jobId

  1. Robot Brain http

POST /api/robot/create
POST /api/robot/assign
POST /api/robot/execute
POST /api/robot/deliver
POST /api/robot/dispute
GET /api/robot/status/:robotId

Complete Robot Workflow (Example)

  1. Client creates a job and locks 100 MYZ in escrow: bash

curl -X POST /api/robot/escrow/create -d '{"jobId":"job-001", "clientId":"client1", "robotId":"robot1", "amount":100, "currency":"MYZ"}'

  1. Robot is created and assigned the job: bash

curl -X POST /api/robot/assign -d '{"robotId":"robot1", "jobId":"job-001", "clientId":"client1", "amount":100, "currency":"MYZ"}'

  1. Robot executes the job (simulated with setTimeout, but could call external APIs in production): bash

curl -X POST /api/robot/execute -d '{"robotId":"robot1"}'

  1. Robot delivers, and escrow starts a 48-hour dispute window: bash

curl -X POST /api/robot/deliver -d '{"robotId":"robot1"}'

  1. No dispute β†’ after 48 hours, the system automatically releases 98 MYZ to the robot and 2 MYZ to the platform.

  2. If the client disputes, a dispute is opened and handled by a human arbitrator or DAO vote.
    Why This Is Revolutionary

    Full Automation: robots don't wait for payments – they get paid automatically.

    Multi‑Currency: native support for $MYZ (Tari token) and XMR (Monero), with extensibility to other cryptocurrencies.

    Transparency: every transaction is recorded both on-chain and in the database.

    Security: escrow protects both client and robot.

    Scalability: stateless system capable of handling thousands of robots in parallel.

Bounty Program – 1,060 $MYZ Available!

We have 10 open bounty issues for developers who want to contribute:
ID Bounty Reward

234 Dashboard Rewards (Frontend) 80 MYZ

235 Robot Dashboard (Frontend) 100 MYZ

236 GitHub Webhook for rewards 120 MYZ

237 Tari Wallet integration (MYZ) 150 MYZ

238 Monero Wallet integration (XMR) 150 MYZ

239 Real notifications system 100 MYZ

240 OpenAPI documentation 80 MYZ

241 Jest automated tests 120 MYZ

242 Docker Compose setup 60 MYZ

243 Telegram bot for monitoring 100 MYZ

πŸ‘‰ View all bounties
Next Steps

Integration with Tari Testnet / Mainnet for real transactions.

Web Dashboard to monitor robots, jobs, and payments.

Reputation System based on job history.

Support for additional cryptocurrencies (BTC, ETH, USDC).
Enter fullscreen mode Exit fullscreen mode

How to Contribute

The code is open source on GitHub:
https://github.com/MyZubster-Ecosystem/MyZubsterGateway

Open issues are available at:
https://github.com/MyZubster-Ecosystem/MyZubsterGateway/issues

We're looking for developers for:

Frontend (React/Next.js)

Tari Wallet integration

Dispute system improvements

Automated testing
Enter fullscreen mode Exit fullscreen mode

Conclusion

This gateway is the first step toward a decentralized robot economy, where robots can work and earn autonomously without intermediaries. With automatic escrow and multi-currency support, we're building the foundation for the future of work.

Are you a robot? Soon you'll be able to register and start earning.
Are you human? You can assign your tasks to 24/7 robots.

Join the project, contribute, or use it for your robots. The future is decentralized. πŸ€–
Useful Links

Gateway Repository

Bounty Issues

$MYZ Token on Tari

Robot Module
Enter fullscreen mode Exit fullscreen mode

Thanks for reading! If you have questions, ideas, or suggestions, leave a comment below or open an issue on GitHub.

Top comments (0)