Purpose. Byte-accurate, copy-pasteable vectors to validate any implementation of SSM-Clock Stamp (SSM-CS). Everything is strict ASCII; all formulas appear in inline code.
Common parameters (apply to both variants)
- Seed:
chain_0 = "0"*64 - Times and angles (deterministic from UTC):
wrap360(x) = x - 360*floor(x/360)theta_deg = wrap360( (unix_seconds / 86400) * 360 )rasi_idx = floor(theta_deg / 30)
(printtheta_degwith exactly 5 fractional digits; IEEE-754 binary64, ties-to-even) - Chain rule:
chain_k = sha256( ascii(chain_{k-1} + "|" + stamp_core_k) ) - Stamp core:
stamp_core_k = "SSMCLOCK1|" + iso_utc + "|" + rasi_idx + "|" + theta_deg + "|" + sha256(file) - Full line:
SSMCLOCK1|iso_utc|rasi_idx|theta_deg|sha256(file)|chain - Daily roll-up (anchor):
rollup_D = sha256( ascii(Stamp_1 "|" ... "|" Stamp_n) )
(canonical sort by(iso_utc, stamp_core, chain); nokv:tail used here)
Variant A — LF newlines (\n)
File A bytes (hex): 68 65 6c 6c 6f 0a (ASCII: hello\n)sha256(fileA) = 5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03
iso_utc_1 = "2025-10-13T10:53:57Z" → theta_deg_1 = "163.48750" → rasi_idx_1 = 5stamp_core_1 = "SSMCLOCK1|2025-10-13T10:53:57Z|5|163.48750|5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03"chain_1 = e5243368aaaf8168f02927dd69e02276bce15aa96e261d17bae5ba0e8d315801
Stamp 1 (full line):SSMCLOCK1|2025-10-13T10:53:57Z|5|163.48750|5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03|e5243368aaaf8168f02927dd69e02276bce15aa96e261d17bae5ba0e8d315801
File B bytes (hex): 77 6f 72 6c 64 0a (ASCII: world\n)sha256(fileB) = e258d248fda94c63753607f7c4494ee0fcbe92f1a76bfdac795c9d84101eb317
iso_utc_2 = "2025-10-13T10:53:58Z" → theta_deg_2 = "163.49167" → rasi_idx_2 = 5stamp_core_2 = "SSMCLOCK1|2025-10-13T10:53:58Z|5|163.49167|e258d248fda94c63753607f7c4494ee0fcbe92f1a76bfdac795c9d84101eb317"chain_2 = d3d430dc505bbb149f39e372eb52542897cfae44a838e369af954f1d1a92a604
Stamp 2 (full line):SSMCLOCK1|2025-10-13T10:53:58Z|5|163.49167|e258d248fda94c63753607f7c4494ee0fcbe92f1a76bfdac795c9d84101eb317|d3d430dc505bbb149f39e372eb52542897cfae44a838e369af954f1d1a92a604
Daily roll-up over {Stamp 1, Stamp 2} (canonical order A then B):rollup_D = b9ebdfba5be3b374a5408b5e05a38b5e219209ad504a48052e687f263a578cbacount = 2
Variant B — CRLF newlines (\r\n)
File A bytes (hex): 68 65 6c 6c 6f 0d 0a (ASCII: hello\r\n)sha256(fileA) = cd2eca3535741f27a8ae40c31b0c41d4057a7a7b912b33b9aed86485d1c84676
iso_utc_1 = "2025-10-13T10:53:57Z" → theta_deg_1 = "163.48750" → rasi_idx_1 = 5stamp_core_1 = "SSMCLOCK1|2025-10-13T10:53:57Z|5|163.48750|cd2eca3535741f27a8ae40c31b0c41d4057a7a7b912b33b9aed86485d1c84676"chain_1 = 9a08d6a9c721ce6a6fb5dbf7c8ed61d6e9e151ae47fe14098f148e59932fe674
Stamp 1 (full line):SSMCLOCK1|2025-10-13T10:53:57Z|5|163.48750|cd2eca3535741f27a8ae40c31b0c41d4057a7a7b912b33b9aed86485d1c84676|9a08d6a9c721ce6a6fb5dbf7c8ed61d6e9e151ae47fe14098f148e59932fe674
File B bytes (hex): 77 6f 72 6c 64 0d 0a (ASCII: world\r\n)sha256(fileB) = 877cfffa459d1c11793b970dd94f9489ef2bf4d2e446acfafef690ee595422d0
iso_utc_2 = "2025-10-13T10:53:58Z" → theta_deg_2 = "163.49167" → rasi_idx_2 = 5stamp_core_2 = "SSMCLOCK1|2025-10-13T10:53:58Z|5|163.49167|877cfffa459d1c11793b970dd94f9489ef2bf4d2e446acfafef690ee595422d0"chain_2 = 883cbef4306a9dd61cac1bc867a7597f1cfcafb743628af348358b5520c5b47c
Stamp 2 (full line):SSMCLOCK1|2025-10-13T10:53:58Z|5|163.49167|877cfffa459d1c11793b970dd94f9489ef2bf4d2e446acfafef690ee595422d0|883cbef4306a9dd61cac1bc867a7597f1cfcafb743628af348358b5520c5b47c
Daily roll-up over {Stamp 1, Stamp 2} (canonical order A then B):rollup_D = 39a523aa059777fa18352f4e7aee9164d501b850019e6ff5a541b79387f73d99count = 2
How to use these vectors (quick check)
- Hash: recompute
h' = sha256(file_bytes)and compare tosha256(file)in each line. - Clock: from
iso_utc, computetheta_deg/rasi_idxand confirmrasi_idx == floor(theta_deg/30)and the printedtheta_degmatches exactly 5 decimals. - Chain: with
chain_0 = "0"*64, verifychain_k == sha256( ascii(chain_{k-1} + "|" + stamp_core_k) )for each record. - Roll-up: canonically sort by
(iso_utc, stamp_core, chain), join with literal|, and checkrollup_D == sha256( ascii(joined) ).
Notes. Keep all content 7-bit ASCII; | is the only delimiter; no spaces; all digests are lowercase 64-hex. Do not copy from rich editors—use raw bytes exactly as listed.
Navigation
Back: SSM-Clock Stamp – Q&A (12B)
Next: SSM-Clock Stamp – Hardware Profile (14)