Skip to main content
Keystone Enabled A screening verdict on its own — ALLOW, REFER, DENY — does not record which payer it was about (without exposing personal data) or under which policy it was made. If the issuer quietly rotates its ruleset, an old verdict gives no signal that the rules changed underneath it. Compliance Gate (lite) closes that gap. You bring a categorical verdict from your own sanctions / PEP / AML provider; the package binds it to a no-PII payer reference and a pinned subject reference (a 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. 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_ref is 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.
  • verdict is a closed enumeration: ALLOW, REFER, DENY. A REFER (for example a suspicious-activity-report obligation) is byte-distinct from a DENY; a value outside the set is rejected, not hashed.
  • gate_ref binds the verdict and payer to a subject_ref — imported by hash, so the same construction binds to a policy_bound_ref (from Policy Binding), a settlement-action binding_ref, or a retention_chain_ref, of any version.

What a verifier can check

No issuer call. No registry lookup. No AlgoVoi service. RFC 8785 JCS, SHA-256, and a JSON parser are the entire dependency. The binding enables rejection; acting on a mismatch (refusing the record) is a runtime verifier decision, not a property of the construction.

Use

Conformance

The compliance_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

Adopters

If you build on algovoi-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 [email protected].

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

The gate_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.