Hard rules
These are the security invariants the documentation and the code enforce. Any violation is a launch blocker:- T3 settlement is fail-closed. Every well-formed-but-not-pinned attestation rejects. Every malformed attestation rejects. Every missing-feature build rejects.
- Synthetic test fixtures are not production trust. All synthetic builders are gated under
#[cfg(all(test, feature = "tee-verify-*"))]and unreachable from release binaries. - MACA does not finalise chain blocks. Block finality is in
sigil-consensus; MACA per-claim attestation is a separate concern. - Self-declared provider capabilities are informational. Compute tier is derived from on-chain stake and attestation. T3 settlement requires cryptographic attestation, not declarations.
- The GAL resolver runs all seven rules. No path skips Rule 7.
OrgRootMissingfor an org-scoped DID is a hard fail, not a silent accept. - Currency naming is canonical. Currency is MINT (mainnet), BITS (canary), test SIGIL (testnet). Protocol and network is Sigil.
L0 / subnets are out of scope for v1
Sigil v1 ships as a sovereign chain. L0 framing, hub-and-spoke architecture, and “Sigil subnets” are explicitly out of scope and not marketed. The architectural decision lives indocs/architecture/no-l0-for-v1.md. Rationale:
- The chain ships a credible v1 first; widening scope before that is unhelpful.
- L0 framing requires solving cross-zone consensus before the single-zone case is proven.
- The agent-native primitive set fits poorly with sovereign subnets that fork policy.
- IBC integration in v1.1 covers the legitimate cross-chain use cases.
Audit packet
The security packet maps every public claim to a code path, a test, and a known-limitation entry where appropriate. The full packet is checked into the Sigil repository underdocs/security/:
| Document | Purpose |
|---|---|
THREAT_MODEL.md | Actors, assets, attack scenarios, trust boundaries. Mirrored at threat model. |
CONSENSUS-REALITY-AUDIT.md | What MACA is and is not. Where chain finality actually lives. |
TEE-TRUST-BOUNDARY.md | Fail-closed posture per vendor with test mapping. |
HARDWARE-ATTESTATION-AUDIT.md | Provider hardware claim flow; where self-declaration cannot become “verified”. |
GAL-LINEAGE-AUDIT.md | Seven-rule sigil_guard mapping. |
DUPLICATE-LOGIC-AUDIT.md | Duplicate-inventory and decisions for security-critical primitives. |
PUBLIC-CLAIMS-AUDIT.md | Every public claim mapped to code path, test, and limitation. |
KNOWN_LIMITATIONS.md | Explicit deferred-work list. Mirrored at known limitations. |
TEST_MATRIX.md | Exact commands and pass counts. Mirrored at test matrix. |
How the packet is maintained
Each audit document is produced by:- Searching the codebase for the relevant patterns.
- Mapping findings to specific file and line references.
- Writing regression tests where the audit reveals a gap.
- Documenting deferred items as explicit known limitations.
Reporting a vulnerability
Emailsecurity@sigil.ml with a PGP-encrypted report. The Sigil Foundation operates a coordinated-disclosure programme with the following targets:
- Acknowledgement within 24 hours.
- Initial triage within 72 hours.
- Fix in development within 14 days for critical issues.
- Public disclosure 90 days after the fix or 30 days after the patch ships, whichever is sooner.