Skip to main content

idemcore-verifier

verify

Check, without trusting us, that two machines produced bit-identical LLM inference.

Project site: https://idemcore.net

Idemcore is an integer-only inference engine: the same model, prompt, and settings give the same bits on an x86 laptop, an ARM phone, and NVIDIA GPUs from Turing to Hopper. Every token it scores or generates emits a 64-bit hash of the full logit vector and a 64-bit hash of the integer sampling table (CDF). A run log is a list of these hashes plus one chained digest (ALL).

This repository is the open half of Idemcore:

  • the log format and hash protocol (SPEC.md),
  • a small, dependency-free Python verifier (idemcore_verify/),
  • the measurement methodology (METHODOLOGY.md),
  • raw per-token logs from real cross-device runs (samples/) and the results table they back (RESULTS.md).

The inference kernel itself is not in this repository and is not open source. You do not need it to check a claim: the verifier only needs two logs.

Reproduce in 5 minutes

You need git and Python ≥ 3.9. No GPU, no model and no third-party package.

# 1. get the verifier and the sample logs (about 6 MB)
git clone https://github.com/idemcore/idemcore-verifier.git
cd idemcore-verifier

# 2. optional: a clean virtual environment and the `idemcore-verify` command
python3 -m venv .venv && . .venv/bin/activate
pip install .

# 3. recompute every published hash and re-check every published pair (~5 s)
python3 -m idemcore_verify samples        # same as: make verify  or  sh verify_samples.sh

# 4. check one pair yourself: x86-64 CPU vs NVIDIA L40S, gpt-oss-20b
python3 -m idemcore_verify compare samples/gpt-oss-20b/x86_64.log \
                                   samples/gpt-oss-20b/nvidia_l40s.log

# 5. the unit tests, including a tamper test
python3 -m unittest discover -s tests

Expected output of step 3:

checked 65 logs (448904 token rows) and 58 pairs
PASS: every published hash recomputes and every pair is bit-identical

and of step 4:

OK   samples/gpt-oss-20b/x86_64.log: 512 tokens, ALL 8ec348aaf3b4109c (recomputed 8ec348aaf3b4109c)
OK   samples/gpt-oss-20b/nvidia_l40s.log: 512 tokens, ALL 8ec348aaf3b4109c (recomputed 8ec348aaf3b4109c)
MATCH: 512/512 positions identical (mode exact; only-in-ref 0, only-in-cand 0)

Step 3 recomputes all 65 published digests in samples/HASHES.tsv from the shipped logs (about 450 000 token rows, including batched GPU logs) and re-checks all 58 pairs in samples/PAIRS.tsv. To prove the check is not a rubber stamp, edit any hex digit in a log and run it again: the chain breaks.

idemcore-verify samples looks for ./samples in the current directory; run it from the repository root, or pass --dir path/to/samples. make is not required; every make target is a one-line Python command.

Check a live answer from api.idemcore.net

