Skip to main content

Sentinels in Syrius

The thesis in one line: Syrius already runs a full Zenon node inside the wallet and serves RPC from it — so the framework to run a Sentinel service node from inside Syrius is already in the codebase. Finishing it is a buildable extension, and the MVP needs no consensus change.

This site is a curated, evidence-backed documentation set for implementing the Sentinel service node inside the Syrius wallet. It is written to be read by both human contributors and AI coding agents: claims about Syrius carry file:line receipts, and provenance is tagged throughout ([DOC] documented · [INF] inferred · [OPEN] unresolved).

Start here​

If you want to…Read
Understand what a Sentinel is (and why the docs conflict)Understanding Sentinels
See the proof that the framework is already in SyriusInvestigation & Evidence
Build it — the design contractSpecification
Build it — the task-by-task planBuild Roadmap
Drive an AI agent to implement itAI Agent Guide
Read the community pitchForum Post

The shape of the argument​

  1. What Sentinels were meant to be is genuinely unsettled — Zenon's whitepaper, lightpaper, and greenpaper describe them three conflicting ways. We adopt the greenpaper's "public light-client relay / service edge" reading because it is the only one buildable today without a protocol change. (See Understanding.)
  2. Syrius already has the machinery — it runs a full libznn node in-process, serves WS RPC, ships the Sentinel staking UI, has node management, and an implemented-but-empty discovery slot. (See the Investigation, with receipts.)
  3. The honest gaps are: the embedded node isn't configurable from Syrius yet (that work lives in libznn/go-zenon), and a desktop GUI needs an always-on mode. Neither needs a consensus change.
  4. The build is scoped into off-chain phases (A–B) and a future on-chain phase (C) in the Roadmap.

Source code​

The Syrius source is included as a git submodule at syrius/ (pinned at v0.2.4-alphanet). Most file:line references point into syrius/; some point into the pinned SDK znn_sdk_dart v0.0.7 (paths like api/embedded/... or model/embedded/...), which is not vendored in syrius/ — verify those via syrius/pubspec.lock and your local pub cache. Always re-verify a reference against the current source before acting on it.