Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

TallyLock

TallyLock was named Prove until 2026-11-07. The command is tallylock and the package is tallylock. Protocol v1 wire identifiers keep their original prove. prefix (for example prove.manifest.v1), and receipts keep their .prove/ state directory, so existing receipt IDs and anchored timestamps stay valid.

TallyLock freezes evaluation plans and ordinary output files into standalone receipts. Its Python CLI verifies byte integrity offline and separates that evidence from reported scores, model identity and execution claims. Developed by TriplePass Labs. Created and maintained by Christopher Ayers.

Lab website · GitHub organization · Founder profile

It binds an evaluation plan, recorded artifacts and reported results to commitments with optional OpenTimestamps evidence. Verification distinguishes artifact integrity from claims about execution, model identity, timing and scientific validity.

Version 0.1.0a2 is an alpha release for Linux with Python 3.11 through 3.13. Use a supported interpreter and install it in its own environment. The example below selects Python 3.12; substitute your supported interpreter when needed.

On Ubuntu or Debian, that interpreter needs its matching venv package before environment creation. Ubuntu 24.04 users selecting Python 3.12 need python3.12-venv. The offline quickstart gives the prerequisite and an optional fallback when uv is already installed. See the Ubuntu Python setup guide and package record.

python3.12 -m venv .venv-tallylock
. .venv-tallylock/bin/activate
python -m pip install /absolute/path/to/tallylock-0.1.0a2-py3-none-any.whl
tallylock --version

From a reviewed source checkout, python -m pip install . works in the same environment. Installation may fetch dependencies.

Install from PyPI: pipx install tallylock or uv tool install tallylock. Version 0.1.0a2 is published with trusted publishing and signed provenance. The wheel and source steps above still work for offline or reviewed installs. Distribution acceptance and release status are recorded in the readiness audit.

The offline quickstart uses only the installed CLI, a fresh manifest and an ordinary output directory. It needs no model, provider account, research checkout or hosted service. python -m tallylock can replace tallylock in every command.

tallylock init --out manifest.json --name "My evaluation"
tallylock pre-register manifest.json --receipt receipt
mkdir outputs
printf 'ordinary external output\n' > outputs/result.txt
tallylock seal receipt --artifacts outputs
tallylock verify receipt

Edit the manifest before preregistration. Run your external evaluation program yourself and pass its output directory to seal. TallyLock never launches a model or executes a scorer named in metadata. See generic integration for explicit score/trace options, bounded reports and recovery.

Anchoring is explicit: tallylock anchor receipt, then tallylock upgrade receipt as calendars gain attestations. Submission and pending proofs are not completed anchoring. Plain tallylock verify receipt checks integrity and reports the timestamp as not checked, exiting 0 when integrity passes. With --chain-cache FILE it also runs the anchored check. --policy anchored is the strict form: it requires qualifying Bitcoin attestations and an explicitly selected local chain cache, and exits 3 without them. Verification never contacts a node or calendar. Independently assess the cache's provenance and freshness.

Output is one JSON object per stdout line when piped and a short plain-language summary on a terminal. Force either with --json or --human (not both). tallylock doctor [RECEIPT] checks the installation and a receipt's timestamp state without writing or using the network. Statuses are 0 for the requested action/check, 2 invalid input, 3 insufficient evidence, 4 unsupported evidence, 5 operational failure and 130 interruption. A returned timestamp action can still be pending or retry-wait. After optional anchoring fails, completed local state and IDs remain in the report. Resume with anchor/upgrade without the original outputs.

Static examples and canonical conformance assets ship under tallylock/data/examples/basic and tallylock/data/conformance, accessible through importlib.resources. Basic use requires no optional harness importer.

License

Licensed under Apache-2.0. Copyright 2026 Christopher Ayers.

Record every run

tallylock run --repeat 5 -- python eval.py --seed {seed}
tallylock score

Every attempt is recorded, including failures. score reports the best result, the real score with its range, and a claim line others can check with tallylock check. See the quickstart and the method.

More: check timestamps without running a node (verify --online), compare two results for setup and noise (compare), and publish a static Receipts Board from a registry of plans (registry, board). TallyLock also reads Inspect AI logs and proofbundle files, and exports in-toto statements. See the quickstart and how it compares.

What a receipt means

A valid completed timestamp establishes that a commitment existed by a Bitcoin block. Artifact hashes reveal changes to committed bytes. Neither establishes that an evaluator ran honestly, used the claimed model, disclosed all attempts, or produced a scientifically sound result.

TallyLock works alongside evaluation harnesses. A preregistration ID alone establishes no independently witnessed chronology. External research experiments remain separate from the protocol's cryptographic checks.

Metadata

Release files for tallylock 0.1.0a2

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

Source distribution (sdist)

Source distribution for tallylock 0.1.0a2
File Size Uploaded Provenance Actions
tallylock-0.1.0a2.tar.gz 476.9 kB With provenance Details for tallylock-0.1.0a2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for tallylock 0.1.0a2
File Interpreter ABI Platform Actions
tallylock-0.1.0a2-py3-none-any.whl Python 3 none any Details for tallylock-0.1.0a2-py3-none-any.whl

Total release size: 813.7 kB

Release files / tallylock-0.1.0a2.tar.gz

Download URL tallylock-0.1.0a2.tar.gz
Size 476.9 kB
Tags Source
SHA-256 checksum
How to use checksums
d731293384c5ca83fbf12e1aa007d464332568ad6dfd2764137bfa949afc2dc7
BLAKE2b-256 checksum
How to use checksums
56917a0a84d938d860490dad5877f1b5430e67f39871ba63d6cff72be5fb1782
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 8, 2026.

Transparency log

Release files / tallylock-0.1.0a2-py3-none-any.whl

Download URL tallylock-0.1.0a2-py3-none-any.whl
Size 336.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6ddcda0d1153676392ca68608f24468f234f7154be63b10ca9c335e8c3452f49
BLAKE2b-256 checksum
How to use checksums
98987cb649b313924354c05c8ac57efc0121d3d68210aab4ee961c60e00ae24a
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 8, 2026.

Transparency log

Security for tallylock 0.1.0a2

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

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for tallylock-0.1.0a2.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 8, 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.

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