The tools
pip install algovoi-substrate-guard, npm install @algovoi/substrate-guard), Python and TypeScript byte for byte identical. Substrate Guard Pro and Edge Sentinel are commercial products under the AlgoVoi Commercial Licence; the open guard composes straight into the Pro tier.Now available. The two commercial tools ship together as the Security Suite bundle (algovoi-security-suite): one perpetual, one time licence installs algovoi-substrate-guard-pro and algovoi-edge-sentinel from the index with a single pip. Available on the AlgoVoi Suite Store.Install
After buying the Security Suite on the Suite Store you get an index token. Install both tools in onepip (commercial deps from the token-gated index, public deps from PyPI):
Quickstart
Layer 1: admit or reject input, signed
mldsa_secret_key= and mldsa_public_key= to GuardService.
Layer 2: block at the edge, signed
GeoProvider, a shared rate and nonce backend, and a persistent decision store (EDGE_SENTINEL_DB, SQLite or PostgreSQL). The signing key is injected; licence enforcement stays offline and fail closed.
Layer 1: input integrity
Two tools, both running before any RFC 8785 JCS or SHA-256 work touches the payload. They either accept, or reject with a named code. They never truncate and never repair.Substrate Guard (open)
A deterministic, structural input bounds gate. Every bound is a pure property of the parsed value (depth, count, length), so independent implementations enforce it identically. The bounds in force are content addressed byprofile_ref, so a record can prove which limits admitted it. See the full Substrate Guard page.
Substrate Guard Pro (commercial)
Substrate Guard Pro keeps every bound of the open tier and adds a string safety bound: a string (value or object key) that is not valid UTF-8, such as a lone surrogate, is rejected withREJECT_INVALID_UTF8 before canonicalization, so every conforming canonicalizer behaves identically on it. Each evaluation is then recorded as a Falcon-1024 (optionally hybrid ML-DSA-65) signed, hash linked admission decision, bound to the profile_ref in force and, on admit, to the value’s canonical content address (subject_ref). A rejected value is never canonicalized and never carried, so the record is no PII.
Layer 2: runtime edge defence
Edge Sentinel (commercial)
Edge Sentinel runs four runtime checks ahead of the service, first block wins, fail closed. It is deliberately a runtime layer: it is stateful (rate counters, a nonce cache) and environment aware (the client IP, a geo dataset, a clock). It is not claimed as a substrate or byte parity property; that determinism guarantee lives in Layer 1. What Edge Sentinel adds over a commodity WAF is that every allow and deny is offline verifiable, signed evidence bound to a content addressed policy (policy_ref), with a no PII subject (the IP, agent DID, key and wallet are hash folded; country and ASN stay in the clear for audit).
One verifiable spine
Both layers emit the same decision shape: a Falcon-1024 (optionally hybrid ML-DSA-65) signed envelope, hash linked into an append only chain (prev_entry_hash), exported as the no PII evidence pack the Compliance Command Center verifies offline. Altering or dropping one decision breaks the chain from that point. In the Command Center the two chains surface as:
Worked example: from decision to verified evidence
Both layers export the same evidence pack, so one flow covers either. Produce decisions and export a pack:vault and auditor are configured as in the Records Vault guide.)
The chain is the join: Substrate Guard Pro and Edge Sentinel produce it, the Command Center verifies and aggregates it, Records Vault preserves it. One signed, no-PII, offline-verifiable spine across all three.
Honest scope
Layer 1 is a deterministic, structural property of the payload, reproducible byte for byte across independent implementations: that is what makes it a substrate guarantee. Layer 2 is runtime: stateful and environment aware, and presented as such, never as a byte parity claim. Keeping that line sharp is what keeps the substrate claims credible. Neither layer adds a new cryptographic primitive over the frozen Layer 1 substrate; both reuse the RFC 8785 JCS canonicalisation, SHA-256, and the Falcon and ML-DSA signing already in the platform.FAQ
What is the difference between Substrate Guard and Substrate Guard Pro?
What is the difference between Substrate Guard and Substrate Guard Pro?
profile_ref. Substrate Guard Pro (commercial) keeps every one of those and adds a UTF-8 string-safety bound (it rejects lone surrogates and non scalar code units), then records every admit or reject as a Falcon-1024 signed, hash-linked admission decision. The open guard composes straight into the Pro tier.Do I need both layers?
Do I need both layers?
Does Edge Sentinel give the same byte-for-byte guarantee as the substrate?
Does Edge Sentinel give the same byte-for-byte guarantee as the substrate?
Does the suite move money or sit on the payment path?
Does the suite move money or sit on the payment path?
What personal data does it store?
What personal data does it store?
subject_ref; only non-PII signals (country, ASN) stay in the clear for audit. A rejected value is never canonicalized and never carried in the record.Does it phone home or need a network connection?
Does it phone home or need a network connection?
Where does the geo data come from?
Where does the geo data come from?
GeoProvider; plug in a MaxMind GeoLite2 or IP2Location backed provider in production. A small in-memory provider is included for tests and local runs. No geo dataset is bundled.How are rate-limit and replay state handled across multiple processes?
How are rate-limit and replay state handled across multiple processes?
EdgeStore (SQLite or PostgreSQL, set by EDGE_SENTINEL_DB).What happens if the licence is missing or expired?
What happens if the licence is missing or expired?
GuardService and EdgeSentinel refuse to initialise without a valid, unexpired licence. Set ALGOVOI_LICENSE_KEY (or ALGOVOI_LICENSE_FILE) to the key issued at purchase.How does an auditor verify a decision after the fact?
How does an auditor verify a decision after the fact?
verify_guard_chain and verify_edge_chain re-check every signature and hash link; altering or dropping one decision breaks the chain from that point. The same packs ingest into the Compliance Command Center, which renders them as a verified posture.Is it post-quantum?
Is it post-quantum?
Can I customise the bounds and policy, and prove which were in force?
Can I customise the bounds and policy, and prove which were in force?
Profile (content-addressed by profile_ref); Edge Sentinel takes an EdgePolicy (content-addressed by policy_ref). Each decision carries the ref of the bounds or policy that produced it, so a verifier can prove which rules were enforced, and a changed policy is rotation-detectable.