Repository navigation
trace-verify 0.4.1
Verifying a claim no longer needs a clone of the registry.
pip install trace-verify
trace-verify \
--claim your-record.json \
--proof your-record.proof.json \
--entry-url https://raw.githubusercontent.com/agentrust-io/trace-registry/main/registry/2026/06/12.ndjsonIn 0.4.0, --entry-url fetched the registry entry and stopped there. The producer key still had to be on disk, so a reader without a clone got no registered key for producer '...' and exit 1. The only workaround was --no-verify-signature, which checks inclusion and not authorship: the weaker half of the answer, reached by switching off the stronger half.
The key now comes from the same allowlisted host as the entry. The producers base is derived from the entry URL, and three things keep that from being a hole:
- the derived URL is re-checked against the host allowlist, so an entry URL on another host cannot smuggle a fetch;
- the fetched file lands under the exact name the existing loader expects, so the producer-id validation that keeps a crafted id inside the directory still runs;
- derivation happens only when neither producers option is given and only for
--entry-url, so a local--entrymakes no network call at all.
--producers-url overrides the derivation. --producers-dir still takes a local directory. The two are mutually exclusive.
The output says when a key came over the wire, as a second line in text and as producer_key_source in --json. A key fetched from a host is a different trust statement from one already on disk, and an unqualified signature valid would blur them.
0.4.0 shipped a README claiming --entry-url was enough on its own. It was not. This is that claim made true rather than withdrawn.
Full notes: CHANGELOG.md