tersign (Python)
Tersign — the evidence layer for the agent economy. This package is the verification-first Python SDK: zero dependencies, standard library only — the verify path a tribunal, examiner, or CI job can run with nothing installed.
python3 -m tersign verify receipt.json # offline — no network, ever
python3 -m tersign verify 0x<digest> --ledger … # chain lookup (explicit network)
from tersign import verify_receipt, digest_of, chain_link_digest, verify_link, verify_commitment
result = verify_receipt(signed_receipt) # {'valid': True, 'signer': '0x…', 'digest': '0x…'}
What it covers (v0.1):
- RFC 8785 (JCS) canonical form + the Tersign artifact digest
(
keccak256(utf8(JCS(v)))) and chain-link constructor — byte-compatible with the TypeScript reference, pinned by shared cross-implementation vectors. - EIP-712 recovery for the upstream
x402 receiptdomain (the merged offer-receipt extension) — pure-python secp256k1, canonical low-s only. - Counter-signature verification (
verify_link): EIP-191 over the raw 32-byte chain-link digest, recovered against the published ledger signer (https://tersign.ai/v1/ledger). - Chain commitment recompute (
verify_commitment): since 2026-08-28 each anchor stamps a chain commitment — an accumulator over every counter-signed link — so one anchored digest covers the whole prefix; rows anchored earlier bind the head record only and say so (subjectSchema).
Issuing/signing lives in the TypeScript SDK (npm
tersign); this package is the
independent second implementation of the verification surface —
cross-implementation by construction. Frozen evidence bundles
(tersign-evidence-bundle-v1) ship their own copy of this verify core inside
the artifact, so bundle verification never depends on an install.
No console script on purpose: the tersign bin name belongs to the npm
package; the Python surface is python3 -m tersign.
Metadata
Release files for tersign 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tersign-0.1.3.tar.gz | 16.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tersign-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 30.0 kB
Release files / tersign-0.1.3.tar.gz
| Download URL | tersign-0.1.3.tar.gz |
|---|---|
| Size | 16.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ffd2512d4f16fa81d62b39222f00c52e1a2bd3034f0ae9ca472bb9adf5ecd7bf
|
|
BLAKE2b-256 checksum How to use checksums |
45f7c96c73c2040b4bd26f69eb6afdaf24e0898a9facd332bb0cbefca63407af
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Aug 29, 2026.
Transparency logRelease files / tersign-0.1.3-py3-none-any.whl
| Download URL | tersign-0.1.3-py3-none-any.whl |
|---|---|
| Size | 13.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dd0918656a5bf4daa31eeef1f38790d05dac01725aaa82a46fbac02fa4d3f5d2
|
|
BLAKE2b-256 checksum How to use checksums |
2d6e49e4677fc9c73b965a37466e554269f86db614a2710c392a838cfe5bff6a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Aug 29, 2026.
Transparency log