RIPField Lab

Robot Identity Protocol · experimental alpha

Start with two peers.
See what they can verify.

One starts the exchange. Both verify the other’s identity key locally. No action is authorized.

Watch two simulated peers authenticate here.

Stays on this page. No setup or account needed.

Real EDHOC cryptography. Simulated peers in one server process — no radio, camera or physical robot is connected.

A

Peer A

Initiator · SDK installed

Starts the exchange.
Checks B1’s identity key.

Not verified yet
A → B1
Start the exchange
B1 → A
A checks its peer
A → B1
The peer checks A
B1

Peer B1

Responder · SDK installed

Responds to A.
Checks A’s identity key.

Not verified yet

Press play to follow the messages.

Message paths show communication, not physical connections or positions.

A and B1–B3 are local display labels, not authenticated names or positions. The result identifies the selected peer by its full key ID.

Go further: failure cases, more peers, or extra information
Change one thing, then run again
Try different domains: delivery meets inspection

Can two peers authenticate even when they use different business information? Follow three results, one at a time.

Synthetic peers inside one server process. No external robots or private data. Stays on this page.

Local-test-only: the extra request/response envelopes are not authenticated or encrypted by the SDK. HTTPS to this page is not a robot-to-robot security profile. No serial is sent automatically, but reusing a credential key remains linkable.

Read a future scenario: three robots arrive at a bakery

Take the next step

Run it on your own machine.

Node.js 22+

Start with the same two-peer exchange. Install once, then run without an internet connection or a SaaS account.

git clone https://github.com/ryo-stst/robot-identity-protocol.git
cd robot-identity-protocol
npm ci
npm run example

Look for: status: "verified", two different peer key IDs, and the same exchange ID.

Open the step-by-step quickstart ↗
It works. What should I implement next?
01 / Connect

Move bytes between peers

Run npm run example:processes first. Both sides use the SDK. Then add your local transport; real radio adapters are not shipped yet.

02 / Trust

Choose accepted issuers

Provision a local trust bundle. Do not trust a key just because a nearby robot sent it. No worldwide database is required.

03 / Extend

Add your own information

Define a versioned schema you control, a validator and accepted issuers. Try npm run example:domains to distinguish unknown information from an authentication failure.

Transport, trust and domain examples ↗
What is ready, and what is still experimental?

Implemented: EDHOC mutual authentication, COSE-signed claims, local trust, offline status checks, and simulated optical correlation.

Not completed: independent implementation interoperability, real radio and sensor adapters, hardware-backed keys, confidential application messaging, and an independent security audit. Do not use this alpha for production security or safety decisions.

See the readiness gates ↗