Trinity Accord Cold-Start Recovery Guide

Purpose: This document is a third-party-executable cold-start recovery guide for the Trinity Accord repository. It enables any skeptical third party to rebuild the current valid state from canonical sources and verified mirrors, without trusting GitHub main, GitHub Pages, or maintainer accounts.

Scope: Recovery of repository-maintained state. This guide does not prove philosophical claims, investment value, religious authority, or independent attestation.

Published-baseline rule: A repository capsule restores the exact Git-tracked publication baseline named by its manifest. It is not a live mirror and must not be described as byte-identical to a later moving GitHub main without an explicit freshness comparison.

Stable recovery catalog: preservation/recovery-catalog.json is embedded in the core source tree. It identifies the core concept DOI and both external-annex version DOIs, so complete DOI discovery does not depend on GitHub, maintainer memory, or a post-publication state commit.

Claim registry: Before reporting recovered public claims, check api/claim-registry.json for source/evidence/limitations/corrections path. Notarized evidence does not by itself count as formal independent attestation. Scarcity/firstness language is bounded framing, not proof of absolute firstness.


Threat Model

The following threats must be considered during recovery:


What This Guide Does and Does Not Prove

This guide can verify:

This guide does not prove:


Minimal Trusted Bootstrap Root

The minimal trust root is:

  1. The three Bitcoin inscription numbers and full Ordinals inscription IDs.
  2. The Bitcoin authority address.
  3. The authority manifest canonical hash bound by the BTC signature.
  4. The BTC signature manifest.
  5. The corrections-index for repository-maintained current status.

GitHub main, GitHub Pages, GitHub Releases, Arweave, IPFS, NFTs, Echo records, and AI responses are non-amending mirrors.

Bitcoin Originals

Role Inscription Number Ordinals Inscription ID
Protocol / Axioms 97631551 e40dfb2aa78cbccca88f749e9ec5cbe3c1df503273d73c72297863ae0d1d8343i0
Covenant of the Flaw 98369145 90116f35de075074f5e5d1fbdda69a646a124e2287d7d58e2520317098cd4258i0
The Trinity Accord / Meta-record 98387475 4d1c8f5ea8e8bae2982b42de6cc79deda3d243a21010a2888546e62ed7192c8ci0

Bitcoin Authority Address

bc1ppmwvyxekh44m35x43k55z7r59nn33v8w2xmvu6s6ar4zyx57sxestxq0jf

Required Tools and Versions

Tool Version / Source
Python 3.x (supported version)
Node.js See .node-version (currently 22.22.1)
pip dependencies See requirements-ci.txt
OpenTimestamps client Pinned in requirements-ci.txt (currently 0.7.2)
git Any recent version
curl Any recent version
sha256sum or shasum System-provided
tar/gzip System-provided
gh CLI Optional, for GitHub Release access

Install commands:

node --version
python3 --version
python3 -m pip install -r requirements-ci.txt

Recovery Status Vocabulary

Status Meaning
full_recovery All required materials verified; corrections-index checked; no required component missing.
partial_recovery Some mirrors/assets unavailable, but enough canonical/digested material remains to verify a subset. Must not be reported as full.
availability_only A mirror responded, but content was not hash-verified.
unverified_mirror Content retrieved but no expected digest/signature was checked.
failed_recovery Required canonical or digest-bound material missing/mismatched.
historical_only Artifact exists but is not current due to corrections-index or lifecycle status.
revoked / superseded / invalidated Must not be treated as current.

Phase 0 — Do Not Trust GitHub Main or Pages

Start by treating GitHub main, GitHub Pages, and API JSON as untrusted mirrors. Use them only as discovery aids until verified against canonical/digested material.

Trust nothing from GitHub until verified against Bitcoin Originals, signed manifests, and digest manifests.

Phase 0A — Bootstrap the repository from the Zenodo preservation capsule

The Repository Preservation Capsule is the GitHub-independent bootstrap for the exact published Git-tracked repository baseline identified by its manifest. It is a separate Zenodo version series from the research paper DOI and the Weekly Continuity dataset.

Use preservation/repository-preservation-state-v2.json as the current machine state and preservation/recovery-catalog.json as the stable DOI discovery entrypoint. The older preservation/zenodo-state.json is retained only as historical v1 compatibility. A published version contains:

After downloading only the standalone restore program from the Zenodo record:

python3 restore-trinity-accord.py \
  --zenodo-record-id <REPOSITORY_CAPSULE_RECORD_ID> \
  --output-dir ./restored-trinity-accord

Or, after downloading all eight record files into one directory:

python3 restore-trinity-accord.py \
  --deposit-dir ./repository-preservation-capsule \
  --output-dir ./restored-trinity-accord

