# Verify Your PAX-Coder Clone This document explains how to verify that your clone of PAX-Coder matches an official release. ## Why Verification Matters When you clone PAX-Coder from GitHub, you receive files over the network. An official PAX-Coder release is cryptographically signed with a Sovereign Node Key. This verification system lets you confirm: ✓ **Integrity** — Files have not been modified ✓ **Authenticity** — This is an official release from SNAPKITTYWEST ✓ **Timestamp** — The release existed at a specific point in time ✓ **Commitment** — Every tracked file matches the official manifest ## Quick Start After cloning: ```bash git clone https://github.com/SNAPKITTYWEST/pax-coder.git cd pax-coder ./scripts/verify-clone ``` If verification passes, you'll see: ``` ======================================== STATUS: AUTHENTIC PAX-CODER RELEASE ======================================== ``` If verification fails, you'll see: ``` ======================================== STATUS: VERIFICATION FAILED ======================================== ``` **Do NOT use a release that fails verification.** ## What Verification Checks The `verify-clone` script performs a hard gate with 9 critical checks: ### [1] Release Metadata Checks that `sovereign/release.json` exists and is valid. ### [2] Git Commit Verifies your clone is at the exact git commit specified in the release. ```bash git rev-parse HEAD # Should match: "git_commit" in sovereign/release.json ``` ### [3] Release Version Checks that `VERSION` file matches the release version. ### [4] Canonical Manifest Reads the official file manifest for this release. ### [5] File Integrity Verifies every tracked file's SHA-256 hash against the manifest. If any file is modified, verification fails. ### [6] Manifest Commitment Computes the SHA-256 of the entire manifest. Must match the value in `sovereign/release.json`. ### [7] Node Key Fingerprint Verifies the public Ed25519 key matches the release. ### [8] Release Signature Verifies the Ed25519 signature on the manifest. Uses the public key from the release to check authenticity. ### [9] Prior-Art Timestamp Checks that a prior-art record exists with a UTC timestamp. ## Understanding the Results ### PASS All 9 checks passed. The clone is authentic and unmodified. You can safely use PAX-Coder's proofs, kernels, and specifications. ### FAIL One or more checks failed. Possible reasons: - **Commit mismatch** — Your clone is not at the official release commit - **Files modified** — Someone or something has modified tracked files - **Files missing** — Expected files are not present - **Signature invalid** — The release signature does not verify - **Manifest corrupted** — The release manifest is invalid JSON **Do not trust a clone that fails verification.** #### Common Failure Scenarios **"Commit mismatch"** - Your clone is on a different branch - Your clone is ahead of the release - Someone force-pushed to the repository **Solution:** Clone fresh from the official repository. **"Files modified"** - You edited tracked files - A tool or script modified files - Network corruption during clone **Solution:** Re-clone or restore files from git. **"Signature invalid"** - The release was tampered with - You're using an unofficial clone - The public key is incorrect **Solution:** Clone from the official GitHub repository only. ## Manual Verification If you want to verify manually instead of using the script: ### 1. Get the Release Information ```bash cat sovereign/release.json | jq . ``` You'll see: - `repository` — SNAPKITTYWEST/pax-coder - `release_version` — e.g., 1.0.0 - `git_commit` — The exact commit hash - `manifest_sha256` — The file manifest hash - `node_id` — The signer's node identity - `node_public_key_hex` — The Ed25519 public key - `signature_hex` — The signature (hex-encoded) ### 2. Verify the Git Commit ```bash git rev-parse HEAD # Compare with release.json: git_commit ``` ### 3. Verify File Integrity ```bash # For each file in sovereign/manifest-VERSION.json: sha256sum PATH/TO/FILE # Compare with the value in the manifest ``` ### 4. Verify the Manifest Commitment ```bash sha256sum sovereign/manifest-1.0.0.json # Compare with release.json: manifest_sha256 ``` ### 5. Verify the Signature Extract the public key and convert to PEM: ```bash # Get public key hex from sovereign/release.json PUB_KEY_HEX="..." echo "$PUB_KEY_HEX" | xxd -r -p > /tmp/pk.der # Get signature hex and convert to binary SIGNATURE_HEX="..." echo "$SIGNATURE_HEX" | xxd -r -p > /tmp/sig.bin # Verify openssl dgst -sha256 -verify <(openssl pkey -inform DER -pubin -in /tmp/pk.der) \ -signature /tmp/sig.bin sovereign/manifest-1.0.0.json ``` If the signature is valid: ``` Verified OK ``` ## How Releases Are Created Official PAX-Coder releases are created with: ```bash cd sovereign ./generate_release.sh 1.0.0 ``` This creates: - `release.json` — Public release metadata + signature - `manifest-1.0.0.json` — File manifest Both files are committed to git and published on the GitHub release page. The **private key is never published** and never appears in the clone. ## What Verification Does NOT Prove **Important:** Verification proves integrity and authenticity, but: ✗ **Does NOT prove legality** — The code is still under the tri-license (BSL-1.1 / AGPL-3.0 / MPL-2.0) ✗ **Does NOT prove correctness** — Verified code could still have bugs ✗ **Does NOT prove safety** — Always review untrusted code ✗ **Does NOT prove Bitcoin confirmation** — Unless explicitly stated See [SOVEREIGN_NODE.md](SOVEREIGN_NODE.md) for the complete security model. ## If Verification Fails ### Step 1: Check Your Git State ```bash git status git log --oneline -5 ``` If you've made local changes, the clone is no longer official. ### Step 2: Re-Clone ```bash cd /tmp git clone https://github.com/SNAPKITTYWEST/pax-coder.git pax-clean cd pax-clean ./scripts/verify-clone ``` If the fresh clone verifies, your original clone was modified. ### Step 3: Report a Security Issue If a fresh clone from the official repository still fails verification: **Email:** jessica@collectivekitty.com **Subject:** `[SECURITY] PAX-Coder Clone Verification Failed` **Include:** - Output of `./scripts/verify-clone` - Your git version - Your OS and platform - Steps you took ## FAQ **Q: Is this blockchain-based?** A: No. Verification uses cryptographic signatures. Optional: Bitcoin anchoring via OpenTimestamps. **Q: What if the GitHub repository is hacked?** A: If the release files are modified on GitHub, verification will fail. Clone from a backup source. **Q: Can I verify without running a script?** A: Yes. Manual verification is documented in "Manual Verification" section above. **Q: What if I don't have `openssl`?** A: The verification script requires: `bash`, `git`, `jq`, `openssl`, `sha256sum`. These are standard on Linux/macOS. **Q: Should I trust verification if it passes?** A: Verification proves this is an authentic, unmodified PAX-Coder release. Still review the code before use—verification is not a code review. **Q: Can I modify the code after verification?** A: Yes. Verification confirms the initial state. You can modify files locally. Re-verification will fail (as expected). --- **For more details:** - [SOVEREIGN_NODE.md](SOVEREIGN_NODE.md) — Security model and what's proved - [SECURITY.md](SECURITY.md) — Incident response and key management - [sovereign/README.md](sovereign/README.md) — Full Sovereign Node Key system guide --- **Last updated:** 2026-08-18 **Status:** Production release verification system **License:** BSL-1.1 / AGPL-3.0 / MPL-2.0