Skip to content

Portable evidence · standard library only · offline

Take the evidence with the claim

An Evidence Capsule is one JSON file containing a typed claim, the exact bytes it cites, machine-checkable relationships, and the limitations a reader must carry with it. Verification fetches nothing and executes nothing.

Exact bytes

Every artifact carries its SHA-256 and byte size. Inline artifacts travel as base64; local path artifacts remain confined to an explicitly supplied stable root.

Honest proof scope

The report separates content identity, artifact integrity, derivation checks, ledger membership and anchor-envelope binding. Natural-language truth and producer identity are not silently inferred.

Portable claims

Journalists, researchers and agents can exchange the evidence object without granting it agency. URIs and intents are inert provenance and advice, never commands.

Verify the frozen example

One command, no key and no network

Clone the public repository and run the dependency-free verifier against the frozen Palimpsest vector:

git clone https://github.com/beepboop2025/palimpsest
cd palimpsest
python3 scripts/evidence_capsule.py verify \
  protocol/test-vectors/palimpsest-erasure-v1.json

Exit code 0 means the bounded v1 checks passed. Exit code 1 means a well-formed report contains a failed check; 2 means the input or command could not be processed.

Create from published Palimpsest data

Export an exact sealed reading

The adapter refuses to invent a seal. It emits only when the complete reading matches one ledger entry and a structurally valid OpenTimestamps envelope binds an anchored prefix containing that entry.

python3 scripts/evidence_capsule.py palimpsest \
  --reading readings/censored-planet-latest.json \
  --source censored-planet \
  --output censored-planet.capsule.json

python3 scripts/evidence_capsule.py verify \
  censored-planet.capsule.json

The download above is a frozen conformance example with a stable content identity, not a moving “latest” alias. Current readings change on their publication schedule, so generate a capsule from the checked-out published state when you need a current evidence object. Capsule creation is a trusted local build step: use only a stable checkout and inputs that an adversarial local process cannot modify while the adapter runs.

ScamShield private bridge

Preserve the assessment without publishing the message

The local ScamShield bridge builds a private Evidence Capsule from structured detector, threat-family and provenance claims. Its public counterpart is scamshield-intelligence-pack/v1 version 2026-08-08.2, with 18 reviewed sources and 8 typologies. Raw Telegram text is represented by its SHA-256 and is not sent by default. The capsule may keep exact indicators and matched terms for authorized review, but those fields never pass into the public intelligence pack or outward review candidate.

Private capsule

Stores structured claims, limitations, the original-message digest and any exact evidence needed for authorized local review. A sampled investigative lead declares declared-nonrecomputable-v1 instead of pretending the larger ranking is present.

Public candidate

Keeps broad tier and threat-family relationships, indicator counts, pseudonymized source and limitations. It omits indicator values, matched fragments, messages and owner-only liquidity values.

Human decision

Every outward candidate says HUMAN_REVIEW_REQUIRED. The feed writes JSONL to stdout; it does not publish, call a webhook or open a network connection.

Read the result precisely

What ok means, and what it does not mean

A sampled or bounded investigative lead can preserve the exact source bytes without pretending to reproduce a larger ranking. Evidence Capsule v1 records that boundary with declared-nonrecomputable-v1: the derivation must state why it cannot be rerun from the capsule alone, and the verifier reports the result as partial rather than verified. This behavior is documented in the Palimpsest-local protocol content model.