Skip to content
GitHub

Reproducible identity and health probes

Testnet

These commands were executed against https://rpc.monolythium.com, which reported the registered v0.4.0-testnet identity. They are safe, read-only JSON-RPC probes: no key, wallet, transaction, or funded account is required. On 2026-07-16 the endpoint was reachable and identity-matched, but finalized state was stale/degraded; reachability must not be reported as liveness.

The public endpoint is rate-limited and best-effort. Do not use this page as a load generator. Testnet may be wiped and re-genesis without notice, so compare the full genesis hash—not only chain ID—with the active chain-registry entry.

Terminal window
curl --fail-with-body --max-time 10 -sS https://rpc.monolythium.com \
-H 'content-type: application/json' \
--data '{"jsonrpc":"2.0","id":1,"method":"lyth_chainStats","params":[]}' \
| jq -e '
.result.chainId == 69420 and
.result.genesisHash == "0xe22733f4d7e013b93f0f825667fcf852cbf7ad1ca31a42a1bfcf1ab6d79c89a3" and
(.result.latestHeight | type == "number") and
.result.clusters.total == 4
'

The current response uses camelCase fields: chainId, genesisHash, latestHeight, latestTimestamp, peerCount, and clusters.total. Older snake_case samples do not match this released wire shape.

Read the current round separately:

Terminal window
curl --fail-with-body --max-time 10 -sS https://rpc.monolythium.com \
-H 'content-type: application/json' \
--data '{"jsonrpc":"2.0","id":1,"method":"lyth_currentRound","params":[]}' \
| jq -e '.result.height | type == "number"'

Empty periods may be represented without a new user-facing block, so two height samples are not a throughput benchmark. Health checks must also read finalized timestamps, sync state/lag, peer-health bands, and round progression.

lyth_syncStatus.state == "synced" is peer-relative. A stalled node can be synchronized with stalled peers, so the value cannot override an old finalized timestamp or absent progression.

Terminal window
stats="$(curl --fail-with-body --max-time 10 -sS https://rpc.monolythium.com \
-H 'content-type: application/json' \
--data '{"jsonrpc":"2.0","id":1,"method":"lyth_chainStats","params":[]}')"
sync="$(curl --fail-with-body --max-time 10 -sS https://rpc.monolythium.com \
-H 'content-type: application/json' \
--data '{"jsonrpc":"2.0","id":1,"method":"lyth_syncStatus","params":[]}')"
age="$(( $(date -u +%s) - $(jq -er '.result.latestTimestamp' <<<"$stats") ))"
jq -e '.result | (.state | type == "string") and (.lag | type == "number") and (.localRound | type == "number") and (.peerMaxRound | type == "number")' <<<"$sync"
if [ "$age" -gt 300 ]; then
echo "degraded: finalized state is ${age}s old" >&2
exit 2
fi

The nonzero exit is intentional: it distinguishes stale health from a transport or identity failure. The repository’s pnpm check:rpc-probes samples twice, parses the full health shape, and succeeds only when the observed state matches the truthfully published degraded record. pnpm check:rpc-probes:strict additionally requires healthy observations and currently fails. If health changes, --print-observation prints the reviewed JSON needed to update the point-in-time record; the default check never rewrites documentation.

Terminal window
curl --fail-with-body --max-time 10 -sS https://rpc.monolythium.com \
-H 'content-type: application/json' \
--data '{"jsonrpc":"2.0","id":1,"method":"lyth_runtimeProvenance","params":[]}' \
| jq -e '
.result.chainId == 69420 and
.result.genesisHash == "0xe22733f4d7e013b93f0f825667fcf852cbf7ad1ca31a42a1bfcf1ab6d79c89a3" and
.result.runtime.releaseTag == "v0.4.0-testnet" and
.result.runtime.gitCommit == "da04f8f5e8391811f80e8d0511dff74311f4e811" and
.result.runtime.binarySha256 == "259c67c1c7fc8bc3f8ca22c82953ea7dc54a9e2ceaa02d0fe0879ab5192f8227" and
.result.runtime.gitDirty == false
'

This verifies what the endpoint reports. It does not independently prove the binary or make an untrusted endpoint trustworthy; compare release artifacts and registry provenance through a separate channel.

Terminal window
curl --fail-with-body --max-time 10 -sS https://rpc.monolythium.com \
-H 'content-type: application/json' \
--data '{"jsonrpc":"2.0","id":1,"method":"lyth_peerSummary","params":[]}' \
| jq -e '
(.result.peerCount | type == "number") and
(.result.asOfBlock | type == "number") and
(.result.versionDistribution | type == "object") and
(.result.healthSummary.synced | type == "number") and
(.result.healthSummary.lagging | type == "number") and
(.result.healthSummary.stale | type == "number")
'

Peer counts and health bands change. The command validates the supported response shape without asserting a marketing number. A healthy label requires both recent progressing state and acceptable peer/sync signals; no single field is sufficient.

  • It does not submit a no-op transaction or spend testnet funds.
  • It does not claim TPS, inclusion latency, checkpoint latency, finality, or availability from a single public endpoint.
  • It does not call removed or undocumented lyth_chainIdentity or lyth_clusterDirectory shapes.
  • It does not present bridge or agent-commerce settlement as available.
  • It does not use compatibility APIs as a substitute for full native chain identity.

For repeatable performance work, run an isolated node, publish the exact binary, genesis, hardware, workload, and raw samples, and keep the public endpoint out of the load path.