Federated Robot Registry No Single Point of Control
RCAN robot identity is federated โ like DNS. Anyone can host a registry. Every robot's address encodes its authoritative registry directly in the RURI, so resolution never requires a central intermediary.
What This Node Actually Runs Today
Everything below this section describes the protocol. This section describes the deployment at rcan.dev, as of 2026-09-14.
-
The federation has one node.
GET https://rcan.dev/api/v1/nodesreturns the root node and no other. - There are zero namespace delegations. No registry has been delegated a namespace by this node.
-
Push sync (
POST /api/v1/sync) is authenticated by an admin bearer token plus membership of the delegation allowlist, and by nothing else. It runs no cryptographic check over the pushed body. The contract documents no such field. -
Because there are zero delegations, that endpoint answers
501with{ "error": "federation is not enabled on this node", "delegations": 0 }. It is not a list you are missing from; the feature is off. -
The node manifest at
/.well-known/rcan-node.jsonadvertises only the capabilities its configured key material supports, and self-signs when a signing key is configured. Since 16 October 2026 it publishes the root node's Ed25519 public key inpublic_key(ased25519:<base64url>) anded25519_public_key(raw base64url), and signs itself under kided25519-d626701596f726df. This is the key the SDKNodeClientchecks for. A self-signature proves control of that key and nothing about the operator's independence.pqc_public_keystays null until an ML-DSA-65 half exists. -
The manifest is the only thing this node signs today. Resolve responses from
GET /api/v1/resolve/<RRN>carry no signature over the record, and theverify=trueparameter is reserved and does nothing. The Federation Proof shape described below is the protocol; it is not what this deployment returns.
Running your own registry does not require this node's permission, and joining the index below is not a certification. RCAN conformance is self-asserted.
The Registry Is in the Address
A RURI carries the authoritative registry in its scheme โ no lookup table required.
Always
rcan://Authoritative registry host
Namespace within registry
Unique identifier (โฅ 8 chars)
Because the registry host is embedded in the RURI, a resolver never needs to ask "where is this robot registered?" โ it simply reads the address.
How Resolution Works
Resolution follows a deterministic chain. Each step is attempted in order; the first success wins.
rcan.dev (if configured) ยท else return REGISTRY_UNREACHABLEFederation Proof
Every registry response is a Federation Proof โ a signed JSON object:
{
"registry_url": "https://robots.acme-corp.com",
"rrn": "RRN-000000000042",
"robot_name": "Logistics Bot Alpha",
"registry_pubkey_hint":"sha256:abc123def456...",
"timestamp_iso": "2026-03-04T15:30:00Z",
"chain_hash": "sha256:fedcba987654...",
"attestation": "active"
} | Field | Description |
|---|---|
registry_url | Canonical URL of the issuing registry |
rrn | Robot Registration Number โ unique within this registry |
robot_name | Human-readable robot display name |
registry_pubkey_hint | SHA-256 fingerprint of the registry's signing key |
timestamp_iso | Proof generation time (UTC, ISO 8601) |
chain_hash | SHA-256 link to prior proof โ maintains audit chain integrity |
attestation | active ยท pending ยท suspended ยท revoked |
Three Registry Types
rcan.devmy-org.comlocal.rcan_rcan-registry._tcp). No internet required.
Run Your Own Registry
Five steps to launch an RCAN-conformant federated registry.
api_base:GET {api_base}/robots/{rrn} โ federation proof
GET {api_base}/robots?manufacturer=... โ robot list
POST {api_base}/robots โ register robot
GET {api_base}/status โ health check openssl genpkey -algorithm ed25519 -out registry-private.pem
openssl pkey -in registry-private.pem -pubout -out registry-public.pem
# Serve registry-public.pem at /.well-known/rcan-registry.pub /.well-known/rcan-registry.json{
"name": "ACME Robotics Registry",
"operator": "ACME Corporation",
"rcan_version": "1.3",
"api_base": "https://robots.acme-corp.com/api/rcan/v1",
"public_key_url": "https://robots.acme-corp.com/.well-known/rcan-registry.pub",
"federation_root":"https://rcan.dev"
} python3 scripts/conformance/check_l1.py \
--host your-registry.example.com \
--port 443 \
--registry-mode rcan.dev to join the global federation index:POST https://rcan.dev/api/rcan/v1/federation/registries
Content-Type: application/json
{
"registry_url": "https://your-registry.example.com",
"well_known_url": "https://your-registry.example.com/.well-known/rcan-registry.json"
} Governance
The root registry rcan.dev is run by RCAN's single maintainer. The aim is to hand it to an independent steward, so that no single manufacturer, cloud provider, government or person controls the robot identity namespace. That has not happened yet.
Governance responsibilities include: setting the RCAN specification, operating the root registry, maintaining the federation index, and publishing all governance decisions publicly.
โ Full Federation Protocol Spec (Markdown) ยท โ Conformance Tests ยท โ Governance