ChromBot: an ESP32 AI companion with a Chromia account
What it is
ChromBot is an AI companion device built on the ESP32 and described in its site metadata as a voice assistant. The software around it is spread over four repos: a landing site, a companion web app, a Chromia contract, and a pre-order site that takes payment over x402.
The companion app
chrombot-privy is the app owners use to set up and manage the device. It is a Next.js progressive web app with push notifications and an offline page, translated into English, Korean and Chinese.
- Login and wallet. Users sign in with Privy. On first login the app registers a Chromia account for them.
- Bluetooth setup. The app finds the device over Web Bluetooth, scans for WiFi networks, sends credentials and checks that the device connected. Safari on iOS has no Web Bluetooth, so the app points iPhone users to the Bluefy browser.
- Binding. To bind a device to an account, the user enters the 6-digit PIN shown on the ChromBot's screen. Devices can be unbound later.
- Display setup. Owners search for cryptocurrencies by name or symbol and choose which ones the device tracks on its display.
- Interaction summary. A page shows the device's activity history and the summaries stored on-chain.
The contract
chrombot-contract is a Rell dapp on Chromia that uses the FT4 library for accounts and assets. Besides token operations (register, mint, burn, transfer), it stores device activity:
1entity interaction_summary {2 index device;3 key device, timestamp;4 timestamp: integer;5 device_actions: integer;6 llm_summary: text;7 period_days: integer = 7;8}
Each device row keeps running totals (interactions, voice conversations, success rate). Each summary adds a dated, model-written description of a period, seven days by default. Only a moderator key can write summaries, and only the admin key can change the moderator. A device can have many summaries, so the history only grows. A Jupyter notebook in the repo calls the device API and pushes the results on-chain.
Pre-orders over x402
chrombot-x402 is the product site. Pre-order tiers are HTTP routes behind x402-next payment middleware on Base, paid in USDC. The open tier asks for an email and Telegram handle and returns a confirmation, and later tiers return a "coming soon" notice. The routes are marked discoverable, so x402 clients can find and pay them without a custom checkout.
Stack
- Device: ESP32
- Apps: Next.js, Tailwind, antd-mobile, next-intl, Serwist (PWA)
- Auth: Privy with wagmi
- Chain: Chromia (Rell, FT4, postchain-client)
- Payments: x402 on Base with USDC
