# SIG-DRG 2026-09-17 — Session Notes

Participants:
  - Anuraj | UTC+0300
  - Spencer Norwick | UTC-7
  - shreeram
  - Andre Comeau | UTC-5

---

## 📖 The Reading
Not clearly identified in the discussion. This session was a hands-on planning/demo meeting for an upcoming robotics workshop ("symposium"), not a discussion of a written reading. It centered on Anuraj's demo of a payment-gated robot teleoperation gateway rather than a text.

## 🧭 Overview
This was a working session ahead of an upcoming robotics workshop/symposium in which participants will assemble a small "PiCar"-style robot and put it behind a crypto-payment gateway. Anuraj gave an extended screen-share walkthrough of his current build: an MCP server plus a browser teleoperation UI, a Cloudflare Worker payment service using testnet USDC, on-chain robot registration/attestation, and hashed time-based access tokens. The rest of the group (Spencer, Andre, shreeram) asked questions about hardware readiness, security/hackability, extending the gateway to other IoT devices, and adding a Stripe-based payment option.

## 💡 Key Points & Themes
- **Hardware readiness (mixed):**
  - **Spencer:** Waiting on a Raspberry Pi to arrive; had assumed the kit required a larger Pi and didn't realize it was compatible with the Pi Zero.
  - **Anuraj:** Confirmed the Pi Zero works for teleoperation but is too limited to run small ML models; larger Pis (e.g. with 2GB) allow more. Cost difference is small.
  - **Andre:** Robot is partly assembled and moves, but he ordered the wrong batteries. He has a 5A battery (enough to power on and move) but was missing the 10A+ battery needed to run the full feature tests (e.g. lights); testing cuts off, likely due to insufficient power. A higher-powered Pi may also draw more; he's waiting on replacement batteries and is unsure they'll arrive in time. He's in Canada, and Anuraj's kit link didn't work for him.
- **The gateway demo (Anuraj):**
  - Running the gateway opens two interfaces on the same server: an **MCP server** (so an agent can be talked to/control the robot) and a **browser-based teleoperation UI**, which can be publicly exposed via ngrok.
  - A single setting toggles payments on/off (payment enabled = 1 shows a paywall; = 0 lets you just drive it).
  - **Payment flow:** built on a Cloudflare Worker; operator sets price and lease duration via environment variables. Users connect a browser wallet (MetaMask or similar), sign a transaction to connect, and pay in **testnet USDC** on Base Sepolia. WalletConnect for mobile is possible but not yet implemented.
  - **On-chain trust model:** Robots are registered on-chain with the operator's wallet; Anuraj maintains an approved-wallet allowlist and an admin page to **attest** robots. Payments are only accepted for attested robots and only routed to the attested operator's wallet, all verified on-chain (and via IPFS for capabilities).
  - **Time-based access:** Current setting is ~1 USDC for 5 minutes, with the ability to release early. On payment, the Cloudflare Worker timestamps and signs a token; the gateway starts a clock from that timestamp. The token is a hash ("capability" token, similar in spirit to a JWT) so tampering with the time changes the hash — preventing users from faking the clock in-browser.
