Skip to content

Node types

Frost nodes differ along two independent axes: what role they play in consensus, and how much history they retain. A node picks one of each.

Participates in consensus. A validator runs all four components in one process: a consensus authority, an execution driver, an execution layer, and an ingress.

It proposes and signs consensus blocks, drives its execution layer over the forced-transaction Engine API, and accepts user submissions. Validators are the only nodes that can accept eth_sendRawTransaction.

Membership is by committee. See Keys and committee.

Does not participate in consensus. A follower streams the committed order from a validator’s observer endpoint and drives its own execution layer to the identical chain.

It produces byte-identical blocks and state roots, so it is a fully verifying node — it simply has no vote. Followers are the right choice for serving RPC, running an explorer or indexer, or independently checking what the validators agreed.

Followers cannot accept transaction submissions.

Post-quantum signatures make storage a first-order cost — a frame transaction is about 90% signature bytes — so no node holds everything, and the fleet deliberately holds different amounts. Names follow Ethereum’s where the concept matches.

TierHoldsClosest Ethereum equivalent
pruned Full header chain back to genesis, a rolling recent-block window of bodies and receipts, and current state. Full node with EIP-4444 history expiry.
tx-history Full header chain, signature-stripped transaction bodies, receipts and the txid index back to genesis — all provable — plus current state. Witness sidecars pruned below a rolling window. No equivalent. This tier exists because of witness segregation.
full-history Everything, including ML-DSA signature sidecars, plus current state. Full node.
state-archive All historical state — eth_call and storage queries at any height. Archive node.

The tx-history tier is the interesting one and is Frost’s own contribution. Because each block header commits to a strippedTransactionsRoot, a node can discard multi-kilobyte witnesses and still serve every historical transaction with a proof. You lose the signature bytes, not the ability to prove what happened. See Witness segregation.

Ask any node what it holds:

Terminal window
curl -s <node-rpc> -H 'content-type: application/json' \
--data '{"jsonrpc":"2.0","id":1,"method":"frost_historyStatus","params":[]}'

State and history are pruned on independent windows, because they grow differently — history grows unconditionally and linearly, state only on net-new accounts and storage slots. The bulk post-quantum cost is history.

Execution layer. --frost.history.retention W sets the block window. W ≥ 90,000 is a hard minimum: below geth’s immutability threshold the data is stranded in the key-value store and the bound silently degrades to about 90,000 anyway.

A separate sidecar window prunes witness bytes only. A sidecar can never outlive its block body, so where both are set the shorter one wins — and the tx-history tier is precisely “the sidecar knob alone”.

Consensus layer. A separate retention window over consensus commits.

One thing is never pruned: the commit spine, the hash-linked record running back to genesis. It is roughly 1% of the consensus layer by volume — a few hundred bytes per commit instead of tens of kilobytes of signed DAG blocks — so keeping all of it is cheap, and it is what makes everything else verifiable.

Pruning is also clamped by runtime floors: consumer progress, the latest certified checkpoint, the durable-execution floor, and the verified-upload floor on hosts that export to archive. The pruner never cuts past any of them.

Beyond the node tiers, certified consensus segments and full-witness block groups are exported to S3-compatible object storage. Data is hash-verified against the chain’s own commitments before anything may be pruned locally.

The storage is treated as untrusted: a provider that corrupts or loses data is detected rather than believed. A state-archive node is rebuilt from this export by replaying full-witness blocks in archive mode.

You want to Run
Participate in consensus Validator
Serve RPC to an application Follower, tx-history
Run an explorer or indexer Follower, tx-history or full-history
Answer historical eth_call Follower, state-archive
Verify the chain independently, cheaply Follower, pruned

A follower gives you full verification without committee membership, and is the right default for anyone who wants their own trustworthy view of the chain.