# Anchored evaluations

Rightshold evaluates itself the way an adversary would: simulated agents — well-behaved, confused and fraudulent — are driven over the same surfaces real agents use, and scored against expectations written before the run. When an evaluation completes, its outcome is anchored in the public ledger: the scenario counts, the scores, and the SHA-256 fingerprints of the frozen report and the machine-readable results. The anchor cannot be edited or removed, so the published record can always be checked against it.

The scenarios run against a separate copy of the same code that serves this site, with accounts created for the evaluation — never against live data. The ledger records real events only, so what is anchored is the outcome and the fingerprints, never scenario data. Frozen copies of each report and its results are kept with the evaluation record; any copy presented later can be checked against the anchored fingerprint before it is trusted.

- Attestations (JSON): GET https://www.rightshold.com/v1/ledger/entries?type=evaluation.anchored
- This list (JSON): GET https://www.rightshold.com/v1/evaluations
- The ledger: https://www.rightshold.com/ledger

## Evaluations (2)

- **adversarial-evaluation** (`rightshold-adversarial-eval@1`) · ran 2026-10-19T07:44:01.988Z → 2026-10-19T07:44:14.788Z · code `4ba6b44927dd` · anchored 2026-10-19T07:44:17.445Z as ledger entry 14 (block 12) · https://www.rightshold.com/v1/ledger/entries/14
  - 24 scenarios — 24 passed · 0 partial · 0 failed · 0 errors · 403 checks, 0 failed
  - Report SHA-256: `6137ff6c38e69427c4bb4b7705548c088bf6b244333b7846d678261a3a7cbbad`
  - Results SHA-256: `16562d8aa8519113b85c296f1fed718cfab74a07adeed3ccf7f849f6fe21cc57`
- **adversarial-evaluation** (`rightshold-adversarial-eval@1`) · ran 2026-10-18T23:54:52.346Z → 2026-10-18T23:55:10.266Z · code `80a77df44f85` · anchored 2026-10-19T04:23:46.226Z as ledger entry 13 (block 11) · https://www.rightshold.com/v1/ledger/entries/13
  - 24 scenarios — 24 passed · 0 partial · 0 failed · 0 errors · 403 checks, 0 failed
  - Scores: Bad-actor prevention 91 · Intent understanding 88 · Material help 90
  - Report SHA-256: `47436759d254cf4e801cf303e95807d7b6748c49079f4fbc964dcf6cf0e23adf`
  - Results SHA-256: `0f30d0df9146b35ce5c78dadea0040300fdaf743d4086d26e31656b698e1ce06`

## Verify an anchored evaluation

1. Read the entry: GET https://www.rightshold.com/v1/ledger/entries/{seq} returns the anchored payload — counts, scores and both fingerprints — with a Merkle inclusion proof against its signed block.
2. Verify the chain: GET https://www.rightshold.com/v1/ledger/verify recomputes every block from the first one: hashes, links and the issuer's signatures (keys at https://www.rightshold.com/.well-known/jwks.json). If any anchored entry had been altered, verification would fail.
3. Hash the artifacts: run SHA-256 over the frozen report and the frozen results and compare with report_sha256 and results_sha256 in the entry. A match proves the artifacts are exactly the ones that were anchored; any later edit breaks it.

Human page: https://www.rightshold.com/evaluations