- **Extending to other devices (shreeram's interest):** shreeram asked whether household devices (he has a rootable, dead Roomba) could be placed behind the gateway. Anuraj said yes — the robot is essentially an ESP32-class device, and IoT devices can be put behind the gateway by writing a **plugin** (a protocol adapter + the MCP tools). Adapter type depends on the device's interface (HTTP endpoint → HTTP adapter; UDP → UDP adapter). He'd previously tried Home Assistant devices behind the gateway but hit issues and didn't pursue it.
- **Assembly/config detail (Anuraj):** There's a setup script that runs a series of tests and, because everyone mounts motors differently, walks you through identifying each wheel's rotation direction (e.g. "front right wheel, which direction?") and stores the result in a config file. This is installed as a **system service** on the Pi so it persists across reboots; the HTTP endpoints read the config to drive wheels in the correct direction. Anuraj runs the Pi headless via SSH.
- **Vibe-coding the plugin:** Anuraj mentioned building the PiCar plugin quickly (~15–18 minutes) by pointing his coding assistant at the SDK, the gateway, and templates/"little parts."

## 🔀 Questions & Disagreements
- **Spencer** repeatedly probed **security/"hackability"**: whether the vulnerable surface is the Cloudflare-managed layer, ngrok/gateway, or the browser — and how the rental clock is enforced. Anuraj's answer: the hashed, signed token makes browser-side time manipulation infeasible.
- **Spencer** asked how hard it would be to stand up a **Stripe layer** in front of the robot for people who don't want to deal with crypto and just want to pay in-browser. Anuraj said it should not be too difficult and could be added after the symposium; Stripe uses crypto rails behind the scenes (mentioned MPP and Stripe's own "Tempo" blockchain).
  - **Design tension raised by Anuraj:** Stripe is designed for *humans*, whereas the long-term goal is *robots interacting autonomously* with each other (via something like x402), where you don't want Stripe's friction. So the crypto/x402 approach is the intended direction; Stripe would be a convenience add-on for teleoperation, not the core.
- **shreeram** asked whether rooting a device (his Roomba) and putting it on the gateway network is feasible — answered affirmatively but not demonstrated.
- **Andre** raised a logistics question about whether the robotics group should use a **dedicated symposium channel** (like other groups) rather than the current thread, for discoverability. Anuraj agreed to create text + voice channels.
- Open uncertainties: whether Andre's replacement batteries arrive in time; whether more participants will join.

## 🔗 References Mentioned
- Raspberry Pi Zero vs. larger Pi models (2GB); ESP32 (the robot's onboard device class)
- MCP (Model Context Protocol) server / MCP tools
- ngrok (public tunneling for the teleoperation UI)
- Cloudflare Worker (payment service backend)
- MetaMask / browser wallets; WalletConnect (not yet implemented)
- Testnet USDC on Base Sepolia; sepolia.basescan / Sepolia faucet; IPFS (capability storage)
- JWT (as an analogy for the capability/access token)
- x402 (protocol for autonomous agent-to-agent payments)
- Stripe — its crypto rails, "MPP," and "Tempo" blockchain (as described by Anuraj)
- register.theacrobat.com (operator registration site) and a GitHub repo containing the PiCar code/drivers/setup scripts
- The FreeNove tutorial and its RealVNC-based remote-connect program (referenced by Andre)
- People/contributors: Rafa (Rafael) — running a larger Pi and has implemented Stripe on the marketplace; expected participants Spencer, Andre, Jenna, Giovanni

## ✅ Action Items & Next Time
- **Anuraj:** Send Andre (and others) the link to the wheel-direction setup script; create a dedicated **workshop text channel and voice channel** under the symposium rooms and tag attendees.
- **Anuraj:** Plans to publish the payment-service/gateway code to GitHub so others can run their own payment service; may reuse parts of Rafa's Stripe marketplace implementation later.
- **Spencer:** Continue setting up once his Raspberry Pi arrives.
- **Andre:** Awaiting replacement (10A+) batteries; unsure if they'll arrive before the workshop.
- **Group / workshop plan:** First one or two sessions will cover intro to the repos, robot assembly, wallet setup, and on-chain registration/attestation. Anuraj (and Rafa, from Berlin) will be on the call to help troubleshoot live. If the group is small and finishes quickly, they may try the **marketplace** and even open the assembled robots for other symposium participants to teleoperate (testnet payments). Reconvene at the workshop.

## ⭐ Memorable Quotes
- **Spencer:** "I don't know why this is where my mind goes. I'm just wondering, like, how hackable it is."
- **Anuraj:** "Stripe is made for humans. So we don't want that... what we want is robots interacting autonomously with themselves."
- **Andre:** "The robot moves, but I can't do all the fun stuff with it."
