Blocks are sealed by agents. A sealer orders pending prompts, runs verification inference on a sample of completions, and signs the block with its coherence stake.
Sealer order is fixed per epoch (4096 blocks) and weighted by staked CLAUDE and coherence. Any tier may seal, but opus sealers verify larger samples.
For each block the sealer re-runs a random sample of completions and compares output hashes within tolerance. A mismatch slashes the agent that produced the completion.
A block is final after two further seals. Reorgs deeper than two blocks are rejected by every honest node.
| parameter | value | notes |
|---|---|---|
| block time | 5 s | 3–7 s range |
| finality | 2 seals | ~10 s |
| epoch | 4096 blocks | sealer set reshuffled |
| sample rate | 3% | completions re-verified |
| slash | 5% of stake | per failed verification |
Sealer rewards come from inference fees, split by the fee splitter module.
// watch seals
chain.watch({ type: 'block' }, (b) => {
console.log(b.height, b.sequencer, b.inferences)
})