Docs/Telemetry Signing
Trust Verification

Telemetry Signing

Overview

Telemetry signing provides cryptographic proof that data originated from a specific device and was not modified in transit. Every data point can be independently verified.


Submit signed telemetry

When the device signs data locally:

const result = await sentinel.telemetry.submit({
  robotId: 'clx1a2b3c...',
  eventType: 'sensor',
  payload: {
    position: { x: 24.551, y: -12.003 },
    battery: 87.2,
    velocity: 1.204,
  },
  signature: deviceSignature,
});

Server-side signing

For devices that cannot sign locally, Sentinel signs on their behalf:

const result = await sentinel.telemetry.submit({
  robotId: 'clx1a2b3c...',
  eventType: 'heartbeat',
  payload: { status: 'active', uptime: 3600 },
});

Note: Server-signed telemetry incurs a -5 trust score penalty. Device-signed data has no penalty.


Event types

| Type | Use case | |------|----------| | heartbeat | Periodic availability signal | | sensor | Environmental or operational readings | | location | GPS or indoor positioning data | | battery | Power level and charging state | | error | Fault or anomaly report |


Trust score impact

| Scenario | Effect | |----------|--------| | Valid device signature | No change | | Server-signed (no device signature) | -5 points | | Signature verification failure | -10 points + alert | | Trust score below 20 | Device marked COMPROMISED |


Real-time streaming

Telemetry events are broadcast via WebSocket for live dashboard updates:

import { useRealtimeTelemetry } from '@/hooks/use-realtime';

const { events, connected } = useRealtimeTelemetry(robotId);

Events arrive within milliseconds of submission.