- Rust toolchain
1.93+ - Node.js
20+ - Internet access to public Beacon/Execution RPC endpoints
- Free local port for daemon API (default
127.0.0.1:8742)
Copy the sample config:
cp config/beaconops.example.toml config/beaconops.tomlSet at least:
- Two Beacon API endpoints
- Two Execution RPC endpoints
- Validator targets (
index,pubkey, orwithdrawal address) - Telegram fields if alerting is enabled
- Optional Keymanager endpoints for custody flows (
[keymanager].endpoints)
cargo run -p beaconops-daemon -- --config config/beaconops.tomlDaemon API defaults to 127.0.0.1:8742.
Sanity check:
curl -sS http://127.0.0.1:8742/api/v1/statuscd apps/desktop
npm install
npm run devOpen http://localhost:5174.
- Verify launch checks complete (
RPC,cache,config,updates). - Open
Health Centerand ensure endpoint score >= 70 for at least one Beacon and one Execution source. - Import validator groups with
node/cluster/operatormetadata. - Trigger
Manual retryin Settings. - Confirm incidents and health reflect real chain state.
- Set auto-lock timeout and test lock/unlock once.
- Enable
[telegram]in config. - Cause controlled degradation (disable one RPC endpoint).
- Verify warning alert arrives once (no duplicates in anti-spam window).
- Restore endpoint and verify heartbeat keeps running.
Address already in use: another daemon is already listening on127.0.0.1:8742.DAEMON_TIMEOUT: daemon not running, wrong base URL, or endpoint loop stalled.HTTP_404on new routes: stale daemon binary; restart from current repo sources.KEYMANAGER_NOT_CONFIGURED: missing[keymanager].endpointsin config.