matrixscroll 0.3.0__tar.gz → 0.4.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.3.0 → matrixscroll-0.4.1}/CHANGELOG.md +12 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/PKG-INFO +66 -38
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/README.md +57 -32
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/controls/agentic_ai_controls.json +2 -2
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/ADOPTER_KIT.md +3 -3
- matrixscroll-0.4.1/docs/ADOPTION.md +13 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/COMPARISON.md +1 -1
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/FIVE_MINUTES.md +2 -2
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/ROADMAP_2026-07.md +2 -2
- matrixscroll-0.4.1/docs/SECURITY_PROPERTIES.md +36 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/WHITEPAPER.md +4 -4
- matrixscroll-0.4.1/docs/commercial/PLATFORM_PIVOT.md +62 -0
- matrixscroll-0.4.1/docs/commercial/SCROLL_GATE_V2.md +82 -0
- matrixscroll-0.4.1/docs/commercial/SSX360_SCROLL.md +31 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/hardware-provider.md +1 -1
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/quickstart-agent.md +1 -1
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/quickstart-claude-code.md +1 -1
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/quickstart-git.md +4 -4
- matrixscroll-0.4.1/docs/quickstart-mcp.md +62 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/rekor-guac-bridge-design.md +1 -1
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/ci/protected-branch.yml +3 -3
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/__init__.py +1 -1
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/_claim.py +1 -1
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/cli.py +72 -0
- matrixscroll-0.4.1/matrixscroll/cloud/__init__.py +19 -0
- matrixscroll-0.4.1/matrixscroll/cloud/client.py +118 -0
- matrixscroll-0.4.1/matrixscroll/mcp.py +672 -0
- matrixscroll-0.4.1/matrixscroll/provenance/__init__.py +24 -0
- matrixscroll-0.4.1/matrixscroll/provenance/actions.py +110 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/providers/se050_transport.py +1 -1
- matrixscroll-0.4.1/matrixscroll/scroll/README.md +37 -0
- matrixscroll-0.4.1/matrixscroll/scroll/__init__.py +94 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/pyproject.toml +11 -8
- matrixscroll-0.4.1/schemas/action-envelope.v1.json +152 -0
- matrixscroll-0.4.1/tests/test_provenance.py +73 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_release_metadata.py +2 -2
- matrixscroll-0.4.1/tests/test_security_properties.py +57 -0
- matrixscroll-0.3.0/docs/quickstart-mcp.md +0 -50
- matrixscroll-0.3.0/matrixscroll/mcp.py +0 -167
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/.gitignore +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/CONTRIBUTING.md +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/LICENSE +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/SECURITY.md +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/SPEC.md +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/AGENTIC_AI_SECURITY.md +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/CI_HARD_GATE.md +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/COMMIT_TIME_VS_ARTIFACT_TIME.md +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/HERO_DEMO.md +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/SE050_POC_SCOPE.md +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/SE050_USB_PROTOCOL.md +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/SOFTWARE_PRODUCTS.md +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/delegation-attestation-rfc.md +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/registries-guide.md +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/superpowers/plans/2026-06-19-ci-action-plan.md +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/superpowers/plans/2026-06-19-sdk-refactor-plan.md +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/superpowers/specs/2026-06-19-matrixscroll-git-design.md +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/yubikey-bridge.md +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/docs/yubikey-smoke.md +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/agentic_ai_evidence_manifest.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/agentic_ai_evidence_manifest.signed.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/commit-envelope.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/commit-envelope.signed.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/demo/agent-commit-demo.sh +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/demo/generate_signed_examples.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/demo/hero-self-attestation-demo.sh +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/release-manifest.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/release-manifest.signed.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/examples/trusted-keys-policy.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/_core.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/_payment.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/canonical.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/constants.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/errors.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/gate.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/git.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/guac_export.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/hooks/post-commit +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/hooks/pre-push +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/manifest.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/mcp_core.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/policy.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/providers/__init__.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/providers/base.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/providers/emulated.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/providers/hardware.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/providers/registry.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/providers/tpm.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/providers/yubikey.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/py.typed +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/matrixscroll/rekor_publish.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/schemas/commit-envelope.v1.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/schemas/evidence-pack.v1.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/schemas/release-manifest.v1.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/__init__.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/fixtures/github-gpgsig-commit.txt +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_agentic_guidance.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_canonical.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_cli.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_core.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_gate.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_git_envelope.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_guac_rekor.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_mcp_core.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_mcp_server.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_policy.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_se050_transport.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_tpm_provider.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_vectors.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/tests/test_yubikey_provider.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/README.md +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/_fixture_key.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/_generate.py +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/tampered_algorithm.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/tampered_device_id.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/tampered_field.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/tampered_nested.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/tampered_public_key.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/tampered_schema.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/tampered_signature.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/unsigned_empty_block.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/unsigned_no_block.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/valid_commit_envelope.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/valid_nested.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/valid_simple.json +0 -0
- {matrixscroll-0.3.0 → matrixscroll-0.4.1}/vectors/valid_unicode.json +0 -0
|
@@ -4,6 +4,18 @@ 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.4.1] - 2026-06-29
|
|
8
|
+
|
|
9
|
+
Universal provenance SDK expansion and SSX360 Scroll Phase 1 wrapper.
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- **`matrixscroll.provenance`** — action envelope builders for `ci_step`, `iac_change`,
|
|
13
|
+
`db_migration`, `api_call`, and `contract_deploy` (`schemas/action-envelope.v1.json`).
|
|
14
|
+
- **`matrixscroll sign-action`** CLI — sign typed action envelopes with Ed25519.
|
|
15
|
+
- **`matrixscroll scroll commit`** — thin Git wrapper (Phase 1; not a Git replacement).
|
|
16
|
+
- **MCP** — `sign_action` validates typed payloads; new `matrixscroll://schema/action-envelope.v1` resource.
|
|
17
|
+
- **Docs** — SSX360 Scroll brief, Scroll Gate v2 SLSA L1–2 honest mapping.
|
|
18
|
+
|
|
7
19
|
## [0.3.0] - 2026-06-28
|
|
8
20
|
|
|
9
21
|
Digital Rain removal and provenance-only SDK surface.
|
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: matrixscroll
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.1
|
|
4
4
|
Summary: Signed provenance for agent-assisted Git commits with offline verification; emulated Ed25519 ships today and the SE050 hardware path remains an optional preview.
|
|
5
|
-
Project-URL: Homepage, https://
|
|
6
|
-
Project-URL: Documentation, https://
|
|
5
|
+
Project-URL: Homepage, https://ssx360.com
|
|
6
|
+
Project-URL: Documentation, https://ssx360.com/docs
|
|
7
|
+
Project-URL: Repository, https://github.com/SSX360/matrixscroll
|
|
7
8
|
Project-URL: Source, https://github.com/SSX360/matrixscroll
|
|
8
9
|
Project-URL: Issues, https://github.com/SSX360/matrixscroll/issues
|
|
9
10
|
Project-URL: Specification, https://github.com/SSX360/matrixscroll/blob/main/SPEC.md
|
|
10
11
|
Project-URL: Whitepaper, https://github.com/SSX360/matrixscroll/blob/main/docs/WHITEPAPER.md
|
|
11
|
-
Project-URL: Verifier, https://
|
|
12
|
-
Project-URL: Compare, https://
|
|
12
|
+
Project-URL: Verifier, https://ssx360.com/verify
|
|
13
|
+
Project-URL: Compare, https://ssx360.com/docs
|
|
13
14
|
Project-URL: Changelog, https://github.com/SSX360/matrixscroll/blob/main/CHANGELOG.md
|
|
14
15
|
Project-URL: Discussions, https://github.com/SSX360/matrixscroll/discussions
|
|
15
16
|
Project-URL: Security, https://github.com/SSX360/matrixscroll/blob/main/SECURITY.md
|
|
16
17
|
Project-URL: GitHub Action, https://github.com/SSX360/matrixscroll-verify-action
|
|
17
18
|
Project-URL: PyPI Provenance, https://pypi.org/project/matrixscroll/
|
|
19
|
+
Project-URL: Reference Device, https://ssx360.com/hardware
|
|
18
20
|
Project-URL: Tests, https://github.com/SSX360/matrixscroll/tree/main/tests
|
|
19
21
|
Project-URL: Public Roadmap, https://github.com/SSX360/matrixscroll/blob/main/docs/ROADMAP_2026-07.md
|
|
20
|
-
Project-URL: Reference Device, https://matrixscroll.com/device
|
|
21
22
|
Author-email: SSX360 <security@matrixscroll.com>
|
|
22
23
|
License-Expression: Apache-2.0
|
|
23
24
|
License-File: LICENSE
|
|
@@ -40,6 +41,8 @@ Requires-Python: >=3.10
|
|
|
40
41
|
Requires-Dist: cryptography>=41.0
|
|
41
42
|
Provides-Extra: dev
|
|
42
43
|
Requires-Dist: build>=1.0; extra == 'dev'
|
|
44
|
+
Requires-Dist: hypothesis>=6.100; extra == 'dev'
|
|
45
|
+
Requires-Dist: pytest-cov>=4.1; extra == 'dev'
|
|
43
46
|
Requires-Dist: pytest>=7.4; extra == 'dev'
|
|
44
47
|
Provides-Extra: git
|
|
45
48
|
Provides-Extra: hardware
|
|
@@ -53,14 +56,21 @@ Description-Content-Type: text/markdown
|
|
|
53
56
|
|
|
54
57
|
# Matrix Scroll
|
|
55
58
|
|
|
59
|
+
[](https://github.com/SSX360/matrixscroll/actions/workflows/ci-unit.yml)
|
|
60
|
+
[](https://github.com/SSX360/matrixscroll/actions/workflows/provenance-gate.yml)
|
|
61
|
+
[](https://codecov.io/gh/SSX360/matrixscroll)
|
|
62
|
+
|
|
63
|
+
**112 tests** · Hypothesis-verified security properties · [Security properties](docs/SECURITY_PROPERTIES.md)
|
|
64
|
+
|
|
56
65
|
**Signed proof of who — or what — wrote every commit.** Matrix Scroll is the
|
|
57
|
-
open Ed25519
|
|
66
|
+
**universal provenance SDK** — open Ed25519 envelopes for Git commits, CI steps,
|
|
67
|
+
IaC changes, DB migrations, API calls, and smart-contract deploys — verified
|
|
58
68
|
offline in CLI, browser, and CI. Hardware (SE050) is an optional preview trust
|
|
59
69
|
upgrade; emulated mode ships today.
|
|
60
70
|
|
|
61
71
|
**Hosted control plane:** identity, billing, and device confirmation live at
|
|
62
72
|
[ssx360.com](https://ssx360.com/). Teams evaluating protected-branch enforcement should
|
|
63
|
-
[book a provenance pilot](
|
|
73
|
+
[book a provenance pilot](https://ssx360.com/contact?intent=pilot);
|
|
64
74
|
Provisioned pilot and team accounts sign in at [ssx360.com/signup](https://ssx360.com/signup).
|
|
65
75
|
|
|
66
76
|
## Compliance evidence mapping
|
|
@@ -74,22 +84,6 @@ Matrix Scroll **maps to** and **produces evidence for** (never “required by”
|
|
|
74
84
|
|
|
75
85
|
Full matrix: [`controls/agentic_ai_controls.json`](controls/agentic_ai_controls.json)
|
|
76
86
|
|
|
77
|
-
## Adoption signals
|
|
78
|
-
|
|
79
|
-
Track outbound and registry traction while rolling out:
|
|
80
|
-
|
|
81
|
-
| Signal | Counter |
|
|
82
|
-
|--------|---------|
|
|
83
|
-
| PyPI `matrixscroll` | [](https://pypi.org/project/matrixscroll/) |
|
|
84
|
-
| PyPI `[mcp]` extra | [](https://pypi.org/project/matrixscroll/) |
|
|
85
|
-
| GitHub stars | [](https://github.com/SSX360/matrixscroll/stargazers) |
|
|
86
|
-
| Scroll Gate Action | [](https://github.com/SSX360/matrixscroll-verify-action) |
|
|
87
|
-
| Glama MCP registry | [matrixscroll on Glama](https://glama.ai/mcp/servers/SSX360/matrixscroll) |
|
|
88
|
-
|
|
89
|
-
## Hero demo (post–MCP merge)
|
|
90
|
-
|
|
91
|
-
Record the 60–90s provenance flow in [`docs/HERO_DEMO.md`](docs/HERO_DEMO.md) — Scroll Gate + browser verifier + MCP verbs only.
|
|
92
|
-
|
|
93
87
|
## Install — MCP server (headline path)
|
|
94
88
|
|
|
95
89
|
Agents sign commits in-loop via the **provenance-only** MCP server:
|
|
@@ -106,17 +100,18 @@ Agents sign commits in-loop via the **provenance-only** MCP server:
|
|
|
106
100
|
```
|
|
107
101
|
|
|
108
102
|
```bash
|
|
109
|
-
pip install "matrixscroll[mcp]==0.
|
|
103
|
+
pip install "matrixscroll[mcp]==0.4.1"
|
|
110
104
|
matrixscroll-mcp # stdio — register in Cursor / Claude Desktop / VS Code
|
|
111
105
|
```
|
|
112
106
|
|
|
113
|
-
**MCP tools (provenance verbs only):** `create_envelope`, `verify_envelope`,
|
|
114
|
-
`verify_pr_range` (Scroll Gate), `publish_notes`, `status`, `audit_export
|
|
107
|
+
**MCP tools (provenance verbs only):** `create_envelope`, `sign_action`, `verify_envelope`,
|
|
108
|
+
`verify_pr_range` (Scroll Gate), `publish_notes`, `status`, `audit_export`, `list_envelopes`,
|
|
109
|
+
`connect_card` (SE050 preview).
|
|
115
110
|
|
|
116
111
|
## Also available — CLI & hooks
|
|
117
112
|
|
|
118
113
|
```bash
|
|
119
|
-
pip install "matrixscroll==0.
|
|
114
|
+
pip install "matrixscroll==0.4.1"
|
|
120
115
|
matrixscroll hook-install
|
|
121
116
|
export MATRIXSCROLL_ACTOR_TYPE=agent
|
|
122
117
|
export MATRIXSCROLL_TOOL=agent-runner
|
|
@@ -124,6 +119,29 @@ git commit -m "feat: agent-assisted change"
|
|
|
124
119
|
matrixscroll envelope-verify "$(git rev-parse HEAD)"
|
|
125
120
|
```
|
|
126
121
|
|
|
122
|
+
### Universal action envelopes (Layer 2)
|
|
123
|
+
|
|
124
|
+
Sign provenance for CI, IaC, migrations, API calls, and contract deploys:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
matrixscroll sign-action --type ci_step \
|
|
128
|
+
--payload ./payloads/ci-step.json \
|
|
129
|
+
--output ./ci-step.signed.json \
|
|
130
|
+
--actor-type ci
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Action schema: [`schemas/action-envelope.v1.json`](schemas/action-envelope.v1.json)
|
|
134
|
+
|
|
135
|
+
### SSX360 Scroll — Git wrapper (Layer 3, Phase 1)
|
|
136
|
+
|
|
137
|
+
Git under the hood; governance on top. **Not a Git replacement.**
|
|
138
|
+
|
|
139
|
+
```bash
|
|
140
|
+
matrixscroll scroll commit -m "feat: governed commit"
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
See [`docs/commercial/SSX360_SCROLL.md`](docs/commercial/SSX360_SCROLL.md).
|
|
144
|
+
|
|
127
145
|
See [`docs/quickstart-git.md`](docs/quickstart-git.md) and
|
|
128
146
|
[`examples/demo/agent-commit-demo.sh`](examples/demo/agent-commit-demo.sh).
|
|
129
147
|
|
|
@@ -147,13 +165,22 @@ The reference SDK ships pure Ed25519 over canonical manifest bytes today. The
|
|
|
147
165
|
SSX360 / NXP SE050 path is the compatible next trust layer and remains a
|
|
148
166
|
preview path until device acceptance is complete.
|
|
149
167
|
|
|
168
|
+
## RFC 8032 (Ed25519) alignment
|
|
169
|
+
|
|
170
|
+
Matrix Scroll v1 binds exclusively to [RFC 8032](https://www.rfc-editor.org/rfc/rfc8032)
|
|
171
|
+
Ed25519: 32-byte seeds, 32-byte public keys, 64-byte detached signatures over
|
|
172
|
+
canonical UTF-8 JSON bytes (see [`SPEC.md`](SPEC.md) §4). Verifiers reject any
|
|
173
|
+
`signature.algorithm` other than `"ed25519"`. Conformance vectors live in
|
|
174
|
+
[`vectors/`](vectors/); property tests in [`docs/SECURITY_PROPERTIES.md`](docs/SECURITY_PROPERTIES.md).
|
|
175
|
+
|
|
150
176
|
## Honest limits
|
|
151
177
|
|
|
152
|
-
- Shipping now: PyPI `matrixscroll==0.
|
|
153
|
-
`matrixscroll
|
|
178
|
+
- Shipping now: PyPI `matrixscroll==0.4.1`, Git post-commit hooks,
|
|
179
|
+
`matrixscroll sign-action`, `matrixscroll scroll commit` (thin wrapper),
|
|
180
|
+
`matrixscroll envelope-verify`, Scroll Gate PR verification (partial SLSA L1–2),
|
|
154
181
|
verifier, the GitHub Action, and a USB CDC host transport preview for the
|
|
155
182
|
SE050 rollout path. Emulated mode is the default evaluation path.
|
|
156
|
-
- In progress:
|
|
183
|
+
- In progress: nRF52840 + SE050 firmware validation (AP2 Vault Card PoC), external Ed25519-capable
|
|
157
184
|
hardware key backends, and transparency-log integrations.
|
|
158
185
|
- Not: IAM, sandboxing, prompt filtering, or an agent runtime.
|
|
159
186
|
|
|
@@ -194,7 +221,7 @@ alongside your existing scanners, branch protection, and build attestations.
|
|
|
194
221
|
## Quickstart (CLI)
|
|
195
222
|
|
|
196
223
|
```bash
|
|
197
|
-
pip install "matrixscroll==0.
|
|
224
|
+
pip install "matrixscroll==0.4.1"
|
|
198
225
|
matrixscroll hook-install
|
|
199
226
|
matrixscroll hook-status
|
|
200
227
|
|
|
@@ -221,7 +248,7 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and run
|
|
|
221
248
|
head-ref: ${{ github.event.pull_request.head.sha }}
|
|
222
249
|
base-ref: ${{ github.event.pull_request.base.sha }}
|
|
223
250
|
source: notes
|
|
224
|
-
matrixscroll-version: "0.
|
|
251
|
+
matrixscroll-version: "0.4.1"
|
|
225
252
|
require-mode: emulated
|
|
226
253
|
```
|
|
227
254
|
|
|
@@ -241,7 +268,7 @@ git push origin refs/notes/matrixscroll
|
|
|
241
268
|
head-ref: ${{ github.event.pull_request.head.sha }}
|
|
242
269
|
base-ref: ${{ github.event.pull_request.base.sha }}
|
|
243
270
|
source: notes
|
|
244
|
-
matrixscroll-version: "0.
|
|
271
|
+
matrixscroll-version: "0.4.1"
|
|
245
272
|
summary-output: provenance-summary.json
|
|
246
273
|
```
|
|
247
274
|
|
|
@@ -273,12 +300,12 @@ when they preserve the same pure Ed25519 byte contract.
|
|
|
273
300
|
- GitHub Action: <https://github.com/SSX360/matrixscroll-verify-action>
|
|
274
301
|
- Agentic AI controls: [`docs/AGENTIC_AI_SECURITY.md`](docs/AGENTIC_AI_SECURITY.md)
|
|
275
302
|
- Site: <https://matrixscroll.com>
|
|
276
|
-
- Reference device path: [
|
|
303
|
+
- Reference device path: [AP2 Vault Card hardware](https://ssx360.com/hardware)
|
|
277
304
|
|
|
278
305
|
## Python API
|
|
279
306
|
|
|
280
307
|
```bash
|
|
281
|
-
pip install "matrixscroll==0.
|
|
308
|
+
pip install "matrixscroll==0.4.1"
|
|
282
309
|
```
|
|
283
310
|
|
|
284
311
|
```python
|
|
@@ -388,7 +415,7 @@ The MCP server exposes **provenance verbs only**: `create_envelope`, `verify_env
|
|
|
388
415
|
Install and register in Cursor / Claude Desktop / VS Code:
|
|
389
416
|
|
|
390
417
|
```bash
|
|
391
|
-
pip install "matrixscroll[mcp]==0.
|
|
418
|
+
pip install "matrixscroll[mcp]==0.4.1"
|
|
392
419
|
matrixscroll-mcp # stdio
|
|
393
420
|
```
|
|
394
421
|
|
|
@@ -402,7 +429,8 @@ the recommended `mcp.json` snippet.
|
|
|
402
429
|
|
|
403
430
|
## Security
|
|
404
431
|
|
|
405
|
-
See [`SECURITY.md`](SECURITY.md)
|
|
432
|
+
See [`SECURITY.md`](SECURITY.md) and [`docs/SECURITY_PROPERTIES.md`](docs/SECURITY_PROPERTIES.md).
|
|
433
|
+
Report vulnerabilities privately to
|
|
406
434
|
**security@matrixscroll.com** or via a GitHub Security Advisory.
|
|
407
435
|
|
|
408
436
|
---
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
# Matrix Scroll
|
|
2
2
|
|
|
3
|
+
[](https://github.com/SSX360/matrixscroll/actions/workflows/ci-unit.yml)
|
|
4
|
+
[](https://github.com/SSX360/matrixscroll/actions/workflows/provenance-gate.yml)
|
|
5
|
+
[](https://codecov.io/gh/SSX360/matrixscroll)
|
|
6
|
+
|
|
7
|
+
**112 tests** · Hypothesis-verified security properties · [Security properties](docs/SECURITY_PROPERTIES.md)
|
|
8
|
+
|
|
3
9
|
**Signed proof of who — or what — wrote every commit.** Matrix Scroll is the
|
|
4
|
-
open Ed25519
|
|
10
|
+
**universal provenance SDK** — open Ed25519 envelopes for Git commits, CI steps,
|
|
11
|
+
IaC changes, DB migrations, API calls, and smart-contract deploys — verified
|
|
5
12
|
offline in CLI, browser, and CI. Hardware (SE050) is an optional preview trust
|
|
6
13
|
upgrade; emulated mode ships today.
|
|
7
14
|
|
|
8
15
|
**Hosted control plane:** identity, billing, and device confirmation live at
|
|
9
16
|
[ssx360.com](https://ssx360.com/). Teams evaluating protected-branch enforcement should
|
|
10
|
-
[book a provenance pilot](
|
|
17
|
+
[book a provenance pilot](https://ssx360.com/contact?intent=pilot);
|
|
11
18
|
Provisioned pilot and team accounts sign in at [ssx360.com/signup](https://ssx360.com/signup).
|
|
12
19
|
|
|
13
20
|
## Compliance evidence mapping
|
|
@@ -21,22 +28,6 @@ Matrix Scroll **maps to** and **produces evidence for** (never “required by”
|
|
|
21
28
|
|
|
22
29
|
Full matrix: [`controls/agentic_ai_controls.json`](controls/agentic_ai_controls.json)
|
|
23
30
|
|
|
24
|
-
## Adoption signals
|
|
25
|
-
|
|
26
|
-
Track outbound and registry traction while rolling out:
|
|
27
|
-
|
|
28
|
-
| Signal | Counter |
|
|
29
|
-
|--------|---------|
|
|
30
|
-
| PyPI `matrixscroll` | [](https://pypi.org/project/matrixscroll/) |
|
|
31
|
-
| PyPI `[mcp]` extra | [](https://pypi.org/project/matrixscroll/) |
|
|
32
|
-
| GitHub stars | [](https://github.com/SSX360/matrixscroll/stargazers) |
|
|
33
|
-
| Scroll Gate Action | [](https://github.com/SSX360/matrixscroll-verify-action) |
|
|
34
|
-
| Glama MCP registry | [matrixscroll on Glama](https://glama.ai/mcp/servers/SSX360/matrixscroll) |
|
|
35
|
-
|
|
36
|
-
## Hero demo (post–MCP merge)
|
|
37
|
-
|
|
38
|
-
Record the 60–90s provenance flow in [`docs/HERO_DEMO.md`](docs/HERO_DEMO.md) — Scroll Gate + browser verifier + MCP verbs only.
|
|
39
|
-
|
|
40
31
|
## Install — MCP server (headline path)
|
|
41
32
|
|
|
42
33
|
Agents sign commits in-loop via the **provenance-only** MCP server:
|
|
@@ -53,17 +44,18 @@ Agents sign commits in-loop via the **provenance-only** MCP server:
|
|
|
53
44
|
```
|
|
54
45
|
|
|
55
46
|
```bash
|
|
56
|
-
pip install "matrixscroll[mcp]==0.
|
|
47
|
+
pip install "matrixscroll[mcp]==0.4.1"
|
|
57
48
|
matrixscroll-mcp # stdio — register in Cursor / Claude Desktop / VS Code
|
|
58
49
|
```
|
|
59
50
|
|
|
60
|
-
**MCP tools (provenance verbs only):** `create_envelope`, `verify_envelope`,
|
|
61
|
-
`verify_pr_range` (Scroll Gate), `publish_notes`, `status`, `audit_export
|
|
51
|
+
**MCP tools (provenance verbs only):** `create_envelope`, `sign_action`, `verify_envelope`,
|
|
52
|
+
`verify_pr_range` (Scroll Gate), `publish_notes`, `status`, `audit_export`, `list_envelopes`,
|
|
53
|
+
`connect_card` (SE050 preview).
|
|
62
54
|
|
|
63
55
|
## Also available — CLI & hooks
|
|
64
56
|
|
|
65
57
|
```bash
|
|
66
|
-
pip install "matrixscroll==0.
|
|
58
|
+
pip install "matrixscroll==0.4.1"
|
|
67
59
|
matrixscroll hook-install
|
|
68
60
|
export MATRIXSCROLL_ACTOR_TYPE=agent
|
|
69
61
|
export MATRIXSCROLL_TOOL=agent-runner
|
|
@@ -71,6 +63,29 @@ git commit -m "feat: agent-assisted change"
|
|
|
71
63
|
matrixscroll envelope-verify "$(git rev-parse HEAD)"
|
|
72
64
|
```
|
|
73
65
|
|
|
66
|
+
### Universal action envelopes (Layer 2)
|
|
67
|
+
|
|
68
|
+
Sign provenance for CI, IaC, migrations, API calls, and contract deploys:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
matrixscroll sign-action --type ci_step \
|
|
72
|
+
--payload ./payloads/ci-step.json \
|
|
73
|
+
--output ./ci-step.signed.json \
|
|
74
|
+
--actor-type ci
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Action schema: [`schemas/action-envelope.v1.json`](schemas/action-envelope.v1.json)
|
|
78
|
+
|
|
79
|
+
### SSX360 Scroll — Git wrapper (Layer 3, Phase 1)
|
|
80
|
+
|
|
81
|
+
Git under the hood; governance on top. **Not a Git replacement.**
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
matrixscroll scroll commit -m "feat: governed commit"
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
See [`docs/commercial/SSX360_SCROLL.md`](docs/commercial/SSX360_SCROLL.md).
|
|
88
|
+
|
|
74
89
|
See [`docs/quickstart-git.md`](docs/quickstart-git.md) and
|
|
75
90
|
[`examples/demo/agent-commit-demo.sh`](examples/demo/agent-commit-demo.sh).
|
|
76
91
|
|
|
@@ -94,13 +109,22 @@ The reference SDK ships pure Ed25519 over canonical manifest bytes today. The
|
|
|
94
109
|
SSX360 / NXP SE050 path is the compatible next trust layer and remains a
|
|
95
110
|
preview path until device acceptance is complete.
|
|
96
111
|
|
|
112
|
+
## RFC 8032 (Ed25519) alignment
|
|
113
|
+
|
|
114
|
+
Matrix Scroll v1 binds exclusively to [RFC 8032](https://www.rfc-editor.org/rfc/rfc8032)
|
|
115
|
+
Ed25519: 32-byte seeds, 32-byte public keys, 64-byte detached signatures over
|
|
116
|
+
canonical UTF-8 JSON bytes (see [`SPEC.md`](SPEC.md) §4). Verifiers reject any
|
|
117
|
+
`signature.algorithm` other than `"ed25519"`. Conformance vectors live in
|
|
118
|
+
[`vectors/`](vectors/); property tests in [`docs/SECURITY_PROPERTIES.md`](docs/SECURITY_PROPERTIES.md).
|
|
119
|
+
|
|
97
120
|
## Honest limits
|
|
98
121
|
|
|
99
|
-
- Shipping now: PyPI `matrixscroll==0.
|
|
100
|
-
`matrixscroll
|
|
122
|
+
- Shipping now: PyPI `matrixscroll==0.4.1`, Git post-commit hooks,
|
|
123
|
+
`matrixscroll sign-action`, `matrixscroll scroll commit` (thin wrapper),
|
|
124
|
+
`matrixscroll envelope-verify`, Scroll Gate PR verification (partial SLSA L1–2),
|
|
101
125
|
verifier, the GitHub Action, and a USB CDC host transport preview for the
|
|
102
126
|
SE050 rollout path. Emulated mode is the default evaluation path.
|
|
103
|
-
- In progress:
|
|
127
|
+
- In progress: nRF52840 + SE050 firmware validation (AP2 Vault Card PoC), external Ed25519-capable
|
|
104
128
|
hardware key backends, and transparency-log integrations.
|
|
105
129
|
- Not: IAM, sandboxing, prompt filtering, or an agent runtime.
|
|
106
130
|
|
|
@@ -141,7 +165,7 @@ alongside your existing scanners, branch protection, and build attestations.
|
|
|
141
165
|
## Quickstart (CLI)
|
|
142
166
|
|
|
143
167
|
```bash
|
|
144
|
-
pip install "matrixscroll==0.
|
|
168
|
+
pip install "matrixscroll==0.4.1"
|
|
145
169
|
matrixscroll hook-install
|
|
146
170
|
matrixscroll hook-status
|
|
147
171
|
|
|
@@ -168,7 +192,7 @@ See [`docs/quickstart-git.md`](docs/quickstart-git.md) and run
|
|
|
168
192
|
head-ref: ${{ github.event.pull_request.head.sha }}
|
|
169
193
|
base-ref: ${{ github.event.pull_request.base.sha }}
|
|
170
194
|
source: notes
|
|
171
|
-
matrixscroll-version: "0.
|
|
195
|
+
matrixscroll-version: "0.4.1"
|
|
172
196
|
require-mode: emulated
|
|
173
197
|
```
|
|
174
198
|
|
|
@@ -188,7 +212,7 @@ git push origin refs/notes/matrixscroll
|
|
|
188
212
|
head-ref: ${{ github.event.pull_request.head.sha }}
|
|
189
213
|
base-ref: ${{ github.event.pull_request.base.sha }}
|
|
190
214
|
source: notes
|
|
191
|
-
matrixscroll-version: "0.
|
|
215
|
+
matrixscroll-version: "0.4.1"
|
|
192
216
|
summary-output: provenance-summary.json
|
|
193
217
|
```
|
|
194
218
|
|
|
@@ -220,12 +244,12 @@ when they preserve the same pure Ed25519 byte contract.
|
|
|
220
244
|
- GitHub Action: <https://github.com/SSX360/matrixscroll-verify-action>
|
|
221
245
|
- Agentic AI controls: [`docs/AGENTIC_AI_SECURITY.md`](docs/AGENTIC_AI_SECURITY.md)
|
|
222
246
|
- Site: <https://matrixscroll.com>
|
|
223
|
-
- Reference device path: [
|
|
247
|
+
- Reference device path: [AP2 Vault Card hardware](https://ssx360.com/hardware)
|
|
224
248
|
|
|
225
249
|
## Python API
|
|
226
250
|
|
|
227
251
|
```bash
|
|
228
|
-
pip install "matrixscroll==0.
|
|
252
|
+
pip install "matrixscroll==0.4.1"
|
|
229
253
|
```
|
|
230
254
|
|
|
231
255
|
```python
|
|
@@ -335,7 +359,7 @@ The MCP server exposes **provenance verbs only**: `create_envelope`, `verify_env
|
|
|
335
359
|
Install and register in Cursor / Claude Desktop / VS Code:
|
|
336
360
|
|
|
337
361
|
```bash
|
|
338
|
-
pip install "matrixscroll[mcp]==0.
|
|
362
|
+
pip install "matrixscroll[mcp]==0.4.1"
|
|
339
363
|
matrixscroll-mcp # stdio
|
|
340
364
|
```
|
|
341
365
|
|
|
@@ -349,7 +373,8 @@ the recommended `mcp.json` snippet.
|
|
|
349
373
|
|
|
350
374
|
## Security
|
|
351
375
|
|
|
352
|
-
See [`SECURITY.md`](SECURITY.md)
|
|
376
|
+
See [`SECURITY.md`](SECURITY.md) and [`docs/SECURITY_PROPERTIES.md`](docs/SECURITY_PROPERTIES.md).
|
|
377
|
+
Report vulnerabilities privately to
|
|
353
378
|
**security@matrixscroll.com** or via a GitHub Security Advisory.
|
|
354
379
|
|
|
355
380
|
---
|
|
@@ -78,7 +78,7 @@
|
|
|
78
78
|
"title": "Supply-chain and dependency management",
|
|
79
79
|
"guidance": "Understand third-party components, models, tools, integrations, and update exposure.",
|
|
80
80
|
"matrixscroll_control": "The repo uses minimal runtime dependencies, Dependabot, CI build verification, and a public spec/conformance suite.",
|
|
81
|
-
"evidence_paths": ["pyproject.toml", ".github/dependabot.yml", ".github/workflows/
|
|
81
|
+
"evidence_paths": ["pyproject.toml", ".github/dependabot.yml", ".github/workflows/ci-unit.yml", "vectors/README.md"],
|
|
82
82
|
"goes_beyond": "Third-party implementations can self-test against public vectors before being trusted."
|
|
83
83
|
},
|
|
84
84
|
{
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"title": "Governance and change control",
|
|
95
95
|
"guidance": "Integrate agentic AI risk with existing security governance and define ownership before deployment.",
|
|
96
96
|
"matrixscroll_control": "Spec, core crypto, vectors, security policy, and CI are CODEOWNERS-protected and tested across OS/Python versions.",
|
|
97
|
-
"evidence_paths": [".github/CODEOWNERS", ".github/workflows/
|
|
97
|
+
"evidence_paths": [".github/CODEOWNERS", ".github/workflows/ci-unit.yml", ".github/workflows/ci-integration.yml", "CONTRIBUTING.md"],
|
|
98
98
|
"goes_beyond": "Protocol-impacting changes require both human review and machine conformance checks."
|
|
99
99
|
},
|
|
100
100
|
{
|
|
@@ -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.
|
|
14
|
+
1. Install `matrixscroll==0.3.0` 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.
|
|
41
|
+
matrixscroll-version: "0.3.0"
|
|
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.
|
|
67
|
+
`pip install "matrixscroll==0.3.0"` -> `matrixscroll hook-install` ->
|
|
68
68
|
`matrixscroll hook-status` -> first agent-assisted commit ->
|
|
69
69
|
`matrixscroll envelope-verify`.
|
|
70
70
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Adoption signals (internal)
|
|
2
|
+
|
|
3
|
+
Track outbound and registry traction while rolling out. Not published on the public README.
|
|
4
|
+
|
|
5
|
+
| Signal | Counter |
|
|
6
|
+
|--------|---------|
|
|
7
|
+
| PyPI `matrixscroll` | [](https://pypi.org/project/matrixscroll/) |
|
|
8
|
+
| PyPI `[mcp]` extra | [](https://pypi.org/project/matrixscroll/) |
|
|
9
|
+
| GitHub stars | [](https://github.com/SSX360/matrixscroll/stargazers) |
|
|
10
|
+
| Scroll Gate Action | [](https://github.com/SSX360/matrixscroll-verify-action) |
|
|
11
|
+
| Glama MCP registry | [matrixscroll on Glama](https://glama.ai/mcp/servers/SSX360/matrixscroll) |
|
|
12
|
+
|
|
13
|
+
Update this file during GTM reviews; keep badges out of user-facing install docs.
|
|
@@ -60,7 +60,7 @@ No single competitor listed above combines all four today.
|
|
|
60
60
|
- **CI gate:** Scroll Gate ships in **0.2.3+** — PR commit-range verification via `envelope-verify-range`, git notes transport (`refs/notes/matrixscroll`), and filesystem bundles. [`matrixscroll-verify-action`](https://github.com/SSX360/matrixscroll-verify-action) supports `head-ref`/`base-ref` range mode with agent/human counts.
|
|
61
61
|
- **Owner/delegation attestation:** Optional `delegation` block in commit envelope schema (**0.2.4+**); see [`delegation-attestation-rfc.md`](delegation-attestation-rfc.md). Alien still leads on OIDC/DPoP owner binding.
|
|
62
62
|
- **Multi-agent commits:** Multiple actors in one envelope — on the roadmap.
|
|
63
|
-
- **Rekor / GUAC export:** Dry-run CLI ships in **0.
|
|
63
|
+
- **Rekor / GUAC export:** Dry-run CLI ships in **0.3.0** (`envelope-publish-rekor`, `envelope-export-guac`); full Rekor upload integration still in progress.
|
|
64
64
|
- **Hardware:** SSX360 reference device and Scroll Key retail are **in progress**; L1 emulated key is what you can use now.
|
|
65
65
|
|
|
66
66
|
## When to use what
|
|
@@ -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.
|
|
15
|
+
pip install "matrixscroll==0.3.0"
|
|
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.
|
|
64
|
+
matrixscroll-version: "0.3.0"
|
|
65
65
|
require-mode: emulated
|
|
66
66
|
```
|
|
67
67
|
|
|
@@ -8,13 +8,13 @@ what ships now before widening the story.
|
|
|
8
8
|
## Baseline on June 21, 2026
|
|
9
9
|
|
|
10
10
|
- GitHub: early public repo, product-first docs, and offline verification
|
|
11
|
-
- Current public release target: `matrixscroll==0.
|
|
11
|
+
- Current public release target: `matrixscroll==0.3.0`
|
|
12
12
|
- Public trust contract: pure Ed25519 over canonical manifest bytes
|
|
13
13
|
- Hardware path: SSX360 SE050 reference implementation in progress
|
|
14
14
|
|
|
15
15
|
## Next 7 days
|
|
16
16
|
|
|
17
|
-
- cut and publish `0.
|
|
17
|
+
- cut and publish `0.3.0` without widening the manifest or verify surface
|
|
18
18
|
- make the GitHub Action a real public proof surface
|
|
19
19
|
- align site, README, action docs, and PyPI around one install flow
|
|
20
20
|
- remove broken links and stale release drift from public copy
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Matrix Scroll security properties
|
|
2
|
+
|
|
3
|
+
Machine-checkable guarantees for the reference SDK (v0.4.0). Properties marked
|
|
4
|
+
**verified** have Hypothesis property tests in `tests/test_security_properties.py`.
|
|
5
|
+
Formal TLA+ models are on the public roadmap.
|
|
6
|
+
|
|
7
|
+
| ID | Property | Statement | Status |
|
|
8
|
+
| -- | -------- | ----------- | ------ |
|
|
9
|
+
| **P1** | Sign–verify roundtrip | For any canonical manifest bytes, `verify(pub, msg, sign(msg, key))` is true when `pub` derives from the same key material. | **Verified** (Hypothesis) |
|
|
10
|
+
| **P2** | Tamper detection | Changing any signed byte (manifest body or signature octet) causes verification to fail. | **Verified** (Hypothesis) |
|
|
11
|
+
| **P3** | Wrong-key rejection | A signature valid under key A MUST NOT verify under key B's public key. | **Verified** (Hypothesis) |
|
|
12
|
+
| **P4** | Canonical determinism | Identical logical manifests produce identical signing input bytes after canonical JSON encoding (sorted keys, ASCII escapes, no NaN). | **Verified** (unit + vectors) |
|
|
13
|
+
| **P5** | Offline verification | Envelope verification requires no network, hosted API, or hardware ping once the envelope and trusted key set are local. | **Verified** (unit) |
|
|
14
|
+
| **P6** | Algorithm binding | Only Ed25519 (RFC 8032) signatures with `algorithm: "ed25519"` are accepted; other algorithms are rejected. | **Verified** (unit + vectors) |
|
|
15
|
+
|
|
16
|
+
## Standards alignment
|
|
17
|
+
|
|
18
|
+
- **Ed25519:** [RFC 8032](https://www.rfc-editor.org/rfc/rfc8032) — 32-byte seed, 32-byte public key, 64-byte signature.
|
|
19
|
+
- **Canonical JSON:** Deterministic UTF-8 encoding per [`SPEC.md`](../SPEC.md) §4.
|
|
20
|
+
- **Commit envelopes:** `matrixscroll.commit_envelope.v1` schema in [`schemas/commit-envelope.v1.json`](../schemas/commit-envelope.v1.json).
|
|
21
|
+
|
|
22
|
+
## Trust modes (honest scope)
|
|
23
|
+
|
|
24
|
+
| Mode | Private key location | Shipping status |
|
|
25
|
+
| ---- | -------------------- | --------------- |
|
|
26
|
+
| **Emulated** | Owner-only file (`~/.matrixscroll/device.json`, mode 0600) | **Shipping today** |
|
|
27
|
+
| **Hardware (SE050)** | NXP secure element on AP2 Vault Card pilot | **Pilot / preview** — same verifier contract, key not exportable from chip |
|
|
28
|
+
|
|
29
|
+
## Roadmap (not claimed today)
|
|
30
|
+
|
|
31
|
+
- TLA+ specification of Scroll Gate merge semantics
|
|
32
|
+
- Third-party cryptographic audit and public threat model
|
|
33
|
+
- npm `@ssx360/verify` browser/Node verifier package
|
|
34
|
+
- IETF informational draft for commit-envelope wire format
|
|
35
|
+
|
|
36
|
+
See [`SECURITY.md`](../SECURITY.md) for vulnerability reporting.
|
|
@@ -71,7 +71,7 @@ Full wire format: [`SPEC.md`](../SPEC.md). Schema: [`schemas/commit-envelope.v1.
|
|
|
71
71
|
### 1. Install
|
|
72
72
|
|
|
73
73
|
```bash
|
|
74
|
-
pip install "matrixscroll==0.
|
|
74
|
+
pip install "matrixscroll==0.3.0"
|
|
75
75
|
matrixscroll hook-install
|
|
76
76
|
matrixscroll hook-status
|
|
77
77
|
```
|
|
@@ -87,7 +87,7 @@ matrixscroll envelope-verify "$(git rev-parse HEAD)"
|
|
|
87
87
|
|
|
88
88
|
Hooks default to **warn mode**; set `"enforce": true` in `.git/matrixscroll/config.json` to block commits when signing fails. See [`docs/quickstart-git.md`](quickstart-git.md).
|
|
89
89
|
|
|
90
|
-
**Windows:** support landed in matrixscroll **0.2.1**; pin **0.
|
|
90
|
+
**Windows:** support landed in matrixscroll **0.2.1**; pin **0.3.0** or newer in pilot environments.
|
|
91
91
|
|
|
92
92
|
### 3. CI gate
|
|
93
93
|
|
|
@@ -95,12 +95,12 @@ Hooks default to **warn mode**; set `"enforce": true` in `.git/matrixscroll/conf
|
|
|
95
95
|
- uses: SSX360/matrixscroll-verify-action@v1
|
|
96
96
|
with:
|
|
97
97
|
manifest: path/to/signed-manifest.json
|
|
98
|
-
matrixscroll-version: "0.
|
|
98
|
+
matrixscroll-version: "0.3.0"
|
|
99
99
|
require-mode: emulated
|
|
100
100
|
trusted-keys: trusted-keys.json
|
|
101
101
|
```
|
|
102
102
|
|
|
103
|
-
Policy flags (`--require-mode`, `--trusted-keys`) are available in the `0.2.x` line; this whitepaper pins `0.
|
|
103
|
+
Policy flags (`--require-mode`, `--trusted-keys`) are available in the `0.2.x` line; this whitepaper pins `0.3.0` for copy-and-paste examples.
|
|
104
104
|
|
|
105
105
|
### 4. Optional scope manifest
|
|
106
106
|
|