The program requires a new/empty output path, verifies the exact eight-file package, clones and checks the safe Git recovery bundle, independently extracts and compares the source snapshot, verifies every tracked file, executable mode, ref, and required recovery checkpoint, runs git fsck --full --strict, removes the temporary bundle remote, and emits recovery-report.json. No GitHub access is required after the capsule is downloaded.

Important scope boundary:

The earlier software DOI 10.5281/zenodo.21675727 contains an older GitHub source ZIP. It can recover that historical working tree, but it has no complete Git history and predates current Gateway and preservation work. It must not be described as the current repository capsule. The paper DOI 10.5281/zenodo.21699878 is not a repository backup.


Phase 1 — Verify the Canonical Bitcoin Originals

Fetch inscription data from independent Bitcoin/Ordinals sources. Confirm inscription IDs match api/authority.json and this document.

Do not use website text as canonical.

Manual verification:

  1. Look up inscription ID 97631551 on an independent Ordinals explorer (e.g., ordinals.hiro.so, ordiscan.com).
  2. Confirm the content matches the Protocol / Axioms text.
  3. Repeat for 98369145 (Covenant of the Flaw) and 98387475 (The Trinity Accord / Meta-record).
  4. Confirm TXIDs match the table above.

Phase 2 — Verify the Authority Manifest and BTC Signature

python3 scripts/validate_authority_manifest.py archive/authority-manifest/authority.jcs.json
python3 scripts/validate_btc_signature_manifest.py archive/btc-signature/btc-signature.json
python3 scripts/validate_eth_witness_manifest.py archive/eth-witness/eth-witness.json

Key points:


Phase 3 — Verify Trust-root Policy and Historical Roots

python3 scripts/validate_trust_root_policy.py archive/trust-root-policy.json

The trust-root policy defines the canonical authority boundary and historical root transitions.


Phase 4 — Verify Digest Manifests

python3 scripts/test_digest_manifest_json_csv_crosscheck.py
python3 scripts/test_archive_hash_manifest_consistency.py
python3 scripts/test_evidence_manifest_stats_sync.py

Key point: digest-manifest.json/csv are integrity manifests, not external availability proofs. They verify that local files match expected hashes, not that external mirrors are complete.


Phase 5 — Check Corrections / Revocation State

This is a mandatory step. Do not skip.

python3 scripts/validate_corrections_index.py
cat api/corrections-index.json

Before accepting any recovered report, release, Echo, attestation, or public API state as current, check corrections-index.

If corrections-index marks an artifact revoked/superseded/invalidated/historical_only, do not treat it as current even if its old hash verifies.


Phase 6 — Recover from GitHub Releases

GitHub Releases are mirrors, not canonical authority. Release verification must use RELEASE-MANIFEST.json and verify-release-assets.mjs.

GITHUB_TOKEN=<optional-read-token> node scripts/verify-release-assets.mjs --release-tag <TAG>

A PASS report is current only if:


Phase 7 — Recover from Arweave Mirrors

Arweave verified recovery requires expected hash. Availability-only response is not verified recovery.

Related scripts/workflows:

For the native Record-Chain Weekly Continuity series, use the cold-start CLI. The first weekly version must be a complete full_snapshot; later versions must be contiguous incremental_delta payloads. Repeat the source option in chronological series order; the verifier sorts by native record count and rejects missing baselines, gaps, divergent chain tips, broken Arweave transaction links, malformed OTS evidence, and byte/hash mismatches.

From repository-preserved six-file deposit packages:

python3 scripts/restore_weekly_continuity_archive.py \
  --deposit-dir record-chain/weekly-continuity-deposits/<BASE_ARCHIVE_ID> \
  --deposit-dir record-chain/weekly-continuity-deposits/<DELTA_ARCHIVE_ID> \
  --output-dir /tmp/trinity-weekly-continuity-restore

From public Zenodo record versions:

python3 scripts/restore_weekly_continuity_archive.py \
  --zenodo-record-id <BASE_RECORD_ID> \
  --zenodo-record-id <DELTA_RECORD_ID> \
  --output-dir /tmp/trinity-weekly-continuity-restore

From public Arweave transactions:

python3 scripts/restore_weekly_continuity_archive.py \
  --arweave-txid <BASE_TRANSACTION_ID> \
  --arweave-txid <DELTA_TRANSACTION_ID> \
  --output-dir /tmp/trinity-weekly-continuity-restore

The output directory must be new or empty. The command never writes into the repository and emits recovery-report.json. Its full_recovery result is scoped to the native Record-Chain bytes and embedded Weekly Continuity evidence; Phases 1–5 and the corrections-index are still required for a full authority-level recovery claim.

Other historical Arweave mirror classes still require their expected hashes from digest manifests; do not generalize the Weekly Continuity CLI result to unrelated payloads.


Phase 8 — Recover from IPFS / CAR / NFT Backups

