The Open Standard for
Robot Safety
Register your robot. Sign every action. Prove compliance.
castor compliance Why RCAN?
The internet has DNS and ICANN. IoT has Matter. Robotics has nothing.
As millions of robots are manufactured and deployed—from warehouse arms to delivery bots to humanoids—there is no standard way to:
- Target Address a robot uniquely and globally
- Auth Authenticate who is allowed to control it
- Swarm Coordinate fleets and swarms across manufacturers
- Safety Ensure safety when networks fail
RCAN is an open protocol specification designed to solve these problems with a federated, offline-resilient architecture.
Key Features
Built to handle the complexity of real-world robotics.
Robot URI (RURI)
Globally unique identifiers for every robot. Like URLs but for physical machines — resolvable, federated, and human-readable.
rcan://registry.rcan.dev/acme/arm/v2/unit-001 Role-Based Access
Five-level hierarchy: Guest → User → Leasee → Owner → Creator. Explicit, auditable permissions at every layer.
Local Discovery
mDNS/DNS-SD via _rcan._tcp.local. Works when the cloud goes dark — your robot never loses you.
Safety Invariants
Local safety always wins. Network loss triggers safe-stop. All commands timestamped and audited.
Federated Registries
Like email — anyone can run an RCAN registry. No single point of control. Decentralized by design.
Fleet Coordination
Choreographed multi-robot commands, swarm discovery, and conflict resolution across manufacturers.
AI Accountability (§16)
Confidence gates, HiTL authorization, and HMAC-chained thought logs. Every AI decision carries model identity — provable, not claimed.
confidence: 0.91, model: "Qwen2.5-7B" Robot Registry
Global RRN registry with manufacturer verification tiers (⬜🟡🔵✅). Like ICANN for robots — federated, open, independent.
RRN-2026-0001-ABCD The Global Robot Registry
Every robot deserves a unique, verifiable identity. The RCAN registry assigns globally unique RRNs (Robot Registration Numbers), tracks provenance and ownership, and provides machine-readable records via REST API.
Who Is This For?
RCAN serves everyone in the robotics ecosystem.
Robot Manufacturers
Get globally unique RRNs for every unit. Earn manufacturer verification badges, satisfy EU AI Act Art. 49 registration requirements, and give your customers confidence through a public, auditable record.
Safety Engineers
Use the L1/L2/L3 conformance test suite to validate implementations. Leverage NIST AI RMF and ISO 10218-1:2025 alignment docs to meet industry and regulatory standards.
Governments & Regulators
An open specification under independent governance, with a built-in AI accountability layer and SBOM-equipped reference implementation — designed for regulatory review and adoption.
Official SDKs
One command to get started.
pip install rcan npm install @continuonai/rcan-ts <script src="https://unpkg.com/@continuonai/rcan-ts/dist/rcan.iife.js"></script> from rcan import RobotURI, RCANMessage, ConfidenceGate
from rcan.audit import AuditChain
# Address your robot
uri = RobotURI.build(manufacturer="acme", model="arm", version="v2", device_id="unit-001")
# Gate on AI confidence (§16)
gate = ConfidenceGate(threshold=0.8)
confidence = 0.91 # from your model
if gate.allows(confidence):
msg = RCANMessage(
cmd="move_forward",
target=uri,
params={"distance_m": 1.0},
confidence=confidence,
model_identity="Qwen2.5-7B",
)
chain = AuditChain(secret="your-hmac-secret")
chain.append({"action": msg.cmd, "robot_uri": str(uri), "confidence": confidence}) Ship your first message in 5 minutes
Install the SDK, build a Robot URI, gate on AI confidence, seal an audit record. That's it.
pip install rcan RobotURI.build(manufacturer, model, version, device_id) ConfidenceGate(threshold=0.8).allows(confidence) AuditChain.append(action) → tamper-evident log $ rcan-validate config myrobot.rcan.yaml $ castor inspect RRN-00000042
The infrastructure for
trusted robotics
Register your robot for free. Build with the open SDK. Ship safer AI-powered systems with a provable audit trail.
Open specification · CC BY 4.0 · No vendor lock-in · Changelog