matrixscroll 0.6.0__tar.gz → 0.6.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/CHANGELOG.md +9 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/PKG-INFO +65 -36
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/README.md +63 -34
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/ADOPTER_KIT.md +3 -3
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/COMMIT_TIME_VS_ARTIFACT_TIME.md +1 -1
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/CRYPTO_ROADMAP.md +1 -1
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/DOCTRINE.md +2 -2
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/FIVE_MINUTES.md +2 -2
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/POC2_AUDIT.md +1 -1
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/ROADMAP_2026-07.md +15 -10
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/SECURITY_PROPERTIES.md +1 -1
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/SHOW-HN-MCP-TRUST-LAUNCH.md +32 -50
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/SOFTWARE_PRODUCTS.md +5 -4
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/WHITEPAPER.md +5 -5
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/commercial/PLATFORM_PIVOT.md +2 -2
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/commercial/SSX360_SCROLL.md +1 -1
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/hardware-provider.md +25 -8
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/quickstart-git.md +3 -3
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/quickstart-mcp.md +2 -2
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/registries-guide.md +5 -3
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/examples/ci/protected-branch.yml +3 -3
- matrixscroll-0.6.1/examples/demo/mcp-rugpull-demo.cast +207 -0
- matrixscroll-0.6.1/examples/demo/mcp-rugpull-demo.gif +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/examples/demo/mcp-rugpull-demo.sh +38 -6
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/__init__.py +1 -1
- matrixscroll-0.6.1/matrixscroll/agent_trace.py +90 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/cli.py +34 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/mcp.py +63 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/providers/se050_transport.py +1 -1
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/pyproject.toml +2 -2
- matrixscroll-0.6.1/tests/test_agent_trace.py +55 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/.gitignore +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/CONTRIBUTING.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/LICENSE +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/SECURITY.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/SPEC.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/controls/agentic_ai_controls.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/ADOPTION.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/AGENTIC_AI_SECURITY.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/AIMS_INTEROP.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/CI_HARD_GATE.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/COMPARISON.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/CRYPTO_BACKEND.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/GITTUF_INTEROP.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/GIT_AI_NOTES_INTEROP.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/HERO_DEMO.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/OPENSSF_SANDBOX_DECISION.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/SE050_POC_SCOPE.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/SE050_USB_PROTOCOL.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/SLSA_SOURCE_TRACK_MAPPING.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/commercial/README.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/commercial/SCROLL_GATE_V2.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/delegation-attestation-rfc.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/quickstart-agent.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/quickstart-claude-code.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/rekor-guac-bridge-design.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/superpowers/plans/2026-06-19-ci-action-plan.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/superpowers/plans/2026-06-19-sdk-refactor-plan.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/superpowers/specs/2026-06-19-matrixscroll-git-design.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/yubikey-bridge.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/docs/yubikey-smoke.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/examples/agentic_ai_evidence_manifest.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/examples/agentic_ai_evidence_manifest.signed.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/examples/commit-envelope.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/examples/commit-envelope.signed.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/examples/demo/agent-commit-demo.sh +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/examples/demo/generate_signed_examples.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/examples/demo/hero-self-attestation-demo.sh +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/examples/mcp/matrixscroll-mcp.manifest.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/examples/mcp/matrixscroll-mcp.signed.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/examples/release-manifest.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/examples/release-manifest.signed.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/examples/trusted-keys-policy.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/_claim.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/_core.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/_payment.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/canonical.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/cloud/__init__.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/cloud/client.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/constants.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/crypto_backend.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/errors.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/formal.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/gate.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/git.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/guac_export.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/hooks/post-commit +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/hooks/pre-push +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/manifest.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/mcp_core.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/mcp_trust.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/policy.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/pqc.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/provenance/__init__.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/provenance/actions.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/providers/__init__.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/providers/base.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/providers/emulated.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/providers/hardware.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/providers/registry.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/providers/tpm.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/providers/yubikey.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/py.typed +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/rekor_publish.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/scroll/README.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/scroll/__init__.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/matrixscroll/ssx360_cli.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/schemas/action-envelope.v1.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/schemas/commit-envelope.v1.1.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/schemas/commit-envelope.v1.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/schemas/evidence-pack.v1.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/schemas/pqc-signature.v1.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/schemas/release-manifest.v1.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/schemas/ssx360.mcp-manifest.v1.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/__init__.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/fixtures/github-gpgsig-commit.txt +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/fixtures/mcp-tools-sample.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_agentic_guidance.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_canonical.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_canonical_pqc.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_cli.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_core.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_crypto_backend.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_formal_specs.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_gate.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_git_envelope.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_guac_rekor.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_mcp_core.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_mcp_server.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_mcp_trust.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_policy.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_pqc.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_provenance.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_release_metadata.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_se050_transport.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_security_properties.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_ssx360_cli.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_tpm_provider.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_vectors.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/tests/test_yubikey_provider.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/vectors/README.md +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/vectors/_fixture_key.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/vectors/_generate.py +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/vectors/tampered_algorithm.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/vectors/tampered_device_id.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/vectors/tampered_field.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/vectors/tampered_nested.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/vectors/tampered_public_key.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/vectors/tampered_schema.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/vectors/tampered_signature.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/vectors/unsigned_empty_block.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/vectors/unsigned_no_block.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/vectors/valid_commit_envelope.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/vectors/valid_nested.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/vectors/valid_simple.json +0 -0
- {matrixscroll-0.6.0 → matrixscroll-0.6.1}/vectors/valid_unicode.json +0 -0
|
@@ -4,6 +4,14 @@ All notable changes to the Matrix Scroll Python SDK are documented here. The
|
|
|
4
4
|
format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and
|
|
5
5
|
this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [0.6.1] - 2026-07-22
|
|
8
|
+
|
|
9
|
+
### Documentation
|
|
10
|
+
- **L2 Hardware prototype (2026-07-21)** — Pico 2 W / RP2350 + GMT130 ST7789
|
|
11
|
+
LCD/LED bring-up locked; SE050 M1 PoC remains bench-validated (not GA).
|
|
12
|
+
README compliance table, `docs/hardware-provider.md`, and roadmap updated.
|
|
13
|
+
Docs-only release; install pin `matrixscroll==0.6.1`.
|
|
14
|
+
|
|
7
15
|
## [0.6.0] - 2026-07-03
|
|
8
16
|
|
|
9
17
|
MCP Trust Scanner — sign any MCP server's tool surface and detect rug-pulls offline.
|
|
@@ -237,6 +245,7 @@ Initial public release. Extracted from the SSX360 reference implementation.
|
|
|
237
245
|
- Device id format: `MS-XXXX-XXXX` (SHA-256 of the raw public key, first 8 hex
|
|
238
246
|
chars, uppercase).
|
|
239
247
|
|
|
248
|
+
[0.6.1]: https://github.com/SSX360/matrixscroll/releases/tag/v0.6.1
|
|
240
249
|
[0.6.0]: https://github.com/SSX360/matrixscroll/releases/tag/v0.6.0
|
|
241
250
|
[0.5.1]: https://github.com/SSX360/matrixscroll/releases/tag/v0.5.1
|
|
242
251
|
[0.5.0]: https://github.com/SSX360/matrixscroll/releases/tag/v0.5.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: matrixscroll
|
|
3
|
-
Version: 0.6.
|
|
3
|
+
Version: 0.6.1
|
|
4
4
|
Summary: Signed provenance for agent-assisted Git commits with offline Ed25519 verification; optional ML-DSA/SLH-DSA software overlay (FIPS 204/205). USB/NFC/SE050 hardware remains Ed25519.
|
|
5
5
|
Project-URL: Homepage, https://ssx360.com
|
|
6
6
|
Project-URL: Documentation, https://ssx360.com/docs
|
|
@@ -15,7 +15,7 @@ Project-URL: Changelog, https://github.com/SSX360/matrixscroll/blob/main/CHANGEL
|
|
|
15
15
|
Project-URL: Discussions, https://github.com/SSX360/matrixscroll/discussions
|
|
16
16
|
Project-URL: Security, https://github.com/SSX360/matrixscroll/blob/main/SECURITY.md
|
|
17
17
|
Project-URL: GitHub Action, https://github.com/SSX360/matrixscroll-verify-action
|
|
18
|
-
Project-URL: PyPI Provenance, https://pypi.org/project/matrixscroll/0.6.
|
|
18
|
+
Project-URL: PyPI Provenance, https://pypi.org/project/matrixscroll/0.6.1/
|
|
19
19
|
Project-URL: Reference Device, https://ssx360.com/hardware
|
|
20
20
|
Project-URL: Tests, https://github.com/SSX360/matrixscroll/tree/main/tests
|
|
21
21
|
Project-URL: Public Roadmap, https://github.com/SSX360/matrixscroll/blob/main/docs/ROADMAP_2026-07.md
|
|
@@ -68,13 +68,18 @@ Description-Content-Type: text/markdown
|
|
|
68
68
|
|
|
69
69
|
**146 tests** · Hypothesis-verified security properties · [Security properties](https://github.com/SSX360/matrixscroll/blob/main/docs/SECURITY_PROPERTIES.md) · [TLA+ formal models](formal/README.md)
|
|
70
70
|
|
|
71
|
-
**
|
|
72
|
-
**open protocol for cryptographically signed
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
71
|
+
**Agent Authorization Authority — offline-verifiable proof for every machine action.** Matrix Scroll is an
|
|
72
|
+
**open protocol for cryptographically signed agent authorization** — Ed25519 records for Git commits (L1),
|
|
73
|
+
MCP tool surfaces (L2), and agent runs / NHI actions (L3), verified offline in CLI, browser, and CI.
|
|
74
|
+
Software emulated keys ship today; NXP SE050 secure-element signing is a
|
|
75
|
+
bench-validated PoC (Jul 2026) with the same verifier contract. The Pico 2 W /
|
|
76
|
+
GMT130 display bring-up is a locked L2 Hardware prototype (Jul 2026) — not GA.
|
|
76
77
|
|
|
77
|
-
|
|
78
|
+
*They receipt the model call. We receipt everything the machine does.*
|
|
79
|
+
|
|
80
|
+
**Authorization ladder:** L1 Code (commits) · L2 Tools (MCP manifests) · L3 Actions (agent runs) · L4 Money (AP2 — demo) · L5 Silicon (2029+)
|
|
81
|
+
|
|
82
|
+
**Hosted control plane:** identity, billing, authorization ledger, and Scroll Gate live at
|
|
78
83
|
[ssx360.com](https://ssx360.com/). Enterprise teams evaluating protected-branch enforcement should
|
|
79
84
|
[book a provenance pilot](https://ssx360.com/contact?intent=pilot) or visit
|
|
80
85
|
[ssx360.com/enterprise](https://ssx360.com/enterprise).
|
|
@@ -109,23 +114,27 @@ Agents sign commits in-loop via the **provenance-only** MCP server:
|
|
|
109
114
|
```
|
|
110
115
|
|
|
111
116
|
```bash
|
|
112
|
-
pip install "matrixscroll[mcp]==0.6.
|
|
117
|
+
pip install "matrixscroll[mcp]==0.6.1"
|
|
113
118
|
matrixscroll-mcp # stdio — register in Cursor / Claude Desktop / VS Code
|
|
114
119
|
```
|
|
115
120
|
|
|
116
121
|
**MCP tools (provenance verbs only):** `create_envelope`, `sign_action`, `verify_envelope`,
|
|
117
122
|
`verify_pr_range` (Scroll Gate), `publish_notes`, `status`, `audit_export`, `list_envelopes`,
|
|
118
|
-
`connect_card` (SE050 hardware
|
|
123
|
+
`connect_card` (SE050 hardware prototype — pilot evaluation; not GA).
|
|
119
124
|
|
|
120
125
|
**MCP trust tools (manifest surface):** `scan_mcp_server`, `sign_mcp_manifest`, `verify_mcp_manifest`.
|
|
121
126
|
|
|
122
127
|
### MCP Trust Scanner — catch a rug-pull in 60 seconds
|
|
123
128
|
|
|
129
|
+

|
|
130
|
+
|
|
131
|
+
[Watch on asciinema](https://asciinema.org/a/rbCRkIcZnjNWmqZF) · cast file: [`examples/demo/mcp-rugpull-demo.cast`](examples/demo/mcp-rugpull-demo.cast)
|
|
132
|
+
|
|
124
133
|
Sign the tool surface. Verify at install. Offline Ed25519 manifests for MCP rug-pull detection —
|
|
125
134
|
zero cloud, zero signup, exit code 2 fails your CI.
|
|
126
135
|
|
|
127
136
|
```bash
|
|
128
|
-
pip install matrixscroll
|
|
137
|
+
pip install "matrixscroll==0.6.1"
|
|
129
138
|
|
|
130
139
|
# 1. Scan a live MCP server (stdio) — fingerprints every tool: name, description, input schema
|
|
131
140
|
matrixscroll mcp scan --connect stdio --server-command "npx -y some-mcp-server" \
|
|
@@ -154,6 +163,18 @@ FAIL surface_drift — do not trust this server until you review the diff
|
|
|
154
163
|
Offline mode works too — no server needed: `matrixscroll mcp scan --tools ./tools.json`
|
|
155
164
|
accepts a plain JSON tool array or `{"tools": [...]}` (paste from any `tools/list` response).
|
|
156
165
|
|
|
166
|
+
Gate it in CI — fail the build on unsigned or drifted manifests with the reusable workflow:
|
|
167
|
+
|
|
168
|
+
```yaml
|
|
169
|
+
jobs:
|
|
170
|
+
mcp-gate:
|
|
171
|
+
uses: SSX360/matrixscroll-verify-action/.github/workflows/mcp-manifest-gate.yml@main
|
|
172
|
+
with:
|
|
173
|
+
manifest: mcp/my-server.signed.json
|
|
174
|
+
baseline: mcp/my-server.baseline.json
|
|
175
|
+
matrixscroll_version: "0.6.1"
|
|
176
|
+
```
|
|
177
|
+
|
|
157
178
|
Full scripted demo: [`examples/demo/mcp-rugpull-demo.sh`](examples/demo/mcp-rugpull-demo.sh)
|
|
158
179
|
Golden artifact (this repo's own MCP server, signed): [`examples/mcp/matrixscroll-mcp.signed.json`](examples/mcp/matrixscroll-mcp.signed.json)
|
|
159
180
|
Schema (CC0): [`schemas/ssx360.mcp-manifest.v1.json`](schemas/ssx360.mcp-manifest.v1.json)
|
|
@@ -163,7 +184,7 @@ Launch checklist: [`docs/SHOW-HN-MCP-TRUST-LAUNCH.md`](docs/SHOW-HN-MCP-TRUST-LA
|
|
|
163
184
|
## Also available — CLI & hooks
|
|
164
185
|
|
|
165
186
|
```bash
|
|
166
|
-
pip install "matrixscroll==0.6.
|
|
187
|
+
pip install "matrixscroll==0.6.1"
|
|
167
188
|
matrixscroll hook-install
|
|
168
189
|
export MATRIXSCROLL_ACTOR_TYPE=agent
|
|
169
190
|
export MATRIXSCROLL_TOOL=agent-runner
|
|
@@ -211,11 +232,13 @@ that produced it.
|
|
|
211
232
|
Keep GitHub Advanced Security, Semgrep, Snyk, branch protection, and artifact
|
|
212
233
|
attestations. Matrix Scroll adds signed commit-time authorship proof before
|
|
213
234
|
merge, and it keeps the same offline verification contract across the CLI,
|
|
214
|
-
browser, CI, and the SE050
|
|
235
|
+
browser, CI, and the SE050 hardware prototype path.
|
|
215
236
|
|
|
216
237
|
The reference SDK ships pure Ed25519 over canonical manifest bytes today. The
|
|
217
|
-
SSX360 / NXP SE050 path is the compatible next trust layer
|
|
218
|
-
|
|
238
|
+
SSX360 / NXP SE050 path is the compatible next trust layer: M1 signing PoC and
|
|
239
|
+
RP2350 + GMT130 display prototype are bench-validated; live SE050 on the
|
|
240
|
+
display bring-up UF2 remains fail-closed until the NXP backend is restored.
|
|
241
|
+
This is **prototype / pilot evaluation**, not a GA hardware product.
|
|
219
242
|
|
|
220
243
|
## RFC 8032 (Ed25519) alignment
|
|
221
244
|
|
|
@@ -227,13 +250,16 @@ canonical UTF-8 JSON bytes (see [`SPEC.md`](https://github.com/SSX360/matrixscro
|
|
|
227
250
|
|
|
228
251
|
## Honest limits
|
|
229
252
|
|
|
230
|
-
- Shipping now: PyPI `matrixscroll==0.6.
|
|
253
|
+
- Shipping now: PyPI `matrixscroll==0.6.1`, Git post-commit hooks,
|
|
231
254
|
`matrixscroll sign-action`, `matrixscroll scroll commit` (thin wrapper),
|
|
232
255
|
`matrixscroll envelope-verify`, Scroll Gate PR verification (partial SLSA L1–2),
|
|
233
|
-
verifier, the GitHub Action, and a USB CDC host transport
|
|
234
|
-
|
|
235
|
-
-
|
|
236
|
-
|
|
256
|
+
verifier, the GitHub Action, and a USB CDC host transport for the SE050
|
|
257
|
+
hardware prototype path. Emulated mode is the default evaluation path.
|
|
258
|
+
- Prototype (bench): Pico 2 W / RP2350 + GMT130 ST7789 LCD/LED bring-up locked
|
|
259
|
+
(2026-07-21); NXP SE050 M1 signing PoC accepted (Jul 2026) on contractor
|
|
260
|
+
firmware — not GA; display bring-up UF2 keeps `pubkey`/`sign` fail-closed
|
|
261
|
+
until Plug & Trust restore. External Ed25519-capable hardware key backends
|
|
262
|
+
and transparency-log integrations remain roadmap.
|
|
237
263
|
- Compliance language is evidence mapping (DORA, PCI DSS 4.0, Treasury FS-AI RMF, SSDF, EU AI Act Article 12 readiness, Five Eyes agentic-AI guidance), not certification or customer endorsement.
|
|
238
264
|
- Illustrative deployment profiles are not endorsements or existing customer relationships.
|
|
239
265
|
- Not: IAM, sandboxing, prompt filtering, or an agent runtime.
|
|
@@ -263,8 +289,9 @@ verify that proof offline in the CLI, browser, or CI before merge.
|
|
|
263
289
|
Emulated mode ships today and keeps the signing key on disk with owner-only
|
|
264
290
|
permissions so teams can evaluate the full workflow now. Hardware mode keeps
|
|
265
291
|
the same verifier contract and commit envelope schema, but moves the private
|
|
266
|
-
key into the SE050 secure element so the host cannot export it
|
|
267
|
-
|
|
292
|
+
key into the SE050 secure element so the host cannot export it. That path is
|
|
293
|
+
a bench-validated L2 Hardware prototype (Pico 2 W + SE050 M1 PoC) available
|
|
294
|
+
for pilot evaluation — not GA.
|
|
268
295
|
|
|
269
296
|
### How can I integrate Matrix Scroll into a CI/CD workflow?
|
|
270
297
|
|
|
@@ -277,7 +304,7 @@ alongside your existing scanners, branch protection, and build attestations.
|
|
|
277
304
|
## Quickstart (CLI)
|
|
278
305
|
|
|
279
306
|
```bash
|
|
280
|
-
pip install "matrixscroll==0.6.
|
|
307
|
+
pip install "matrixscroll==0.6.1"
|
|
281
308
|
matrixscroll hook-install
|
|
282
309
|
matrixscroll hook-status
|
|
283
310
|
|
|
@@ -306,7 +333,7 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and run
|
|
|
306
333
|
head-ref: ${{ github.event.pull_request.head.sha }}
|
|
307
334
|
base-ref: ${{ github.event.pull_request.base.sha }}
|
|
308
335
|
source: notes
|
|
309
|
-
matrixscroll-version: "0.6.
|
|
336
|
+
matrixscroll-version: "0.6.1"
|
|
310
337
|
require-mode: emulated
|
|
311
338
|
```
|
|
312
339
|
|
|
@@ -326,7 +353,7 @@ git push origin refs/notes/matrixscroll
|
|
|
326
353
|
head-ref: ${{ github.event.pull_request.head.sha }}
|
|
327
354
|
base-ref: ${{ github.event.pull_request.base.sha }}
|
|
328
355
|
source: notes
|
|
329
|
-
matrixscroll-version: "0.6.
|
|
356
|
+
matrixscroll-version: "0.6.1"
|
|
330
357
|
summary-output: provenance-summary.json
|
|
331
358
|
```
|
|
332
359
|
|
|
@@ -334,7 +361,7 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and
|
|
|
334
361
|
[`examples/ci/protected-branch.yml`](examples/ci/protected-branch.yml).
|
|
335
362
|
|
|
336
363
|
The `--require-mode`, `--trusted-keys`, and actor or delegation policy checks
|
|
337
|
-
ship in the current release line; examples in this README pin `0.6.
|
|
364
|
+
ship in the current release line; examples in this README pin `0.6.1`.
|
|
338
365
|
|
|
339
366
|
## Security: Ed25519 via cryptography
|
|
340
367
|
|
|
@@ -368,12 +395,12 @@ when they preserve the same pure Ed25519 byte contract.
|
|
|
368
395
|
- GitHub Action: <https://github.com/SSX360/matrixscroll-verify-action>
|
|
369
396
|
- Agentic AI controls: [`docs/AGENTIC_AI_SECURITY.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/AGENTIC_AI_SECURITY.md)
|
|
370
397
|
- Site: <https://matrixscroll.com> · Control plane: <https://ssx360.com> · Enterprise: <https://ssx360.com/enterprise>
|
|
371
|
-
- SE050 hardware
|
|
398
|
+
- SE050 hardware prototype: <https://ssx360.com/enterprise#roadmap> (bench-validated; not GA)
|
|
372
399
|
|
|
373
400
|
## Python API
|
|
374
401
|
|
|
375
402
|
```bash
|
|
376
|
-
pip install "matrixscroll==0.6.
|
|
403
|
+
pip install "matrixscroll==0.6.1"
|
|
377
404
|
```
|
|
378
405
|
|
|
379
406
|
```python
|
|
@@ -423,7 +450,7 @@ matrixscroll.sign_manifest(...) / post-commit hook
|
|
|
423
450
|
v
|
|
424
451
|
IdentityProvider --> Ed25519 signature
|
|
425
452
|
(L1 emulated today,
|
|
426
|
-
SSX360 / SE050
|
|
453
|
+
SSX360 / SE050 prototype — bench-validated)
|
|
427
454
|
|
|
|
428
455
|
v
|
|
429
456
|
signed document --> matrixscroll.verify_manifest(...)
|
|
@@ -431,21 +458,23 @@ signed document --> matrixscroll.verify_manifest(...)
|
|
|
431
458
|
```
|
|
432
459
|
|
|
433
460
|
Switch providers with `MATRIXSCROLL_MODE`. Hardware mode includes a USB CDC
|
|
434
|
-
host transport
|
|
435
|
-
|
|
436
|
-
|
|
461
|
+
host transport and a mock path for CI. The L2 Hardware prototype (Pico 2 W /
|
|
462
|
+
GMT130 display + SE050 M1 PoC) is bench-validated; live SE050 signing on the
|
|
463
|
+
display bring-up UF2 stays fail-closed until the NXP backend is restored.
|
|
464
|
+
External-key backends stay out of the mainline until they can sign the same
|
|
465
|
+
canonical bytes with Ed25519.
|
|
437
466
|
|
|
438
467
|
For rollout order, start with `MATRIXSCROLL_MODE=emulated` for evaluation,
|
|
439
468
|
layer in external Ed25519-capable signers only when they stay verifier
|
|
440
|
-
compatible, and treat `hardware` as the SE050
|
|
441
|
-
|
|
469
|
+
compatible, and treat `hardware` as the SE050 prototype path for pilot
|
|
470
|
+
evaluation — not GA.
|
|
442
471
|
|
|
443
472
|
## Compliance levels
|
|
444
473
|
|
|
445
474
|
| Level | Provider | Backed by | Status |
|
|
446
475
|
| ----- | -------- | --------- | ------ |
|
|
447
476
|
| **L1** Emulated | `EmulatedProvider` | Software key, file-backed (0600) | Shipping |
|
|
448
|
-
| **L2** Hardware | `HardwareProvider` | NXP SE050
|
|
477
|
+
| **L2** Hardware | `HardwareProvider` | NXP SE050 + Pico 2 W / RP2350 + GMT130 (SSX360) | Prototype (bench) |
|
|
449
478
|
| **L3** Attested | future | L2 + remote attestation | Roadmap |
|
|
450
479
|
|
|
451
480
|
`status()` exposes the active level via the `mode` and `available` fields.
|
|
@@ -484,7 +513,7 @@ The MCP server exposes **provenance verbs** (`create_envelope`, `verify_envelope
|
|
|
484
513
|
Install and register in Cursor / Claude Desktop / VS Code:
|
|
485
514
|
|
|
486
515
|
```bash
|
|
487
|
-
pip install "matrixscroll[mcp]==0.6.
|
|
516
|
+
pip install "matrixscroll[mcp]==0.6.1"
|
|
488
517
|
matrixscroll-mcp # stdio
|
|
489
518
|
```
|
|
490
519
|
|
|
@@ -10,13 +10,18 @@
|
|
|
10
10
|
|
|
11
11
|
**146 tests** · Hypothesis-verified security properties · [Security properties](https://github.com/SSX360/matrixscroll/blob/main/docs/SECURITY_PROPERTIES.md) · [TLA+ formal models](formal/README.md)
|
|
12
12
|
|
|
13
|
-
**
|
|
14
|
-
**open protocol for cryptographically signed
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
**Agent Authorization Authority — offline-verifiable proof for every machine action.** Matrix Scroll is an
|
|
14
|
+
**open protocol for cryptographically signed agent authorization** — Ed25519 records for Git commits (L1),
|
|
15
|
+
MCP tool surfaces (L2), and agent runs / NHI actions (L3), verified offline in CLI, browser, and CI.
|
|
16
|
+
Software emulated keys ship today; NXP SE050 secure-element signing is a
|
|
17
|
+
bench-validated PoC (Jul 2026) with the same verifier contract. The Pico 2 W /
|
|
18
|
+
GMT130 display bring-up is a locked L2 Hardware prototype (Jul 2026) — not GA.
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
*They receipt the model call. We receipt everything the machine does.*
|
|
21
|
+
|
|
22
|
+
**Authorization ladder:** L1 Code (commits) · L2 Tools (MCP manifests) · L3 Actions (agent runs) · L4 Money (AP2 — demo) · L5 Silicon (2029+)
|
|
23
|
+
|
|
24
|
+
**Hosted control plane:** identity, billing, authorization ledger, and Scroll Gate live at
|
|
20
25
|
[ssx360.com](https://ssx360.com/). Enterprise teams evaluating protected-branch enforcement should
|
|
21
26
|
[book a provenance pilot](https://ssx360.com/contact?intent=pilot) or visit
|
|
22
27
|
[ssx360.com/enterprise](https://ssx360.com/enterprise).
|
|
@@ -51,23 +56,27 @@ Agents sign commits in-loop via the **provenance-only** MCP server:
|
|
|
51
56
|
```
|
|
52
57
|
|
|
53
58
|
```bash
|
|
54
|
-
pip install "matrixscroll[mcp]==0.6.
|
|
59
|
+
pip install "matrixscroll[mcp]==0.6.1"
|
|
55
60
|
matrixscroll-mcp # stdio — register in Cursor / Claude Desktop / VS Code
|
|
56
61
|
```
|
|
57
62
|
|
|
58
63
|
**MCP tools (provenance verbs only):** `create_envelope`, `sign_action`, `verify_envelope`,
|
|
59
64
|
`verify_pr_range` (Scroll Gate), `publish_notes`, `status`, `audit_export`, `list_envelopes`,
|
|
60
|
-
`connect_card` (SE050 hardware
|
|
65
|
+
`connect_card` (SE050 hardware prototype — pilot evaluation; not GA).
|
|
61
66
|
|
|
62
67
|
**MCP trust tools (manifest surface):** `scan_mcp_server`, `sign_mcp_manifest`, `verify_mcp_manifest`.
|
|
63
68
|
|
|
64
69
|
### MCP Trust Scanner — catch a rug-pull in 60 seconds
|
|
65
70
|
|
|
71
|
+

|
|
72
|
+
|
|
73
|
+
[Watch on asciinema](https://asciinema.org/a/rbCRkIcZnjNWmqZF) · cast file: [`examples/demo/mcp-rugpull-demo.cast`](examples/demo/mcp-rugpull-demo.cast)
|
|
74
|
+
|
|
66
75
|
Sign the tool surface. Verify at install. Offline Ed25519 manifests for MCP rug-pull detection —
|
|
67
76
|
zero cloud, zero signup, exit code 2 fails your CI.
|
|
68
77
|
|
|
69
78
|
```bash
|
|
70
|
-
pip install matrixscroll
|
|
79
|
+
pip install "matrixscroll==0.6.1"
|
|
71
80
|
|
|
72
81
|
# 1. Scan a live MCP server (stdio) — fingerprints every tool: name, description, input schema
|
|
73
82
|
matrixscroll mcp scan --connect stdio --server-command "npx -y some-mcp-server" \
|
|
@@ -96,6 +105,18 @@ FAIL surface_drift — do not trust this server until you review the diff
|
|
|
96
105
|
Offline mode works too — no server needed: `matrixscroll mcp scan --tools ./tools.json`
|
|
97
106
|
accepts a plain JSON tool array or `{"tools": [...]}` (paste from any `tools/list` response).
|
|
98
107
|
|
|
108
|
+
Gate it in CI — fail the build on unsigned or drifted manifests with the reusable workflow:
|
|
109
|
+
|
|
110
|
+
```yaml
|
|
111
|
+
jobs:
|
|
112
|
+
mcp-gate:
|
|
113
|
+
uses: SSX360/matrixscroll-verify-action/.github/workflows/mcp-manifest-gate.yml@main
|
|
114
|
+
with:
|
|
115
|
+
manifest: mcp/my-server.signed.json
|
|
116
|
+
baseline: mcp/my-server.baseline.json
|
|
117
|
+
matrixscroll_version: "0.6.1"
|
|
118
|
+
```
|
|
119
|
+
|
|
99
120
|
Full scripted demo: [`examples/demo/mcp-rugpull-demo.sh`](examples/demo/mcp-rugpull-demo.sh)
|
|
100
121
|
Golden artifact (this repo's own MCP server, signed): [`examples/mcp/matrixscroll-mcp.signed.json`](examples/mcp/matrixscroll-mcp.signed.json)
|
|
101
122
|
Schema (CC0): [`schemas/ssx360.mcp-manifest.v1.json`](schemas/ssx360.mcp-manifest.v1.json)
|
|
@@ -105,7 +126,7 @@ Launch checklist: [`docs/SHOW-HN-MCP-TRUST-LAUNCH.md`](docs/SHOW-HN-MCP-TRUST-LA
|
|
|
105
126
|
## Also available — CLI & hooks
|
|
106
127
|
|
|
107
128
|
```bash
|
|
108
|
-
pip install "matrixscroll==0.6.
|
|
129
|
+
pip install "matrixscroll==0.6.1"
|
|
109
130
|
matrixscroll hook-install
|
|
110
131
|
export MATRIXSCROLL_ACTOR_TYPE=agent
|
|
111
132
|
export MATRIXSCROLL_TOOL=agent-runner
|
|
@@ -153,11 +174,13 @@ that produced it.
|
|
|
153
174
|
Keep GitHub Advanced Security, Semgrep, Snyk, branch protection, and artifact
|
|
154
175
|
attestations. Matrix Scroll adds signed commit-time authorship proof before
|
|
155
176
|
merge, and it keeps the same offline verification contract across the CLI,
|
|
156
|
-
browser, CI, and the SE050
|
|
177
|
+
browser, CI, and the SE050 hardware prototype path.
|
|
157
178
|
|
|
158
179
|
The reference SDK ships pure Ed25519 over canonical manifest bytes today. The
|
|
159
|
-
SSX360 / NXP SE050 path is the compatible next trust layer
|
|
160
|
-
|
|
180
|
+
SSX360 / NXP SE050 path is the compatible next trust layer: M1 signing PoC and
|
|
181
|
+
RP2350 + GMT130 display prototype are bench-validated; live SE050 on the
|
|
182
|
+
display bring-up UF2 remains fail-closed until the NXP backend is restored.
|
|
183
|
+
This is **prototype / pilot evaluation**, not a GA hardware product.
|
|
161
184
|
|
|
162
185
|
## RFC 8032 (Ed25519) alignment
|
|
163
186
|
|
|
@@ -169,13 +192,16 @@ canonical UTF-8 JSON bytes (see [`SPEC.md`](https://github.com/SSX360/matrixscro
|
|
|
169
192
|
|
|
170
193
|
## Honest limits
|
|
171
194
|
|
|
172
|
-
- Shipping now: PyPI `matrixscroll==0.6.
|
|
195
|
+
- Shipping now: PyPI `matrixscroll==0.6.1`, Git post-commit hooks,
|
|
173
196
|
`matrixscroll sign-action`, `matrixscroll scroll commit` (thin wrapper),
|
|
174
197
|
`matrixscroll envelope-verify`, Scroll Gate PR verification (partial SLSA L1–2),
|
|
175
|
-
verifier, the GitHub Action, and a USB CDC host transport
|
|
176
|
-
|
|
177
|
-
-
|
|
178
|
-
|
|
198
|
+
verifier, the GitHub Action, and a USB CDC host transport for the SE050
|
|
199
|
+
hardware prototype path. Emulated mode is the default evaluation path.
|
|
200
|
+
- Prototype (bench): Pico 2 W / RP2350 + GMT130 ST7789 LCD/LED bring-up locked
|
|
201
|
+
(2026-07-21); NXP SE050 M1 signing PoC accepted (Jul 2026) on contractor
|
|
202
|
+
firmware — not GA; display bring-up UF2 keeps `pubkey`/`sign` fail-closed
|
|
203
|
+
until Plug & Trust restore. External Ed25519-capable hardware key backends
|
|
204
|
+
and transparency-log integrations remain roadmap.
|
|
179
205
|
- Compliance language is evidence mapping (DORA, PCI DSS 4.0, Treasury FS-AI RMF, SSDF, EU AI Act Article 12 readiness, Five Eyes agentic-AI guidance), not certification or customer endorsement.
|
|
180
206
|
- Illustrative deployment profiles are not endorsements or existing customer relationships.
|
|
181
207
|
- Not: IAM, sandboxing, prompt filtering, or an agent runtime.
|
|
@@ -205,8 +231,9 @@ verify that proof offline in the CLI, browser, or CI before merge.
|
|
|
205
231
|
Emulated mode ships today and keeps the signing key on disk with owner-only
|
|
206
232
|
permissions so teams can evaluate the full workflow now. Hardware mode keeps
|
|
207
233
|
the same verifier contract and commit envelope schema, but moves the private
|
|
208
|
-
key into the SE050 secure element so the host cannot export it
|
|
209
|
-
|
|
234
|
+
key into the SE050 secure element so the host cannot export it. That path is
|
|
235
|
+
a bench-validated L2 Hardware prototype (Pico 2 W + SE050 M1 PoC) available
|
|
236
|
+
for pilot evaluation — not GA.
|
|
210
237
|
|
|
211
238
|
### How can I integrate Matrix Scroll into a CI/CD workflow?
|
|
212
239
|
|
|
@@ -219,7 +246,7 @@ alongside your existing scanners, branch protection, and build attestations.
|
|
|
219
246
|
## Quickstart (CLI)
|
|
220
247
|
|
|
221
248
|
```bash
|
|
222
|
-
pip install "matrixscroll==0.6.
|
|
249
|
+
pip install "matrixscroll==0.6.1"
|
|
223
250
|
matrixscroll hook-install
|
|
224
251
|
matrixscroll hook-status
|
|
225
252
|
|
|
@@ -248,7 +275,7 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and run
|
|
|
248
275
|
head-ref: ${{ github.event.pull_request.head.sha }}
|
|
249
276
|
base-ref: ${{ github.event.pull_request.base.sha }}
|
|
250
277
|
source: notes
|
|
251
|
-
matrixscroll-version: "0.6.
|
|
278
|
+
matrixscroll-version: "0.6.1"
|
|
252
279
|
require-mode: emulated
|
|
253
280
|
```
|
|
254
281
|
|
|
@@ -268,7 +295,7 @@ git push origin refs/notes/matrixscroll
|
|
|
268
295
|
head-ref: ${{ github.event.pull_request.head.sha }}
|
|
269
296
|
base-ref: ${{ github.event.pull_request.base.sha }}
|
|
270
297
|
source: notes
|
|
271
|
-
matrixscroll-version: "0.6.
|
|
298
|
+
matrixscroll-version: "0.6.1"
|
|
272
299
|
summary-output: provenance-summary.json
|
|
273
300
|
```
|
|
274
301
|
|
|
@@ -276,7 +303,7 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and
|
|
|
276
303
|
[`examples/ci/protected-branch.yml`](examples/ci/protected-branch.yml).
|
|
277
304
|
|
|
278
305
|
The `--require-mode`, `--trusted-keys`, and actor or delegation policy checks
|
|
279
|
-
ship in the current release line; examples in this README pin `0.6.
|
|
306
|
+
ship in the current release line; examples in this README pin `0.6.1`.
|
|
280
307
|
|
|
281
308
|
## Security: Ed25519 via cryptography
|
|
282
309
|
|
|
@@ -310,12 +337,12 @@ when they preserve the same pure Ed25519 byte contract.
|
|
|
310
337
|
- GitHub Action: <https://github.com/SSX360/matrixscroll-verify-action>
|
|
311
338
|
- Agentic AI controls: [`docs/AGENTIC_AI_SECURITY.md`](https://github.com/SSX360/matrixscroll/blob/main/docs/AGENTIC_AI_SECURITY.md)
|
|
312
339
|
- Site: <https://matrixscroll.com> · Control plane: <https://ssx360.com> · Enterprise: <https://ssx360.com/enterprise>
|
|
313
|
-
- SE050 hardware
|
|
340
|
+
- SE050 hardware prototype: <https://ssx360.com/enterprise#roadmap> (bench-validated; not GA)
|
|
314
341
|
|
|
315
342
|
## Python API
|
|
316
343
|
|
|
317
344
|
```bash
|
|
318
|
-
pip install "matrixscroll==0.6.
|
|
345
|
+
pip install "matrixscroll==0.6.1"
|
|
319
346
|
```
|
|
320
347
|
|
|
321
348
|
```python
|
|
@@ -365,7 +392,7 @@ matrixscroll.sign_manifest(...) / post-commit hook
|
|
|
365
392
|
v
|
|
366
393
|
IdentityProvider --> Ed25519 signature
|
|
367
394
|
(L1 emulated today,
|
|
368
|
-
SSX360 / SE050
|
|
395
|
+
SSX360 / SE050 prototype — bench-validated)
|
|
369
396
|
|
|
|
370
397
|
v
|
|
371
398
|
signed document --> matrixscroll.verify_manifest(...)
|
|
@@ -373,21 +400,23 @@ signed document --> matrixscroll.verify_manifest(...)
|
|
|
373
400
|
```
|
|
374
401
|
|
|
375
402
|
Switch providers with `MATRIXSCROLL_MODE`. Hardware mode includes a USB CDC
|
|
376
|
-
host transport
|
|
377
|
-
|
|
378
|
-
|
|
403
|
+
host transport and a mock path for CI. The L2 Hardware prototype (Pico 2 W /
|
|
404
|
+
GMT130 display + SE050 M1 PoC) is bench-validated; live SE050 signing on the
|
|
405
|
+
display bring-up UF2 stays fail-closed until the NXP backend is restored.
|
|
406
|
+
External-key backends stay out of the mainline until they can sign the same
|
|
407
|
+
canonical bytes with Ed25519.
|
|
379
408
|
|
|
380
409
|
For rollout order, start with `MATRIXSCROLL_MODE=emulated` for evaluation,
|
|
381
410
|
layer in external Ed25519-capable signers only when they stay verifier
|
|
382
|
-
compatible, and treat `hardware` as the SE050
|
|
383
|
-
|
|
411
|
+
compatible, and treat `hardware` as the SE050 prototype path for pilot
|
|
412
|
+
evaluation — not GA.
|
|
384
413
|
|
|
385
414
|
## Compliance levels
|
|
386
415
|
|
|
387
416
|
| Level | Provider | Backed by | Status |
|
|
388
417
|
| ----- | -------- | --------- | ------ |
|
|
389
418
|
| **L1** Emulated | `EmulatedProvider` | Software key, file-backed (0600) | Shipping |
|
|
390
|
-
| **L2** Hardware | `HardwareProvider` | NXP SE050
|
|
419
|
+
| **L2** Hardware | `HardwareProvider` | NXP SE050 + Pico 2 W / RP2350 + GMT130 (SSX360) | Prototype (bench) |
|
|
391
420
|
| **L3** Attested | future | L2 + remote attestation | Roadmap |
|
|
392
421
|
|
|
393
422
|
`status()` exposes the active level via the `mode` and `available` fields.
|
|
@@ -426,7 +455,7 @@ The MCP server exposes **provenance verbs** (`create_envelope`, `verify_envelope
|
|
|
426
455
|
Install and register in Cursor / Claude Desktop / VS Code:
|
|
427
456
|
|
|
428
457
|
```bash
|
|
429
|
-
pip install "matrixscroll[mcp]==0.6.
|
|
458
|
+
pip install "matrixscroll[mcp]==0.6.1"
|
|
430
459
|
matrixscroll-mcp # stdio
|
|
431
460
|
```
|
|
432
461
|
|
|
@@ -11,7 +11,7 @@ who want to trial Matrix Scroll without changing their core workflow.
|
|
|
11
11
|
|
|
12
12
|
## 15-minute pilot
|
|
13
13
|
|
|
14
|
-
1. Install `matrixscroll==0.6.
|
|
14
|
+
1. Install `matrixscroll==0.6.1` in one repo.
|
|
15
15
|
2. Run `matrixscroll hook-install`.
|
|
16
16
|
3. Make one agent-assisted commit and verify it locally.
|
|
17
17
|
4. Publish notes with `matrixscroll envelope-publish-notes`.
|
|
@@ -38,7 +38,7 @@ jobs:
|
|
|
38
38
|
head-ref: ${{ github.event.pull_request.head.sha }}
|
|
39
39
|
base-ref: ${{ github.event.pull_request.base.sha }}
|
|
40
40
|
source: notes
|
|
41
|
-
matrixscroll-version: "0.6.
|
|
41
|
+
matrixscroll-version: "0.6.1"
|
|
42
42
|
require-mode: emulated
|
|
43
43
|
```
|
|
44
44
|
|
|
@@ -64,7 +64,7 @@ jobs:
|
|
|
64
64
|
## Clean-machine proof status
|
|
65
65
|
|
|
66
66
|
Recorded on `2026-06-21` against the pinned public flow:
|
|
67
|
-
`pip install "matrixscroll==0.6.
|
|
67
|
+
`pip install "matrixscroll==0.6.1"` -> `matrixscroll hook-install` ->
|
|
68
68
|
`matrixscroll hook-status` -> first agent-assisted commit ->
|
|
69
69
|
`matrixscroll envelope-verify`.
|
|
70
70
|
|
|
@@ -19,7 +19,7 @@ These answers are different, and mature teams usually want both.
|
|
|
19
19
|
| Main unit | Commit envelope | Package, container, or predicate |
|
|
20
20
|
| Actor / tool in record | Yes | Usually no |
|
|
21
21
|
| Offline verify | Yes | Varies by workflow |
|
|
22
|
-
| Hardware path |
|
|
22
|
+
| Hardware path | Prototype (bench) | External to the standard flow; not GA |
|
|
23
23
|
|
|
24
24
|
## Where Matrix Scroll fits
|
|
25
25
|
|
|
@@ -46,7 +46,7 @@ Post-sunset Ed25519-only envelopes rejected when org policy mandates PQC
|
|
|
46
46
|
| FIPS 204 | ML-DSA (Dilithium) | Primary PQC signature | `ml-dsa-44/65/87` via liboqs |
|
|
47
47
|
| FIPS 205 | SLH-DSA (SPHINCS+) | Hash-based backup | `slh-dsa-sha2-128s/f` |
|
|
48
48
|
|
|
49
|
-
Enable: `pip install "matrixscroll[pqc]==0.6.
|
|
49
|
+
Enable: `pip install "matrixscroll[pqc]==0.6.1"` and `MATRIXSCROLL_PQC=ml-dsa-65`.
|
|
50
50
|
|
|
51
51
|
## POC 2 audit answers
|
|
52
52
|
|
|
@@ -20,7 +20,7 @@ The buyer is a security or platform team, but the user who decides if we win is
|
|
|
20
20
|
|
|
21
21
|
### 3. Every claim must be falsifiable — in marketing, in code, in README.
|
|
22
22
|
|
|
23
|
-
The Honest Limits section is the brand. Emulated signing is called emulated. Hardware
|
|
23
|
+
The Honest Limits section is the brand. Emulated signing is called emulated. Hardware prototype (bench) is not "hardware-backed signing ships today" and is never GA until productized. Illustrative deployment profiles carry their disclaimer. "Aligned to SSDF / EU AI Act," never "certified" until a third party says so. The site, the PyPI page, the action README, and the sales deck must say the identical thing — the buyer we want is trained to find the gap, and finding one costs us the category. Unfalsifiable copy ("100% of AI writes") is a bug; file it and fix it like one.
|
|
24
24
|
|
|
25
25
|
### 4. Dogfood the provenance or don't ship it.
|
|
26
26
|
|
|
@@ -35,7 +35,7 @@ The market's live pain: unattributed machine-speed writes are breaking platforms
|
|
|
35
35
|
- **Evidence Pack** as the flagship artifact. Signed, versioned, downloadable, self-verifying, mapped field-by-field to the frameworks we name. Optimize its legibility before optimizing anything else.
|
|
36
36
|
- **Verification everywhere git goes.** CI gate hardening, server-side enforcement for self-hosters, offline verify, browser verify. Verification speed, determinism, and zero-false-positive behavior are the performance metrics that matter.
|
|
37
37
|
- **Forge-agnostic integrations** as first-class citizens: the same install, the same gate, the same export on GitHub, GitLab, and Forgejo/Gitea. Treat every integration doc as a landing page.
|
|
38
|
-
- **Hardware as device-bound identity** — activation, custody, revocation, offboarding. One clear story. The secure-element signing path graduates
|
|
38
|
+
- **Hardware as device-bound identity** — activation, custody, revocation, offboarding. One clear story. The secure-element signing path is a bench-validated prototype for pilot evaluation; it graduates to GA only when productized, and not one sentence sooner.
|
|
39
39
|
- **Crawlability and machine-readability** of everything public. Specs, docs, llms.txt, sitemaps, plain-markdown paths. When a buyer's AI assistant is asked "what is Matrix Scroll," our own text must be the answer.
|
|
40
40
|
|
|
41
41
|
## Hold — maintained, not grown
|
|
@@ -12,7 +12,7 @@ five-minute path from `pip install` to a verifiable commit envelope.
|
|
|
12
12
|
## 1. Install the SDK
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
pip install "matrixscroll==0.6.
|
|
15
|
+
pip install "matrixscroll==0.6.1"
|
|
16
16
|
matrixscroll hook-install
|
|
17
17
|
matrixscroll hook-status
|
|
18
18
|
```
|
|
@@ -61,7 +61,7 @@ git push origin refs/notes/matrixscroll
|
|
|
61
61
|
head-ref: ${{ github.event.pull_request.head.sha }}
|
|
62
62
|
base-ref: ${{ github.event.pull_request.base.sha }}
|
|
63
63
|
source: notes
|
|
64
|
-
matrixscroll-version: "0.6.
|
|
64
|
+
matrixscroll-version: "0.6.1"
|
|
65
65
|
require-mode: emulated
|
|
66
66
|
```
|
|
67
67
|
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
| ------- | --- | ------------- |
|
|
43
43
|
| SSX360 | https://ssx360.com | Vercel production |
|
|
44
44
|
| Matrix Scroll | https://matrixscroll.com | Vercel production |
|
|
45
|
-
| PyPI | https://pypi.org/project/matrixscroll/0.6.
|
|
45
|
+
| PyPI | https://pypi.org/project/matrixscroll/0.6.1/ | v0.6.0 (ssx360 CLIs on PyPI) |
|
|
46
46
|
|
|
47
47
|
## 7. Reviewer artifacts
|
|
48
48
|
|