The hosted API (https://api.idemcore.net/v1, OpenAI-compatible) attaches a receipt to every answer, and GET /v1/receipts/{id}/log returns that answer's per-token log. The API serves the public form of the log (log_format idemcore-log/r1-public): the pi j h hc fields of SPEC.md plus the ALL line, without freq and total. The verifier accepts both forms (version 0.3.0 and later). Access needs an API key: sign in to the console at https://console.idemcore.net/#/login and create one. With a key, save the log and run:

curl -s https://api.idemcore.net/v1/receipts/RECEIPT_ID/log \
  -H "Authorization: Bearer $IDEMCORE_API_KEY" | jq -r .log_text > answer.log
python3 -m idemcore_verify check answer.log
python3 -m idemcore_verify compare answer.log your_rerun.log

Install as a package

The verifier is published on PyPI as idemcore-verify (console script of the same name):

pip install idemcore-verify
idemcore-verify --version
idemcore-verify check run.log
idemcore-verify compare reference.log candidate.log

The package contains only the verifier; the sample logs ship with this repository.

All hash tables, per device, workload and batch size: EVIDENCE.md.

Requires Python ≥ 3.9, standard library only.

What the verifier checks

  1. Well-formedness – every line has six fields, hashes are 64-bit hex, 0 < freq ≤ total < 2^31, no duplicate positions.
  2. Chain integrity – it recomputes the ALL digest from the per-token lines; editing a single line breaks it.
  3. Agreement – it compares a candidate log against a reference log position by position, keyed by (payload, position), and prints the first divergence (which token, which field). --subset allows a short spot check (e.g. 128 CPU tokens against a 512-token GPU run).

A match on h means the two machines computed the same integer logits for the whole vocabulary at that position, not just the same argmax token. A match on hc means they built the same integer sampling distribution, so any seeded sampler driven by it makes the same choices.

Published pairs

Model Reference Candidate Positions Result
Qwen2.5-0.5B, 8-bit x86-64 CPU NVIDIA T4 3260 identical
Qwen2.5-0.5B, 8-bit x86-64 CPU Galaxy Z Fold5 (Android) 240 identical
Qwen2.5-0.5B, 8-bit x86-64 CPU Windows 11 ARM64 laptop (Snapdragon X Plus) 240 identical
Qwen2.5-7B, 8-bit x86-64 CPU NVIDIA A10 512 identical
Qwen2.5-7B, 8-bit x86-64 CPU Galaxy Z Fold5 (Android) 64 (prefix) identical
Qwen2.5-7B, 4-bit (g) x86-64 CPU NVIDIA A10 512 identical
Qwen2.5-7B, 4-bit (g4) x86-64 CPU NVIDIA A10G 512 identical
Qwen2.5-7B, 4-bit (g) x86-64 CPU Galaxy Z Fold5 (Android), both CPU code paths 128 (prefix) identical
Qwen2.5-7B, 4-bit (g) x86-64 CPU x86-64 CPU, 6 repeat runs (6 and 8 pinned threads) 512 identical
Qwen2.5-7B, 4-bit (g) x86-64 CPU NVIDIA A10G and A10, batched B = 1–64, shuffled and staggered (40 logs) every row of every stream identical
gpt-oss-20b (MoE) x86-64 CPU NVIDIA L40S 512 identical
gpt-oss-120b (MoE) x86-64 CPU (spot check) NVIDIA H100 128 of 512 identical

Details per file: samples/MANIFEST.md. Qwen2.5-7B 4-bit on Android runs at 3.39 tok/s on the Fold5 (see RESULTS.md).

Batched GPU serving. With an improved batched GPU kernel, Qwen2.5-7B 4-bit on an NVIDIA A10G serves up to 64 concurrent streams, and every stream's per-token hashes match a single-stream x86-64 run at batch sizes 1, 8, 16, 32 and 64, including shuffled slot order and staggered joins (0 mismatches). The same holds on an NVIDIA A10. Aggregate throughput (A10G): 641 tok/s at 8 streams and 1372 tok/s at 32. Numbers and caveats: RESULTS.md. The raw batched logs are in samples/batched/ and are re-checked by step 3 above.

Methodology and benchmarks

  • How every number was measured (workloads, clocks, baselines, energy, quality): METHODOLOGY.md.
  • Results and their caveats: RESULTS.md; every hash, per device, workload and batch size: EVIDENCE.md.
  • The serving-benchmark kit used in the paper will be published separately and linked here.

Paper

Don Wick, Idemcore: Bit-Identical LLM Inference from Phones to Datacenter GPUs, with an Open Per-Token Verification Protocol, preprint, Zenodo, 2026. DOI: 10.5281/zenodo.23851129. Citation metadata: CITATION.cff.

What this does not prove

  • The logs are produced by our engine. A matching pair shows two runs agree; it does not prove which program produced them. To check a provider, re-run the same request on hardware you control (or ask a second party to) and compare logs.
  • The hash is FNV-1a-64: fast and good for detecting accidental divergence, not collision-resistant against an adversary who can choose logits. A SHA-256 / BLAKE3 variant of the log is planned; the format has a version.

License

Apache-2.0 for everything in this repository (verifier, spec, methodology, sample logs). See LICENSE. Idemcore's inference kernel, weight format, and tables are proprietary and are not covered by this license.

Contact: Don Wick — don.wick@idemcore.net · Website: https://idemcore.net · Security reports: SECURITY.md · Mismatch reports: open an issue with the "Hash mismatch" template.

Copyright 2026 Don Wick.

Metadata

Release files for idemcore-verify 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for idemcore-verify 0.3.0
File Size Uploaded Provenance Actions
idemcore_verify-0.3.0.tar.gz 21.1 kB With provenance Details for idemcore_verify-0.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for idemcore-verify 0.3.0
File Interpreter ABI Platform Actions
idemcore_verify-0.3.0-py3-none-any.whl Python 3 none any Details for idemcore_verify-0.3.0-py3-none-any.whl

Total release size: 38.6 kB

Release files / idemcore_verify-0.3.0.tar.gz

Download URL idemcore_verify-0.3.0.tar.gz
Size 21.1 kB
Tags Source
SHA-256 checksum
How to use checksums
0331ac366d4b653c34c9e00be0daaa606d118e46ffa0bde3b9de25b5ecd7cfde
BLAKE2b-256 checksum
How to use checksums
ddc37949597f18b1930388cd425dc5da0e8a98b90a8d8959c15b2819c6867efc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

Release files / idemcore_verify-0.3.0-py3-none-any.whl

Download URL idemcore_verify-0.3.0-py3-none-any.whl
Size 17.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7421744e9a21a8bbe46ba8f4ef1bd9339869e902f2618bcaadceed9012303a9f
BLAKE2b-256 checksum
How to use checksums
0452cf1d69baec2e9d8e55c864b38296f5858f973fc20ed4d1d21c4b72e6f2c6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

Security for idemcore-verify 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for idemcore_verify-0.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 1, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page