SSM-Clock Stamp – Canonical Formatting Rules (1.5)

Purpose. Establish must-follow formatting so any SSM-Clock Stamp can be reproduced and audited in plain ASCII.

UTC string (must)

  • iso_utc = "YYYY-MM-DDThh:mm:ssZ"UTC only, no subseconds, no offsets.
  • Example: 2025-10-14T09:05:27Z is valid; 2025-10-14T09:05:27.123Z and 2025-10-14T09:05:27+05:30 are invalid.

Float determinism (must)

  • All intermediate math uses IEEE-754 binary64.
  • Decimal point is '.'; no thousands separators, no locale formatting.

Angle print (must)

  • theta_deg is printed with exactly theta_prec fractional digits using round-half-to-even (banker’s rounding).
  • Default theta_prec = 5 (may be overridden by kv:theta_prec).
  • Compare angles as strings after formatting.
  • Example: with theta_prec=5, print 163.48750 not 163.4875.

Digest fields (must)

  • sha256(file) and chain are lowercase 64-hex strings: [0-9a-f]{64}.
  • Do not include 0x prefixes, spaces, or uppercase hex.

ASCII discipline (must)

  • Any string that is hashed is the exact ASCII bytes of the concatenation shown in the spec.
  • Example for a chain step: hash ascii(chain_{k-1} + "|" + stamp_core) (7-bit ASCII, literal |, no extra spaces, no Unicode punctuation).

Stamp line shape (must)

  • Single line, pipe-separated, no leading/trailing separators, no internal spaces:
    SSMCLOCK1|iso_utc|rasi_idx|theta_deg|sha256(file)|chain
  • If a tail exists, it starts with |kv: and contains ;-separated key=value pairs (ASCII).
    Example: ...|chain|kv:algo=sha256;chain_algo=sha256;theta_prec=5;float=ieee75464

Roll-up join for anchors (must, when anchoring)

  • Sort stamps by the tuple (iso_utc, stamp_core, chain) (lexicographic).
  • Join as the literal ASCII string "Stamp_1|...|Stamp_n" — one | between full stamp lines, no leading/trailing separator.
  • Compute: rollup_D = sha256( ascii(joined_string) ).

Leap-second handling (must)

  • 23:59:60 is forbidden. Producers must not stamp at a leap second; verifiers must reject a stamp claiming :60.

Quick conformance checklist

  • iso_utc looks like ...Z and has exactly seconds precision.
  • theta_deg prints with the required digits and banker’s rounding.
  • Digests are 64-hex lowercase.
  • All hash inputs are exact ASCII of the shown concatenations.
  • The final stamp is one line, with | as the only separator.

Navigation
Back: SSM-Clock Stamp – Append-only Chain (1.4)
Next: SSM-Clock Stamp – Time Semantics & Anchors (1.6)