> ## Documentation Index
> Fetch the complete documentation index at: https://docs.algovoi.co.uk/llms.txt
> Use this file to discover all available pages before exploring further.

# Verify it yourself

> Do not trust, verify. Clone the AlgoVoi conformance corpus and reproduce every vector byte for byte from raw preimages, offline, in Python or Node.

The canonicalisation substrate is **verify-it-yourself**. Nothing on this site asks you to take a hash on
trust: every published value recomputes from its own preimage with RFC 8785 (JCS) plus SHA-256, and the
corpus ships the runners that prove it. Clone it, run two commands, and watch the full [conformance corpus](/canonicalisation-substrate) reproduce byte-for-byte on your machine, offline.

## One clone, two commands (Python)

```bash theme={null}
git clone https://github.com/chopmob-cloud/algovoi-jcs-conformance-vectors
cd algovoi-jcs-conformance-vectors
pip install algovoi-substrate
python composition/verify_corpus.py
python composition/first_principles_check.py
```

`verify_corpus.py` runs every set's reference runner and reports each one reproducing byte-for-byte, plus
the composition keystones. `first_principles_check.py` is the stronger check: it rebuilds the JCS bytes
**by hand** and hashes them with **stdlib SHA-256 only**, so the published values are proven without our
canonicalizer being invoked at all.

<Note>
  You should see `ALL RUN SETS + COMPOSITION KEYSTONE REPRODUCE BYTE-FOR-BYTE` from the first command and
  `FIRST-PRINCIPLES RESULT: 11/11 checks PASS ... No AlgoVoi canonicalizer was invoked` from the second.
</Note>

## Node / TypeScript

```bash theme={null}
npm install @algovoi/substrate
node vectors/spend_decision_v1/runner_node.js vectors/spend_decision_v1/spend_decision_v1.json
```

Each set ships a `runner_node.js` alongside its `runner_python.py`. Both check the **same published
expected hashes**, so a pass in each language is byte-for-byte Python and TypeScript parity, not two
separate claims.

## What a clone proves

| Claim                                           | How you check it                                    | Result                                   |
| ----------------------------------------------- | --------------------------------------------------- | ---------------------------------------- |
| Every published vector reproduces               | `verify_corpus.py`                                  | All sets byte-for-byte                   |
| Values are not an artifact of our canonicalizer | `first_principles_check.py`                         | 11/11, hand-written JCS + stdlib SHA-256 |
| Python and TypeScript agree                     | run a set's `runner_python.py` and `runner_node.js` | identical expected hashes                |
| The construction holds across the field         | the 8-implementation matrix                         | 880/880 directly executed                |

## Independence

Fourteen sets were directly executed across **eight independent reference implementations** (Python,
TypeScript, Go, Rust, Java, PHP, .NET, Ruby), including the RFC 8785 author's own Java implementation, at
**880/880** agreements (cumulative). When eight implementations that share no code all produce the same
bytes, the construction is a property of the standard, not of any one library.

## What you are verifying

The corpus spans the receipt lifecycle, settlement and action binding, the `.epi` evidence format, RFC
9421 receipt evidence, adversarial fixtures, and the open pre-payment decision chain
(`spend_decision_v1`: the `decision_ref` construction for ALLOW, DENY, and REFER, with its hash-linked
chain). Authoritative per-set counts live in the corpus `manifest.json`.

<CardGroup cols={2}>
  <Card title="The conformance sets" icon="list-check" href="/conformance-vectors">
    The full catalogue of vector sets and what each one anchors.
  </Card>

  <Card title="How it compares" icon="scale-balanced" href="/substrate-comparison">
    Bytes decide: how the substrate holds up where coarser approaches drop data at scale.
  </Card>

  <Card title="The corpus repo" icon="github" href="https://github.com/chopmob-cloud/algovoi-jcs-conformance-vectors">
    Clone it, read the runners, reproduce everything offline.
  </Card>

  <Card title="The substrate package" icon="cube" href="/canonicalisation-substrate">
    `algovoi-substrate` (Python) and `@algovoi/substrate` (npm): the canonicalizer the runners use.
  </Card>
</CardGroup>
