Protocol and extension boundaries
Connection endpoints use /p2p/; providers retain native agent protocols.
Public connection endpoints
| Endpoint | Responsibility |
|---|---|
/p2p/config | Capabilities, signing identity and optional probes |
/p2p/signal | Handshake and direct-connection signaling |
/p2p/relay | End-to-end encrypted application frames |
/healthz | Service health |
Use packages/protocol and docs/platform/protocol.md as the source of truth for request types, device registration and pairing APIs.
A connection
Devices register identities with the same service and receive connection IDs. Pairing proves control through host confirmation or password verification and establishes local trust. Signaling exchanges candidates, then encrypted RPC invokes providers over direct or relay transport.
Snapshots and incremental events have cursors/sequences. Gaps trigger resynchronization; replayed transport data must not become a new instruction.
Service authorization
The official service may issue short-lived signed leases bound to host, controller, product and connection entitlements. Hosts verify them at a shared call boundary, preventing direct access from bypassing quotas.
Self-hosted services use the same protocol without a commercial subscription. On the official service, your plan determines host device, agent and relay access.