SSM-Clock Stamp – Normative Specification — Stamp (1)

Scope. Defines the single-line ASCII stamp, required fields, and the exact computations to produce and verify an SSM-Clock Stamp. All outputs are plain ASCII.

Stamp — one line (canonical shape)
SSMCLOCK1|iso_utc|rasi_idx|theta_deg|sha256(file)|chain[|kv:...]

  • ASCII-only, pipe-separated, no spaces, no leading/trailing separators.
  • Optional tail starts with kv: and carries key=value pairs separated by ;. Unknown keys are ignored.

Deterministic clock (from UTC only)
wrap360(x) = x - 360*floor(x/360)
theta_deg = wrap360( (unix_seconds / 86400) * 360 )
rasi_idx = floor(theta_deg / 30)

Content integrity (file digest)
h_file = sha256(file_bytes) (or algo via kv:algo; streaming allowed if the digest equals the monolithic hash).

Append-only chain (tamper-evident ordering)
stamp_core = "SSMCLOCK1|" + iso_utc + "|" + rasi_idx + "|" + theta_deg + "|" + h_file
chain_0 = "0"*64
chain_k = H_chain( ascii(chain_{k-1} + "|" + stamp_core) ) (algorithm declared by kv:chain_algo, default sha256)

Canonical formatting rules (must)

  • UTC: iso_utc = YYYY-MM-DDThh:mm:ssZ (UTC only; no subseconds, no offsets).
  • Float determinism: all math uses IEEE-754 binary64; decimal point is '.'.
  • Angle print: theta_deg uses exactly theta_prec digits (default 5) with round-half-to-even; compare as strings.
  • Digests: sha256(file) and chain are lowercase 64-hex.

Time semantics & anchors

  • Declarative time: iso_utc is chosen by the stamper; it makes the clock state deterministic and human-checkable.
  • Public “no-later-than” bound: publish rollup_D = sha256( ascii(Stamp_1 "|" ... "|" Stamp_n) ) using canonical sort by (iso_utc, stamp_core, chain).

Observed-time mode (optional)

  • Use kv:time_mode=observed when iso_utc comes from lightweight observations (evidence kept in ASCII sidecar).
  • Core verification remains anchored to iso_utc.

Additive key–value tail (kv:) — agility & policy

  • Defaults if kv: is absent: algo=sha256, chain_algo=sha256, theta_prec=5, float=ieee75464, time_mode=derived_utc.
  • Supported digests: sha256, sha3_256, blake2b-256 (all 256-bit → 64-hex).
  • Optional helpers: ssmc_hint_min (minutes, |Δ| <= 30, advisory), a_stamp ∈ (-1,+1) (quality scalar), chain_id (8-hex), device ([A-Za-z0-9._-]{1,32}).

Leap-second policy (must)

  • Stamping at 23:59:60 is forbidden; verifiers MUST reject any :60.

Acceptance (summary)

  • File digest and chain digest match recomputation under declared algorithms.
  • iso_utc format valid; no leap second.
  • theta_deg prints with exactly theta_prec digits under IEEE-754 binary64 rounding; rasi_idx matches.
  • float == ieee75464; time_mode ∈ {derived_utc, observed}; unknown kv: keys ignored.

Navigation
Back: SSM-Clock Stamp – Verification Rules (0E)
Next: SSM-Clock Stamp – Stamp Format (1.1)


Explore Further
https://github.com/OMPSHUNYAYA/Symbolic-Mathematical-Clock-Stamp