NFT/CAR backups are recovery mirrors, not authority. NFT ownership does not imply governance or canonical authority. root_cid may be metadata-boundary only unless explicitly verified.

python3 scripts/validate_token_index.py --self-test
python3 scripts/test_download_nft_cars_source_binding.py
python3 scripts/test_download_nft_cars_expected_count_gate.py
python3 scripts/test_download_nft_cars_root_cid_boundary.py

Phase 9 — Rebuild Public API / Echo Index / Homepage

python3 scripts/generate_echo_index.py
git diff --exit-code api/echo-index.json

python3 scripts/generate_public_home_status.py --check
python3 scripts/test_home_public_status_sync.py
python3 scripts/validate_public_api_metadata.py

Public API/homepage are recoverable outputs, not authority. If regenerated output differs from committed output, treat as drift requiring investigation.


Phase 10 — Produce a Recovery Report

Recommended output format:

{
  "schema": "trinity-accord.recovery-report.v1",
  "recovery_status": "full_recovery | partial_recovery | failed_recovery",
  "bootstrap_root_verified": true,
  "authority_manifest_verified": true,
  "btc_signature_verified": true,
  "digest_manifests_verified": true,
  "corrections_index_checked": true,
  "release_assets_verified": "pass | fail | not_checked",
  "arweave_recovery": "verified | partial | unavailable | not_checked",
  "ipfs_car_recovery": "verified | partial | unavailable | not_checked",
  "does_not_prove": [],
  "limitations": []
}

Partial Recovery Rules


Failure Modes

Mode Description Action
Missing authority manifest archive/authority-manifest/authority.jcs.json not found Cannot proceed; recovery failed
BTC signature mismatch Bound hash does not match authority manifest Possible tampering; recovery failed
Missing corrections-index api/corrections-index.json not found Cannot determine current status; recovery incomplete
Digest mismatch File hash does not match digest manifest File may be corrupted or tampered; investigate
Release asset mismatch Release manifest hash does not match downloaded asset Possible release compromise; do not trust
All mirrors unavailable No Arweave/IPFS/NFT sources respond Recovery limited to local/git materials

Quick Command Checklist

# 0. Setup
python3 -m pip install -r requirements-ci.txt
node --version

# 1. Verify authority manifest
python3 scripts/validate_authority_manifest.py archive/authority-manifest/authority.jcs.json

# 2. Verify BTC signature
python3 scripts/validate_btc_signature_manifest.py archive/btc-signature/btc-signature.json

# 3. Verify ETH witness (secondary)
python3 scripts/validate_eth_witness_manifest.py archive/eth-witness/eth-witness.json

# 4. Verify trust-root policy
python3 scripts/validate_trust_root_policy.py archive/trust-root-policy.json

# 5. Verify digest manifests
python3 scripts/test_digest_manifest_json_csv_crosscheck.py
python3 scripts/test_archive_hash_manifest_consistency.py

# 6. Check corrections-index (MANDATORY)
python3 scripts/validate_corrections_index.py
cat api/corrections-index.json

# 7. Verify release assets (if recovering from release)
GITHUB_TOKEN=<optional> node scripts/verify-release-assets.mjs --release-tag <TAG>

# 8. Rebuild public outputs
python3 scripts/generate_echo_index.py
python3 scripts/generate_public_home_status.py --check
python3 scripts/validate_public_api_metadata.py

# 9. Run full recovery readiness audit
python3 scripts/audit_recovery_readiness.py

Appendix A — Canonical IDs and Files

Bitcoin Originals Inscription Numbers

Bitcoin Authority Address

bc1ppmwvyxekh44m35x43k55z7r59nn33v8w2xmvu6s6ar4zyx57sxestxq0jf

Required Recovery Files

Recovery Entrypoints


Appendix B — Expected Outputs

After a successful full_recovery, you should have:

  1. Authority manifest verified against BTC signature
  2. Trust-root policy verified
  3. Digest manifests cross-checked (JSON ↔ CSV)
  4. Corrections-index checked — no required component revoked/superseded
  5. Release assets verified against release manifest (if applicable)
  6. Public API/homepage regenerated and consistent
  7. Recovery report produced

Appendix C — Manual Verification Without GitHub

If GitHub is entirely unavailable:

  1. Prefer the latest verified Repository Preservation Capsule Zenodo version and run its standalone restore command. If unavailable, obtain a candidate repository from an Arweave mirror, IPFS CAR, or NFT backup.
  2. Verify the authority manifest hash against the BTC-signed binding.
  3. Verify file hashes against digest manifests.
  4. Check the corrections-index embedded in the recovered copy.
  5. Cross-reference inscription IDs on independent Bitcoin explorers.
  6. If BTC signature verification passes and corrections-index is present, you have a recoverable state.
  7. If BTC signature verification fails, do not trust the recovered copy.