{"presaid_spec":1,"service":"https://presaid.io","spec_human":"https://presaid.io/docs/verification-spec","endpoints":{"verify":"/api/v1/verify/{stamp_id}","verify_by_seq":"/api/v1/verify/by-seq?stream={stream_id}&seq={n}","profile":"/api/v1/profiles/{handle}","sitemap":"/sitemap.xml"},"canonicalization":{"encoding":"utf-8 json, keys sorted by utf-16 code unit, nfc strings, integers only, no whitespace","timestamps":"YYYY-MM-DDTHH:MM:SSZ","decimals":"-?(0|[1-9][0-9]*)(\\.[0-9]*[1-9])?"},"commitment":"sha256(canonical_payload || salt); 32-byte salt published at reveal","chain_link":"prev = previous stamp commit_hash; 32 zero bytes at seq 1; seq strictly +1","merkle":{"leaf":"sha256(0x00 || commit_hash)","node":"sha256(0x01 || left || right)","odd_nodes":"promoted unchanged","proof":"bottom-up [{side, hash}] where side names the sibling position"},"anchor":{"ledger":"base","transaction":"zero-value self-send; calldata == merkle_root","authoritative_time":"block timestamp (anchored_at)"},"reference_verifier":"docs/verify-independently.mjs (repository) — zero dependencies"}