Robot ID Tech is open, neutral infrastructure that gives every robot a permanent, programmable identity on Ethereum — the way ENS is infrastructure for human-readable names. Integrate once via a single API key and keep full control of your product and brand.
Serial numbers live in a manufacturer’s private database. The moment a robot is resold, re-deployed, or audited, that identity is unverifiable to anyone else. robot-id.eth makes a robot’s identity public infrastructure: neutral, permanent, and provable by anyone — without any single company owning the registry.
Issue a verifiable identity, capability record, and firmware policy per unit. One integration covers your entire catalog and every robot you’ve ever made.
On-chain spend limits and an immutable intent log mean a robot can act autonomously without ever exceeding the mandate you set.
Check a robot’s certified payload, operating zone, or human-interaction rating against an on-chain Merkle root — independently of the manufacturer.
robot-id.eth is the protocol layer beneath every OEM’s own product. You keep your UX, your brand, and your customer relationship — the protocol handles identity, settlement, and verification underneath.
Narrow by design. No battery passports, charging registries, V2G, or carbon credits — just what a robot needs to be a first-class, verifiable on-chain citizen.
A permanent, programmable NFT identity per unit — ERC-721 with optional ERC-5192 soulbound lock and ERC-2981 royalties. The serial is stored as a privacy-preserving keccak256 hash, yet stays independently verifiable. Each unit resolves to SN-X.mfr.robot-id.eth and always points to its current owner.
On-chain authorization and an immutable audit log for every AI-agent or voice command. The ROS2-bridge adapter maps natural-language intents to ROS2 action goals, checks them against the robot’s spend rules, and records each as executed or rejected — with the reason. Alexa, Google Assistant, and custom-LLM adapters ship too.
An ERC-4337 smart-account wallet per robot. The owner sets rules once — per-action ceiling, daily cap, approved-vendor allowlist, hard per-tx maximum — and the contract enforces them forever. A robot can pay a charging dock or vendor autonomously, but never exceed its mandate.
OEM-signed, append-only records of what a robot is authorized to do: max_payload_kg, operating_zone, max_speed_mps, human_interaction_certified. Full certificates live on IPFS, anchored on-chain by a Merkle root. Any insurer, regulator, or buyer can verify a claim against the latest root without trusting the OEM.
An ECDSA + Merkle over-the-air gate. Before a robot accepts an update, its controller verifies the firmware signature against the manufacturer’s registered key and cross-checks the version against the unit’s on-chain firmwareVersion to reject downgrades and replay attacks.
From subscription to a fully-identified fleet in five steps. Every write is returned as an unsigned transaction you sign with your own wallet or multisig — the protocol never holds your keys.
Connect a wallet, approve USDC, call subscribe(tier). The on-chain event provisions your API key and mfr.robot-id.eth namespace automatically.
Submit up to 100,000 serials off-chain. The API builds a Merkle tree; you commit one root via submitRoot. One tx authorizes your whole run.
Each robot calls claimWithProof(…) to mint its NFT — soulbound or transferable, your choice. No per-unit fee; gas only.
Sign capability attestations (payload, zone, certs) and register your firmware-signing key. Set each AgentWallet’s spend rules once.
SN-X.mfr.robot-id.eth resolves to the current owner via CCIP-Read. Robots route intents and payments — under the limits you set.
Most robot OEMs run ROS2, so the lead adapter is ros2-bridge. Every command is classified, checked against the robot’s AgentWallet limits, routed to a ROS2 action goal, and recorded as an immutable audit entry — executed or rejected, with the reason.
A REST + GraphQL + WebSocket API, an OpenAPI spec with Swagger UI, and typed SDKs. Reads go straight to chain via viem + Alchemy — no caching layer between you and the truth.
import { RobotIntentPlugin } from '@robot-id/intent-sdk' const plugin = new RobotIntentPlugin({ robotId: 1n, apiKey: process.env.ROBOT_ID_KEY, adapter: 'ros2-bridge', // alexa | google-assistant | custom-llm }) const ack = await plugin.handleUtterance( "Authorize payment for charging dock B and log the task") // → classify intent → check AgentWallet limits // → IntentRouter.submitIntent → return ack
On a paid subscription your OEM namespace is provisioned under robot-id.eth via ENS NameWrapper. Units resolve through a CCIP-Read gateway that reads ownerOf live — so a name always points to the robot’s current holder, even after resale, with zero gas per transfer.
Six contracts on Ethereum mainnet, each verified on Etherscan. 53 tests cover every state-changing path, plus a forked-mainnet integration suite that exercises the real USDC token — because we launch on mainnet, not a testnet.
| Contract | Role | Address |
|---|---|---|
| RobotIdentity | ERC-721 · ERC-5192 · ERC-2981 · Merkle batch claim | 0xEebf76b8…8B31bEcc |
| AgentWallet | ERC-4337 smart account · on-chain spend rules | 0xE7C6703b…45c6f6d8 |
| IntentRouter | AI/voice authorization + immutable audit log | 0xE7C6703b…45c6f6d8 |
| CapabilityRegistry | OEM-signed, append-only attestations | 0x602C50Ac…193aeD5f |
| OTAVerifier | Firmware signature gate · downgrade reject | 0x8442f404…B95a7D0f |
| Subscription | USDC tiers · drives key + namespace provisioning | 0xfd9A0F30…F3C1635F |
No registration fees — minting a unit costs gas only. Revenue is the subscription alone, paid in USDC and settled on-chain. Subscribing auto-provisions your API key and your mfr.robot-id.eth namespace.
Integrate once. Identify every unit you’ve ever made. Keep full control.