3. Conventions
This chapter fixes how the rest of the document is read: which words carry a requirement, which chapters are normative, what the notation means, how rules and invariants are numbered, and which other documents are part of the normative set. It defines no protocol behaviour of its own.
3.1 Requirement keywords and normative scope
The key words MUST, MUST NOT, SHOULD, SHOULD NOT, and MAY are to be interpreted as described in RFC 2119.
Chapters 3 to 20 are normative. Chapters 1 and 2 and Appendix A are informative. A subsection titled "Rationale" is informative and imposes no requirement.
R-3.1. A declarative statement in a normative chapter is a requirement: "a command whose sequence does not exceed the mark is invalid" means a conforming validator MUST reject it.
3.2 Notation
BLAKE3(x)is the 32-byte BLAKE3 digest ofx.BLAKE3("domain" || x)prefixes the ASCII domain string, and every domain string is listed in one registry (chapter 6 and encoding section 11).Keccak256(x)is the 32-byte Keccak-256 digest ofx. It is used only on the proof path defined in chapter 6 and in the three pinned Tempo formulas of chapter 7.||is byte concatenation.u64(x)is a fixed-width big-endian encoding.- Sizes are in bytes.
canonical(T)is the canonical encoding of a value of typeTunder chapter 6.- A height is a block number from genesis.
- Under
DynamicReshareV1, an epoch is a fixed number of heights.FixedEpochZeroV1admits only epoch zero (chapters 5 and 13). - A chainspec value is fixed by the genesis chainspec (chapter 5) and may be governed (chapter 18).
- A calibration item is a value this document names but does not fix (chapter 19). A calibration item is never stated as a measured fact.
- Identifiers in
codeare protocol names. Names taken from the underlying library refer to the pinned library version (chapter 2).
3.3 Rule and invariant numbering
Each rule carries the identifier R-<chapter>.<n>, written in bold at the start of the sentence it
labels. A sentence that carries no rule number states a definition, a consequence, or a pointer, and
adds no requirement of its own.
A rule identifier is unique within this document and is stable from revision 9 onward: a rule that changes is rewritten under its own number, a new rule takes the next free number in its chapter even where that breaks reading order, and a retired rule keeps its number and reads "retired" with a pointer to what replaces it. An identifier is never reused for a different rule.
Invariants are numbered INV-<group>-<n>, and an invariant identifier is never renumbered and never
reused. An invariant appears once, in the subsection that defines the thing it constrains, as a
quoted block:
> **INV-<group>-<n>.** <the invariant sentence, verbatim>
Chapter 20 indexes every invariant with its defining section.
3.4 The spec/ boundary and the normative companions
The normative set is this document together with the three companions under spec/, each a
normative refinement subordinate to this document.
| Companion | Defines |
|---|---|
| encoding contract | canonical field order, types, tags, domains, and proof framing |
| state machine | command transitions and bounded execution |
| settlement interface | the dedicated contract and proof boundary |
Documents under docs/ are informative and carry no validity rule:
| Document | Records |
|---|---|
../docs/architecture.md |
the library primitive map, the storage decision table, and the ownership boundary |
../docs/client-api.md |
preparation, submission, reconciliation, and publication receipts |
../docs/operations.md |
mesh topology, readiness and observability, sync and recovery procedure, admission and mempool policy |
../docs/validation.md |
assurance layers and qualification gates |
../docs/release-process.md |
the release lifecycle, rehearsals, and release assurance |
../docs/history-query.md |
the history query tier, tables, manifests, and facade |
../docs/availability-profile.md |
per-project availability-layer obligations, selective disclosure, and off-chain discovery |
../docs/off-chain-signed-messages.md |
the off-chain signed message format and the service obligations that keep links, reactions, profile data, verifications, and layer announcements attributable without becoming commands (section 8.7) |
Two artifacts sit outside every document. Literal conformance vectors pin byte equality, and the calibration report fixes the values of chapter 19. Prose and transport sketches do not substitute for either.
What every later chapter is built on.