# SOVEREIGN.md — snapkitty-sovereign-addr Covenant ## Sovereign Addressing Standard **SNAPKITTY-SOVEREIGN-ADDR-1** This crate implements non-recursive artifact addressing for the SnapKitty ecosystem. ## Core Thesis ``` Same semantic artifact. Same canonical bytes. Same sovereign address. Same WORM receipt. ``` ## Algorithm 1. Validate JSON admissibility (non-recursive staged traversal) 2. Normalize all strings to Unicode NFC 3. Serialize canonical JSON (sorted keys, no whitespace) 4. Hash canonical bytes with SHA-256 5. Emit snapaddr:<64hex> 6. Generate WORM receipt 7. Never recurse in validation rules ## Invariants 1. **No Recursion**: All validation is staged traversal, never recursive 2. **Deterministic**: Same input always produces same output 3. **WORM Sealed**: Every artifact is write-once, read-many 4. **Fail-Closed**: Any error terminates processing 5. **Observable**: Every intermediate state is inspectable ## Rules - `artifact(A)` — Any JSON value is an artifact - `json_admissible(A)` — Artifact passes admissibility checks - `nfc_ok(A, N)` — All strings normalized to NFC - `snap_canonical(N, B)` — Canonical bytes produced - `sha256_digest(B, D)` — SHA-256 of canonical bytes - `snap_address(A, Addr)` — Sovereign address computed - `accepted(A, Addr)` — Artifact accepted - `rejected(A, Reason)` — Artifact rejected with reason - `worm_receipt(A, Addr, Seal)` — WORM receipt generated ## Seal ``` SNAPADDR-NONREC-001 Normalize. Canonicalize. Hash. Seal. Govern. Same artifact. Same address. No recursion. No borrowed thesis. ```