Skip to main content

Verify the public record

The browser verifier and command-line verifier use the same packages/verify implementation. Anyone can run the public checks without a wallet or secret.

Open the verifier​

Use Verify tender 1, or run from the source checkout:

pnpm verify --tender 1 --network testnet --contract tenders-v1.sealedchoice.testnet

The recorded final demos each passed 10/10, with zero failures and zero skips. Internet access is required to fetch chain state, the bundle and the pinned evaluator artifact.

The ten checks​

CheckWhat is compared
1. RubricCanonical rubric bytes against the published hash
2. Publication timeTender creation timestamp against bid submission time
3. Frozen setCiphertext hashes, leaves and Merkle root against the frozen set and result
4. Evaluator artifactDownloaded WASM bytes against the tender's pinned SHA-256
5. Accepted resultExactly one accepted evaluation attempt
6. Bundle integrityExact bundle bytes against the accepted on-chain hash, plus internal result bindings
7. Model coverageEach eligible bid's configured model calls or recorded errors
8. Model signaturesEIP-191 signature recovery and binding to model request/response hashes
9. Attestation fieldsRecorded signing addresses and nonce against the run's commitments
10. RankingNon-increasing public totals, eligible entries before ineligible entries, unique indices and frozen-set entry count

PASS, FAIL and Not checked​

PASS means the evidence examined agrees. FAIL means it contradicts the checked constraint. Not checked or SKIP means the available evidence cannot establish a verdict.

The CLI exits non-zero for failures or a loading error. A skipped check alone does not make its exit code non-zero. For a strict review, inspect the totals and require passed: 10, failed: 0, skipped: 0; --json provides these fields. --no-artifact deliberately skips the artifact download, so it is not a full verification.

What these checks do not prove​

  • They do not establish that a newly rebuilt source tree produces the pinned WASM. That needs a separate reproducible-build comparison.
  • Attestation-field consistency and signature recovery do not implement complete Intel TDX or GPU certificate-chain verification.
  • Public hashes do not let an unrelated visitor read a model conversation or recalculate every private criterion score.
  • The public ranking check does not recompute private totals, enforce the price/index tie-breaks or establish that the result status matches its flags. Deeper score and tie-break checks require the private report.
  • A valid ranking does not establish that the rubric is appropriate, that supplier claims are true or that a model's judgment is good.
  • These checks do not remove the retained contract-key and secret-owner powers described in security.

Private reader verification​

A bidder can open its debrief; a committee member can open the full report. The browser first verifies the accepted result and raw bundle hash. It then decrypts the appropriate envelope and checks the plaintext hash, signed request/response hashes and recomputed criterion scores and total.

Only those readers have the raw text and model conversations required for that deeper check. The signed hashes publicly commit the bytes without exposing them.

Troubleshooting​

An RPC outage or unavailable bundle can prevent verification. Retry later and read the specific row's explanation. An unavailable bundle is a real availability limit. Do not substitute an example fixture for a failed live check.

For a historical tender, specify the contract it belongs to. The same tender number on another contract is a different record.