policy_bound_ref, a settlement-action binding_ref, or a retention_chain_ref) into a deterministic, recomputable gate_ref. Because the verdict is bound to the subject by hash, a decision made under one policy snapshot does not recompute under a rotated policy — it is provably tied to the policy that was in force.
It is strictly additive over the frozen Layer 1: no new cryptographic primitive, the same RFC 8785 JCS + SHA-256 already in use.
Apache-2.0 open source. Install via
pip install algovoi-compliance-gate-lite or npm install @algovoi/compliance-gate-lite. Python and TypeScript are byte-for-byte identical on the same input. This is the lite tier — content-addressed, no signature; the commercial Compliance Gate adds Falcon-1024 post-quantum signing, the maintained verifier, and the Proofs zero-knowledge layer.How it works
Two references, both computed with RFC 8785 JCS canonicalisation and SHA-256:payer_refis the content hash of{address, network}. The cleartext address is screened by your provider but never emitted — only its digest appears, so the bound record carries no PII.verdictis a closed enumeration:ALLOW,REFER,DENY. AREFER(for example a suspicious-activity-report obligation) is byte-distinct from aDENY; a value outside the set is rejected, not hashed.gate_refbinds the verdict and payer to asubject_ref— imported by hash, so the same construction binds to apolicy_bound_ref(from Policy Binding), a settlement-actionbinding_ref, or aretention_chain_ref, of any version.
What a verifier can check
| Verifier holds | What they can check |
|---|---|
A gate_ref + verdict + payer_ref + subject_ref | That the verdict was made for exactly this payer and subject (gate_ref recomputes) |
| The same, with the subject under a rotated policy | Rotation is detected — the gate_ref fails to recompute under P' |
A gate_ref + a different verdict | Verdict tamper is detected — ALLOW, REFER, DENY are byte-distinct |
Use
Conformance
Thecompliance_gate_lite_v1 vector set (12 vectors) is published in the public corpus —
chopmob-cloud/algovoi-jcs-conformance-vectors —
with Python and Node runners. It covers the payer reference, the three verdicts, verdict / policy-rotation / payer tamper, and the closed-enumeration and malformed-reference rejections. Python and TypeScript reproduce every value byte-for-byte.
Lite vs commercial
| Lite (this package) | Compliance Gate (commercial) | |
|---|---|---|
| Licence | Apache-2.0, open | Commercial OEM |
| Verdict binding | content-addressed gate_ref | the same, Falcon-1024 signed |
| Privacy proof | — | Proofs (zero-knowledge) |
| Verifier | recompute offline | maintained verifier |
| Best for | open integrations, evaluation | regulated production, enterprise terms |
Adopters
If you build onalgovoi-compliance-gate-lite, pin ==0.1.0, anchor a canonical vector hash from compliance_gate_lite_v1, and keep the NOTICE, you qualify for a free v0 licence key for algovoi-mandate-auditor. The gate is scripts/check_v0_adoption.py (dependency + canonical hash anchor + NOTICE + version pin → ISSUE_V0_KEY). Apply: email chopmob@gmail.com.
Relationship to the open substrate
Compliance Gate (lite) sits directly on top of the open JCS Canonicalisation Substrate and composes with Policy Binding, the settlement-action binding, and the Retention Chain. It uses the same RFC 8785 JCS and SHA-256 primitives — no additional cryptographic dependencies.Specification
Thegate_ref construction and its conformance vectors are specified in IETF Internet-Draft draft-hopley-x402-retention-chain — §7.8 Compliance Gate Binding and §8.11 Compliance Gate Binding Vectors (rev -05) — additive over the frozen canonicalisation substrate, sole AlgoVoi authorship.