Take the oath

Two machines, a stake, and one signature.

Nobody approves you. Your node watches the rollup contract on Ethereum, recomputes every state root against its own copy of the chain, and publishes a signed verdict.

  1. 01
    Stake
    20,000 $WARR opens registerNode. No lock-up — unstaking is immediate and returns everything. Leaving costs you the fee share and nothing else; your Warrant and every point you earned survive, dormant.
  2. 02
    Register
    Mints your Warrant: a non-transferable ERC-721 holding your node address, signing key, rank and reputation. Use a separate address for the attestation key — it lives on a running server and signs constantly, and sharing it with your staking address puts the stake on the machine most likely to be breached.
  3. 03
    Run
    Point warr-core at the chain in watchtower mode with a validation server behind it. Your first confirmed attestation is your first point.

What runs where

Two of the four are optional and exist to sell service, not to verify anything.

componentrolesoftware
warr-coreFull node in watchtower mode. Your source of truth.nitrorequired
warr-valValidation server. Recomputes blocks through Arbitrator / JIT.nitro-valrequired
warr-rpcPaid RPC, archive mode. Revenue, not verification.nitro (archive)optional
warr-relayRelays the sequencer feed to subscribers.relayoptional

Hardware

Woodward — the minimum
8 cores · 32 GB · 2 TB NVMe
One pair of machines. No RPC, no relay. Verifies everything the network verifies and earns reputation at exactly the same rate as the largest operator.
Forester and above
16 cores · 64 GB · 4 TB NVMe
Only needed to serve external traffic. That is a business decision about selling service, not a requirement for being counted.

100 ms blocks grow state fast. Prune on the core node, keep archive on the upper RPC tiers only — the figures above already assume that.

The flags that matter

nitro \
  --parent-chain.connection.url=$L1_RPC \
  --chain.id=4663 \
  --node.staker.enable=true \
  --node.staker.strategy=Watchtower \
  --node.block-validator.enable=true \
  --node.block-validator.validation-server.url=ws://warr-val:8549 \
  --execution.caching.state-scheme=path \
  --execution.forwarding-target=null
Watchtower is the only strategy available to us anyway — the validator allowlist is closed. `forwarding-target=null` is fatal if unset on a non-sequencer, and `state-scheme=path` must match the snapshot you synced from.
WARR_ATTESTER_KEY=0x…            # signs attestations. Not your staking key.
WARR_NODE_RPC=http://warr-core:8547
L1_RPC_URL=https://…             # must serve wide eth_getLogs ranges
ATTESTATION_HUB_ADDRESS=0x…
NODE_REGISTRY_ADDRESS=0x…
Submission is relayable, so the attestation key never needs to hold gas. A node that cannot afford to speak stops speaking.

What you are signing up to

Being wrong is free
An incorrect verdict earns no point and carries no penalty. The moment disagreeing costs money, everybody copies the majority — and the one node that spotted a real fault goes quiet.
Being absent is not
After fourteen days idle, reputation decays 5% a week. A rank is a claim that you are reliable now, not that you were once.
You will not challenge anything
No node here can. What yours does is make a silent failure loud inside the 6.4-day window, and add one more independent signature to a record that gets harder to dismiss the more of us there are. The rest of the limits.
Who is already swornAPI reference