Additive policy-snapshot binding for the AlgoVoi substrate (version-provable, rotation-detectable; L1 frozen)
Project description
algovoi-policy-binding
Additive policy-snapshot binding for the AlgoVoi substrate. Binds a
content-addressed policy snapshot over an existing AlgoVoi reference — a
settlement-action binding_ref (v1) or a retention_chain ref (v0/v1) — making a
decision verifiable against the exact policy version in force and a policy
rotation detectable by recomputation. The canonicalisation base and the
underlying binding/chain are frozen and untouched; this layer only references them
by hash.
policy_ref = "sha256:" + SHA-256(JCS(policy_document))
policy_bound_ref = "sha256:" + SHA-256(JCS({policy_ref, subject_ref}))
Install
pip install algovoi-policy-binding==0.1.0
Use
from algovoi_policy_binding import policy_ref, policy_bound_ref
policy = {"policy_id": "aml.transfer", "version": 1, "max_amount": 1000, "deny_jurisdictions": ["XX"]}
pref = policy_ref(policy)
# subject_ref is any AlgoVoi reference: a binding_ref, or a retention_chain ref (v0/v1)
binding_ref = "sha256:7dc4a2bf62b3c5eabd10fc875ff7fc10f188666f15838c4a51464cc72e80f6ca"
pbr = policy_bound_ref(binding_ref, pref)
Version-agnostic: the same call binds over retention_chain v0, v1, or a
binding_ref — subject_ref is imported purely by hash.
Conformance
conformance/policy_binding_v1/ contains the canonical vectors and a standalone
verify.py (stdlib + rfc8785, no package import). Recompute is the test:
pip install rfc8785
python conformance/policy_binding_v1/verify.py
It checks positives byte-for-byte, the P→P' rotation negative on every subject,
key-order invariance, and subject-binding. The subjects are the published canonical
references from
chopmob-cloud/algovoi-jcs-conformance-vectors.
Adoption
This package is itself an adopter of the AlgoVoi substrate, and asks the same of
those who build on it. To qualify for a free v0 licence key for
algovoi-mandate-auditor, your project must pass four checks
(scripts/check_v0_adoption.py):
- Dependency —
algovoi-policy-bindingdeclared in your lockfile/manifest. - Vector hash anchor — at least one canonical
policy_ref/policy_bound_refhash from the conformance set appears in your project (you ran our vectors). - NOTICE — preserve the
NOTICEfile; it must name AlgoVoi andalgovoi-policy-binding. - Version pin — pin
algovoi-policy-binding==0.1.0(or a wheel--hash), not a bare range.
python scripts/check_v0_adoption.py /path/to/your/project
Contact chopmob@gmail.com with your import-by-hash evidence and a copy of the NOTICE.
License
Apache-2.0. (c) 2026 AlgoVoi. Preserve the NOTICE file in any distribution.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file algovoi_policy_binding-0.1.0.tar.gz.
File metadata
- Download URL: algovoi_policy_binding-0.1.0.tar.gz
- Upload date:
- Size: 8.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e0f21d6b51c186538ea0a3617901e5c80b02df6074da3b71bb495074f173d88
|
|
| MD5 |
f843d2accdf9c02b04ef8aa90db0b429
|
|
| BLAKE2b-256 |
24457dd64cda1a88753622229f4839edfc17351a908974852edbbf9babb2caa3
|
File details
Details for the file algovoi_policy_binding-0.1.0-py3-none-any.whl.
File metadata
- Download URL: algovoi_policy_binding-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f366aea068ec706cf851316dccce51783bfac32a7833f659d690481120003862
|
|
| MD5 |
37467ca95345aff1dcb2188af46703b5
|
|
| BLAKE2b-256 |
e3236512530c70a9ca7632f636a86996f02db524ccfbd604a94b8859e3729d91
|