Open Robot Economy
An open source ROS 2 package that lets one robot pay another. Wallets, escrow, payment requests and condition-triggered payments, exposed as ordinary ROS 2 services, actions and topics, so a machine can hold up its end of a deal.
- Package
- robopay, ROS 2 services, actions and topics
- Primitives
- Wallets, payments, escrow, requests, triggers
- Networks
- Base Sepolia testnet and Base mainnet
- Licence
- MIT
The step that still needs a human
A robot can plan a route, drive it, dock and hand over a parcel with nobody watching. It cannot pay for the electricity it used on the way, or charge for the delivery it just made. That step still goes through a person, an account and a settlement delay.
robopay gives each robot a wallet of its own, and a way to pay that is triggered by the same things the rest of its stack already reacts to: a topic, a service response, a sensor reading.
Payments as ROS 2 nodes
The design constraint I set was that nothing should feel bolted on. A roboticist who already knows nodes, topics and callbacks should be able to add a payment to a stack without learning a payments SDK. So every capability is a standard ROS 2 service, action or topic, and the keys never leave a single node.
Each robot runs one payment node. It holds the encrypted key and does all the signing, so nothing else on the ROS graph ever sees it. Before anything is signed, it checks the spending caps the operator set, per payment and per time window, and every payment is written to disk before it is sent, so a crash or a dropped connection never pays twice. The triggers live in your own nodes, and they are the piece that makes this robotics rather than finance: money follows ordinary ROS 2 topics and services, when the world says the work happened.
Money that waits for both sides
Two machines that have never met do not trust each other, and there is no dispute desk to call. Escrow removes the need for that trust: the payer locks the funds up front, and they move only when both robots sign off on the same terms.
The failure case is the one that matters, and it is handled by construction. If the parcel is never scanned or the courier never signs, the deadline passes and the funds go back to the payer. The payer's node refunds its own expired escrows, and anyone else can trigger the refund too, since the money can only return to the payer. Nobody has to notice, chase or arbitrate. Every release and refund is a public transaction tied to the terms of the job, so an operator has an auditable record of what their fleet spent.
Why I think this matters
The library is the engineering. The reasoning behind it is an essay I wrote in September 2026.
Why software agents crossed this line first, why robots follow, and what an economy of such machines would mean for growth and for the cost of living.
Read the essay