Run a light node
Follow Network 1 without staking: run a light node that checks finality certificates and serves verified reads to your wallet or app.
A light node follows Tenzro Network 1 without proposing blocks or voting. It checks what it receives against finality certificates, the ML-DSA-65 signed certificates validators produce for every finalized checkpoint, so it does not have to trust the peer or RPC provider that served the data. Use one behind a wallet, a read-only service, a bridge relayer or any app that wants verified reads without the cost of a validator.
Prerequisites
- Any Linux or macOS machine. A light node needs no GPU, no TPM and no stake.
- The
tenzro-nodeandtenzrobinaries from Downloads or built from source.
1. Install the node
The same binary runs every role. The light role simply skips proposing and voting.
git clone https://github.com/tenzro/tenzro-network.git
cd tenzro-network
cargo build --release -p tenzro-node -p tenzro-cli2. Start in light mode
tenzro-node --roles light --data-dir ./light-dataWith no --genesis or --boot-nodes flags the node finds Network 1 through its bootstrap peers and anchors itself on the built-in Network 1 genesis. The RPC listens on 127.0.0.1:8545.
3. Let it catch up
A fresh light node does not replay the chain from genesis. It fetches a recent state snapshot from peers and accepts it only if the snapshot's state root matches a checkpoint carried by a valid finality certificate. From there it follows new checkpoints, checking each certificate's signatures against the validator set it already trusts.
Watch progress:
tenzro node syncing
tenzro node statussyncing returns false once the node is at the head. A node that shows peers but a low height on a quiet chain is not stuck; it advances with the next finalized block.
4. Read finalized state
Point any SDK, wallet or script at the local RPC:
curl -s http://127.0.0.1:8545 -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tenzro_getFinalizedBlock","params":[]}'
curl -s http://127.0.0.1:8545 -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":2,"method":"tenzro_getBalance","params":["0x<address>"]}'Expected output is a JSON-RPC result such as {"jsonrpc":"2.0","id":1,"result":"0x..."}. These are open methods and need no key.
From TypeScript, use the SDK against the local node:
import { TenzroClient } from "tenzro-sdk";
const tz = TenzroClient.local();5. Keep it running
Run the light node as a service so it stays current. Upgrades replace the binary and keep the data directory. Because a light node holds no stake, it can be stopped and restarted at any time; it resumes from the last checkpoint it verified.
Next steps
- Finality certificates: what a certificate contains and how to verify one yourself.
- State and snapshots.
- Run a validator node when you are ready to stake.