t type code
The frozen integer discriminator of a proof subject type, drawn from a registry namespaced by decade (10-19 block-like, 20-29 item, 30-39 entropy, 40-49 reserved for commitment chains); a bundle carries the matching registry name in its type key while the integer is what the signed payload binds.
Overview
The t type code is the integer that identifies which kind of subject a
proof bundle is about. It lives in one place only: the
binary payload that Truestamp signs, where it is the two-byte big-endian field named t.
On the wire the bundle instead carries the readable registry name in its type key, so a
reader sees "item" or "entropy_stellar" rather than a number, and a verifier maps that name
back to the integer before recomputing the signed payload. Because the integer is bound
into the signature, changing a bundle’s type breaks it; this is what makes a beacon
proof cryptographically distinct from a plain block proof over the same block. The registry
table and the signed payload layout live in
the proof bundle wire format.
The registry
One unified registry, namespaced by decade:
| Range | Category | Assigned |
|---|---|---|
| 10-19 | block-like subjects | 10 block, 11 beacon |
| 20-29 | item subjects | 20 item |
| 30-39 | entropy sources | 30 entropy_nist, 31 entropy_stellar, 32 entropy_bitcoin |
| 40-49 | public commitment chains | 40 Stellar, 41 Bitcoin, both reserved |
| 50 and above | reserved | none |
The codes are a long-lived contract: never renumbered, never reused, never renamed. A new subject type claims the next unused integer in its category, and a new name is added alongside it.
The 40 and 41 codes are reserved rather than in use. A commitment inside a bundle names its
chain in plain text ("stellar" or "bitcoin") and nothing signed depends on a commitment
code, so the two integers stay permanently claimed in the registry and can never be
reassigned to something else.