emilia-verify (Python)
Zero-infrastructure verification of EMILIA Protocol trust receipts — pure Python,
one dependency (cryptography). A faithful port of @emilia-protocol/verify:
recursive canonical JSON + Ed25519 (SPKI-DER public key) + sorted-pair Merkle anchors.
The guarantee: a receipt signed on the Node side verifies here, and vice versa —
proven by a cross-language test (tests/test_verify.py verifies a JS-signed fixture).
No EP account, no API key. Just math.
Install
pip install emilia-verify # once published
# or, from the repo: pip install packages/python-verify
Use
from emilia_verify import verify_receipt
result = verify_receipt(receipt_doc, signer_public_key_base64url)
if result.valid:
print("authorized by", receipt_doc["payload"]["claim"]["approver"])
else:
print("rejected:", result.checks, result.error)
verify_receipt(doc, public_key_base64url) -> VerifyResult(valid, checks, error) checks
the version, the Ed25519 signature over the canonical payload, and (when present) the
Merkle anchor. It never raises on bad input — a malformed receipt returns valid=False.
Also exported: verify_merkle_anchor(leaf_hash, proof, expected_root) and
canonicalize(value) (the exact canonical-JSON used for signing).
verify_trust_receipt(receipt, opts) also accepts pinned approverKeys, a
trusted logPublicKey, and an optional RFC 3339 now. A key entry containing
compromised_at is terminal regardless of the receipt's claimed issued_at;
when now is supplied, issuance more than five minutes in the future is
refused. Omitting now retains offline historical verification.
Why this exists
A trust receipt is only as useful as the number of places that can check it. Shipping a verifier in the Python agent ecosystem (LangChain, CrewAI, AutoGen, LlamaIndex) means a receipt minted anywhere can be verified offline, in the language your agent already speaks.
Publishing (maintainers)
Direct local upload is intentionally unsupported. Create the version-matching
python-verify-v<version> tag from merged main, then manually dispatch
publish-python-verify.yml with the exact typed confirmation and approve the
protected registry-publishing-approval job. The workflow builds twice,
attests the exact wheel and source distribution, publishes through PyPI OIDC,
and byte-compares both registry artifacts.
Apache-2.0.
Release files for emilia-verify 2.8.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| emilia_verify-2.8.2.tar.gz | 86.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| emilia_verify-2.8.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 148.8 kB
Release files / emilia_verify-2.8.2.tar.gz
| Download URL | emilia_verify-2.8.2.tar.gz |
|---|---|
| Size | 86.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c71a4fd7a19b6160afccf3113b0cf67121caecd20e6d7e9c41ab69fd13a39a87
|
|
BLAKE2b-256 checksum How to use checksums |
d6cc538ee302b3d4dbf7bbd2af2513fcf6b519f789a211d6a36e4bb72a129cca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.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 Jul 29, 2026.
Transparency logRelease files / emilia_verify-2.8.2-py3-none-any.whl
| Download URL | emilia_verify-2.8.2-py3-none-any.whl |
|---|---|
| Size | 62.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a4669d2c3ad3a2765faabbc405aa7c1d0afad4c0a605d6e62a6da6d0f9495134
|
|
BLAKE2b-256 checksum How to use checksums |
a1f4070b0318500b70e80dc66a4a7c0c03af8aa788c6e349c8bd2bc3e1edee22
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.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 Jul 29, 2026.
Transparency log