vouch-protocol 1.6.0__tar.gz → 1.6.2__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.
- vouch_protocol-1.6.2/PKG-INFO +822 -0
- vouch_protocol-1.6.2/README.md +546 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/pyproject.toml +2 -2
- vouch_protocol-1.6.2/tests/test_attribution.py +152 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_delegation_chain.py +16 -15
- vouch_protocol-1.6.2/tests/test_security_hardening.py +65 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_signer_vc.py +18 -24
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_verifier_vc.py +1 -1
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/async_verifier.py +1 -31
- vouch_protocol-1.6.2/vouch/attribution.py +595 -0
- vouch_protocol-1.6.2/vouch/attribution_cli.py +292 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/bridge/audio_routes.py +1 -3
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/bridge/config.py +3 -27
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/bridge/server.py +3 -22
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/cli.py +51 -2
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/did_web.py +1 -3
- vouch_protocol-1.6.2/vouch/integrations/_common.py +91 -0
- vouch_protocol-1.6.2/vouch/integrations/a2a.py +81 -0
- vouch_protocol-1.6.2/vouch/integrations/autogen/tool.py +44 -0
- vouch_protocol-1.6.2/vouch/integrations/crewai/tool.py +53 -0
- vouch_protocol-1.6.2/vouch/integrations/langchain/tool.py +104 -0
- vouch_protocol-1.6.2/vouch/integrations/mcp/__init__.py +5 -0
- vouch_protocol-1.6.2/vouch/integrations/mcp/server.py +94 -0
- vouch_protocol-1.6.2/vouch/integrations/mlflow.py +101 -0
- vouch_protocol-1.6.2/vouch/integrations/safetensors.py +126 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/jcs.py +14 -32
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/multikey.py +2 -10
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/onboard.py +25 -17
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/revocation.py +7 -47
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/signer.py +22 -55
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/ssrf.py +1 -1
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/status_list.py +1 -24
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/verification.py +5 -5
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/verifier.py +1 -111
- vouch_protocol-1.6.2/vouch_protocol.egg-info/PKG-INFO +822 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch_protocol.egg-info/SOURCES.txt +8 -9
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch_protocol.egg-info/requires.txt +1 -1
- vouch_protocol-1.6.0/PKG-INFO +0 -498
- vouch_protocol-1.6.0/README.md +0 -222
- vouch_protocol-1.6.0/tests/test_attenuation_vectors.py +0 -74
- vouch_protocol-1.6.0/tests/test_phase1_delegation.py +0 -53
- vouch_protocol-1.6.0/tests/test_phase2_hardening.py +0 -53
- vouch_protocol-1.6.0/tests/test_phase3_hardening.py +0 -69
- vouch_protocol-1.6.0/tests/test_pro.py +0 -336
- vouch_protocol-1.6.0/tests/test_sensitive_vault.py +0 -91
- vouch_protocol-1.6.0/vouch/attenuation.py +0 -481
- vouch_protocol-1.6.0/vouch/ephemeral.py +0 -165
- vouch_protocol-1.6.0/vouch/integrations/autogen/tool.py +0 -59
- vouch_protocol-1.6.0/vouch/integrations/crewai/tool.py +0 -68
- vouch_protocol-1.6.0/vouch/integrations/langchain/tool.py +0 -122
- vouch_protocol-1.6.0/vouch/integrations/mcp/__init__.py +0 -5
- vouch_protocol-1.6.0/vouch/integrations/mcp/server.py +0 -474
- vouch_protocol-1.6.0/vouch/sensitive_vault.py +0 -191
- vouch_protocol-1.6.0/vouch_protocol.egg-info/PKG-INFO +0 -498
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/LICENSE +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/MANIFEST.in +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/setup.cfg +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_async_verifier.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_audio_bridge.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_auditor.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_behavioral_attestation.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_bridge.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_c2pa_formats.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_cache.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_canary.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_data_integrity.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_git_workflow.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_hasura_integration.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_heartbeat.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_hybrid.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_hybrid_interop.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_jcs.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_jcs_interop.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_media_badge.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_media_native.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_merkle.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_multikey.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_nonce.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_quorum.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_reputation.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_revocation.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_scan.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_signer.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_signer_reputation.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_status_list.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_trust_entropy.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_vc.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/tests/test_verifier.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/__init__.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/audio.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/auditor.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/behavioral_attestation.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/bridge/__init__.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/cache.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/canary.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/config.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/data_integrity.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/data_integrity_hybrid.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/heartbeat.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/integrations/adk.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/integrations/amnesia.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/integrations/autogen/__init__.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/integrations/autogpt/__init__.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/integrations/autogpt/commands.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/integrations/crewai/__init__.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/integrations/google.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/integrations/hasura/__init__.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/integrations/hasura/webhook.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/integrations/langchain/__init__.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/integrations/n8n.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/integrations/streamlit/__init__.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/integrations/streamlit/seal.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/integrations/vertex_ai/__init__.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/integrations/vertex_ai/tool.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/keys.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/kms.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/media/__init__.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/media/badge.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/media/c2pa.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/media/native.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/merkle.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/metrics.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/nonce.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/quorum.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/ratelimit.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/registry.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/reputation.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/scan/__init__.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/scan/detector.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/scan/patterns.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/seal.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/shield/__init__.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/shield/demo.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/shield/flight_recorder.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/shield/permissions.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/shield/shield.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/shield/trust_registry.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/status_list_fetcher.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/trust_entropy.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch/vc.py +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch_protocol.egg-info/dependency_links.txt +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch_protocol.egg-info/entry_points.txt +0 -0
- {vouch_protocol-1.6.0 → vouch_protocol-1.6.2}/vouch_protocol.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,822 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: vouch-protocol
|
|
3
|
+
Version: 1.6.2
|
|
4
|
+
Summary: The Identity & Reputation Standard for AI Agents
|
|
5
|
+
Author-email: Vouch Protocol Contributors <hello@vouch-protocol.com>
|
|
6
|
+
License: Apache License 2.0
|
|
7
|
+
==================
|
|
8
|
+
|
|
9
|
+
Copyright 2025 Vouch Protocol Contributors
|
|
10
|
+
|
|
11
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
12
|
+
you may not use this file except in compliance with the License.
|
|
13
|
+
You may obtain a copy of the License at
|
|
14
|
+
|
|
15
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
16
|
+
|
|
17
|
+
Unless required by applicable law or agreed to in writing, software
|
|
18
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
19
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
20
|
+
See the License for the specific language governing permissions and
|
|
21
|
+
limitations under the License.
|
|
22
|
+
|
|
23
|
+
NOTE: The Vouch Protocol specification may be contributed to W3C
|
|
24
|
+
Verifiable Credentials Working Group as a separate standards track.
|
|
25
|
+
|
|
26
|
+
================================================================================
|
|
27
|
+
|
|
28
|
+
Apache License
|
|
29
|
+
Version 2.0, January 2004
|
|
30
|
+
http://www.apache.org/licenses/
|
|
31
|
+
|
|
32
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
33
|
+
|
|
34
|
+
1. Definitions.
|
|
35
|
+
|
|
36
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
37
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
38
|
+
|
|
39
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
40
|
+
the copyright owner that is granting the License.
|
|
41
|
+
|
|
42
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
43
|
+
other entities that control, are controlled by, or are under common
|
|
44
|
+
control with that entity. For the purposes of this definition,
|
|
45
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
46
|
+
direction or management of such entity, whether by contract or
|
|
47
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
48
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
49
|
+
|
|
50
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
51
|
+
exercising permissions granted by this License.
|
|
52
|
+
|
|
53
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
54
|
+
including but not limited to software source code, documentation
|
|
55
|
+
source, and configuration files.
|
|
56
|
+
|
|
57
|
+
"Object" form shall mean any form resulting from mechanical
|
|
58
|
+
transformation or translation of a Source form, including but
|
|
59
|
+
not limited to compiled object code, generated documentation,
|
|
60
|
+
and conversions to other media types.
|
|
61
|
+
|
|
62
|
+
"Work" shall mean the work of authorship, whether in Source or
|
|
63
|
+
Object form, made available under the License, as indicated by a
|
|
64
|
+
copyright notice that is included in or attached to the work
|
|
65
|
+
(an example is provided in the Appendix below).
|
|
66
|
+
|
|
67
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
68
|
+
form, that is based on (or derived from) the Work and for which the
|
|
69
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
70
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
71
|
+
of this License, Derivative Works shall not include works that remain
|
|
72
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
73
|
+
the Work and Derivative Works thereof.
|
|
74
|
+
|
|
75
|
+
"Contribution" shall mean any work of authorship, including
|
|
76
|
+
the original version of the Work and any modifications or additions
|
|
77
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
78
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
79
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
80
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
81
|
+
means any form of electronic, verbal, or written communication sent
|
|
82
|
+
to the Licensor or its representatives, including but not limited to
|
|
83
|
+
communication on electronic mailing lists, source code control systems,
|
|
84
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
85
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
86
|
+
excluding communication that is conspicuously marked or otherwise
|
|
87
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
88
|
+
|
|
89
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
90
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
91
|
+
subsequently incorporated within the Work.
|
|
92
|
+
|
|
93
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
94
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
95
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
96
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
97
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
98
|
+
Work and such Derivative Works in Source or Object form.
|
|
99
|
+
|
|
100
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
101
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
102
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
103
|
+
(except as stated in this section) patent license to make, have made,
|
|
104
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
105
|
+
where such license applies only to those patent claims licensable
|
|
106
|
+
by such Contributor that are necessarily infringed by their
|
|
107
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
108
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
109
|
+
institute patent litigation against any entity (including a
|
|
110
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
111
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
112
|
+
or contributory patent infringement, then any patent licenses
|
|
113
|
+
granted to You under this License for that Work shall terminate
|
|
114
|
+
as of the date such litigation is filed.
|
|
115
|
+
|
|
116
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
117
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
118
|
+
modifications, and in Source or Object form, provided that You
|
|
119
|
+
meet the following conditions:
|
|
120
|
+
|
|
121
|
+
(a) You must give any other recipients of the Work or
|
|
122
|
+
Derivative Works a copy of this License; and
|
|
123
|
+
|
|
124
|
+
(b) You must cause any modified files to carry prominent notices
|
|
125
|
+
stating that You changed the files; and
|
|
126
|
+
|
|
127
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
128
|
+
that You distribute, all copyright, patent, trademark, and
|
|
129
|
+
attribution notices from the Source form of the Work,
|
|
130
|
+
excluding those notices that do not pertain to any part of
|
|
131
|
+
the Derivative Works; and
|
|
132
|
+
|
|
133
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
134
|
+
distribution, then any Derivative Works that You distribute must
|
|
135
|
+
include a readable copy of the attribution notices contained
|
|
136
|
+
within such NOTICE file, excluding those notices that do not
|
|
137
|
+
pertain to any part of the Derivative Works, in at least one
|
|
138
|
+
of the following places: within a NOTICE text file distributed
|
|
139
|
+
as part of the Derivative Works; within the Source form or
|
|
140
|
+
documentation, if provided along with the Derivative Works; or,
|
|
141
|
+
within a display generated by the Derivative Works, if and
|
|
142
|
+
wherever such third-party notices normally appear. The contents
|
|
143
|
+
of the NOTICE file are for informational purposes only and
|
|
144
|
+
do not modify the License. You may add Your own attribution
|
|
145
|
+
notices within Derivative Works that You distribute, alongside
|
|
146
|
+
or as an addendum to the NOTICE text from the Work, provided
|
|
147
|
+
that such additional attribution notices cannot be construed
|
|
148
|
+
as modifying the License.
|
|
149
|
+
|
|
150
|
+
You may add Your own copyright statement to Your modifications and
|
|
151
|
+
may provide additional or different license terms and conditions
|
|
152
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
153
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
154
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
155
|
+
the conditions stated in this License.
|
|
156
|
+
|
|
157
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
158
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
159
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
160
|
+
this License, without any additional terms or conditions.
|
|
161
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
162
|
+
the terms of any separate license agreement you may have executed
|
|
163
|
+
with Licensor regarding such Contributions.
|
|
164
|
+
|
|
165
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
166
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
167
|
+
except as required for reasonable and customary use in describing the
|
|
168
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
169
|
+
|
|
170
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
171
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
172
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
173
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
174
|
+
implied, including, without limitation, any warranties or conditions
|
|
175
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
176
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
177
|
+
appropriateness of using or redistributing the Work and assume any
|
|
178
|
+
risks associated with Your exercise of permissions under this License.
|
|
179
|
+
|
|
180
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
181
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
182
|
+
unless required by applicable law (such as deliberate and grossly
|
|
183
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
184
|
+
liable to You for damages, including any direct, indirect, special,
|
|
185
|
+
incidental, or consequential damages of any character arising as a
|
|
186
|
+
result of this License or out of the use or inability to use the
|
|
187
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
188
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
189
|
+
other commercial damages or losses), even if such Contributor
|
|
190
|
+
has been advised of the possibility of such damages.
|
|
191
|
+
|
|
192
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
193
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
194
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
195
|
+
or other liability obligations and/or rights consistent with this
|
|
196
|
+
License. However, in accepting such obligations, You may act only
|
|
197
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
198
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
199
|
+
defend, and hold each Contributor harmless for any liability
|
|
200
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
201
|
+
of your accepting any such warranty or additional liability.
|
|
202
|
+
|
|
203
|
+
END OF TERMS AND CONDITIONS
|
|
204
|
+
|
|
205
|
+
Project-URL: Homepage, https://github.com/vouch-protocol/vouch
|
|
206
|
+
Project-URL: Bug Tracker, https://github.com/vouch-protocol/vouch/issues
|
|
207
|
+
Project-URL: Documentation, https://vouch-protocol.com
|
|
208
|
+
Keywords: ai,agents,identity,cryptography,did,verifiable-credentials
|
|
209
|
+
Classifier: Development Status :: 4 - Beta
|
|
210
|
+
Classifier: Intended Audience :: Developers
|
|
211
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
212
|
+
Classifier: Programming Language :: Python :: 3
|
|
213
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
214
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
215
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
216
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
217
|
+
Classifier: Topic :: Security :: Cryptography
|
|
218
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
219
|
+
Requires-Python: >=3.9
|
|
220
|
+
Description-Content-Type: text/markdown
|
|
221
|
+
License-File: LICENSE
|
|
222
|
+
Requires-Dist: jwcrypto>=1.5.0
|
|
223
|
+
Requires-Dist: python-dateutil
|
|
224
|
+
Requires-Dist: cryptography
|
|
225
|
+
Requires-Dist: pydantic>=2.0.0
|
|
226
|
+
Requires-Dist: httpx>=0.24.0
|
|
227
|
+
Requires-Dist: pqcrypto>=0.4.0
|
|
228
|
+
Provides-Extra: langchain
|
|
229
|
+
Requires-Dist: langchain>=0.1.0; extra == "langchain"
|
|
230
|
+
Provides-Extra: crewai
|
|
231
|
+
Requires-Dist: crewai>=0.1.0; extra == "crewai"
|
|
232
|
+
Provides-Extra: autogen
|
|
233
|
+
Requires-Dist: pyautogen>=0.2.0; extra == "autogen"
|
|
234
|
+
Provides-Extra: mcp
|
|
235
|
+
Requires-Dist: mcp>=1.2.0; extra == "mcp"
|
|
236
|
+
Provides-Extra: vertex
|
|
237
|
+
Requires-Dist: google-cloud-aiplatform>=1.0.0; extra == "vertex"
|
|
238
|
+
Provides-Extra: streamlit
|
|
239
|
+
Requires-Dist: streamlit>=1.0.0; extra == "streamlit"
|
|
240
|
+
Provides-Extra: server
|
|
241
|
+
Requires-Dist: fastapi>=0.100.0; extra == "server"
|
|
242
|
+
Requires-Dist: uvicorn>=0.23.0; extra == "server"
|
|
243
|
+
Provides-Extra: enterprise
|
|
244
|
+
Requires-Dist: redis>=5.0.0; extra == "enterprise"
|
|
245
|
+
Requires-Dist: prometheus-client>=0.17.0; extra == "enterprise"
|
|
246
|
+
Provides-Extra: aws
|
|
247
|
+
Requires-Dist: aioboto3>=12.0.0; extra == "aws"
|
|
248
|
+
Provides-Extra: gcp
|
|
249
|
+
Requires-Dist: google-cloud-kms>=2.0.0; extra == "gcp"
|
|
250
|
+
Provides-Extra: azure
|
|
251
|
+
Requires-Dist: azure-keyvault-keys>=4.0.0; extra == "azure"
|
|
252
|
+
Provides-Extra: pq
|
|
253
|
+
Provides-Extra: tracing
|
|
254
|
+
Requires-Dist: opentelemetry-api>=1.20.0; extra == "tracing"
|
|
255
|
+
Requires-Dist: opentelemetry-sdk>=1.20.0; extra == "tracing"
|
|
256
|
+
Requires-Dist: opentelemetry-instrumentation-httpx>=0.40b0; extra == "tracing"
|
|
257
|
+
Provides-Extra: media
|
|
258
|
+
Requires-Dist: Pillow>=10.0.0; extra == "media"
|
|
259
|
+
Requires-Dist: base58>=2.1.0; extra == "media"
|
|
260
|
+
Requires-Dist: qrcode>=7.4.0; extra == "media"
|
|
261
|
+
Requires-Dist: c2pa-python>=0.5.0; extra == "media"
|
|
262
|
+
Provides-Extra: dev
|
|
263
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
264
|
+
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
265
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
266
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
267
|
+
Requires-Dist: mypy>=1.0.0; extra == "dev"
|
|
268
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
269
|
+
Requires-Dist: Pillow>=10.0.0; extra == "dev"
|
|
270
|
+
Requires-Dist: base58>=2.1.0; extra == "dev"
|
|
271
|
+
Requires-Dist: qrcode>=7.4.0; extra == "dev"
|
|
272
|
+
Requires-Dist: c2pa-python>=0.5.0; extra == "dev"
|
|
273
|
+
Provides-Extra: all
|
|
274
|
+
Requires-Dist: vouch-protocol[autogen,crewai,dev,enterprise,langchain,mcp,server,streamlit,tracing,vertex]; extra == "all"
|
|
275
|
+
Dynamic: license-file
|
|
276
|
+
|
|
277
|
+
# Vouch Protocol™
|
|
278
|
+
|
|
279
|
+
<p align="center">
|
|
280
|
+
<img src="docs/assets/vouch-wordmark.png" alt="Vouch Protocol" width="400">
|
|
281
|
+
</p>
|
|
282
|
+
|
|
283
|
+
<sub><em>Vouch Protocol™ — common-law trademark.</em></sub>
|
|
284
|
+
|
|
285
|
+
<p align="center">The Open Standard for Identity & Provenance of AI Agents</strong>
|
|
286
|
+
</p>
|
|
287
|
+
|
|
288
|
+
<p align="center">
|
|
289
|
+
<a href="https://c2pa.org"><img src="https://img.shields.io/badge/C2PA-Member-0891b2?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyek0xMCAMTdsLTUtNSAxLjQxLTEuNDFMMTAgMTQuMTdsNy41OS03LjU5TDE5IDhsLTkgOXoiLz48L3N2Zz4=" alt="C2PA Member"></a>
|
|
290
|
+
<a href="https://contentauthenticity.org"><img src="https://img.shields.io/badge/CAI-Member-f97316?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0xMiAxTDMgNXY2YzAgNS41NSAzLjg0IDEwLjc0IDkgMTIgNS4xNi0xLjI2IDktNi40NSA5LTEyVjVsLTktNHptMCAyLjE4bDcgMy4xMnY1LjdjMCA0LjgzLTMuMjMgOS4zNi03IDEwLjU4VjMuMTh6Ii8+PC9zdmc+" alt="CAI Member"></a>
|
|
291
|
+
<a href="https://identity.foundation"><img src="https://img.shields.io/badge/DIF-Member-6F2DA8?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiPjxwYXRoIGQ9Ik0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0tMiAxNWwtNS01IDEuNDEtMS40MUwxMCAxNC4xN2w3LjU5LTcuNTlMMTkgOGwtOSA5eiIvPjwvc3ZnPg==" alt="DIF Member"></a>
|
|
292
|
+
<a href="https://lfaidata.foundation"><img src="https://img.shields.io/badge/Linux_Foundation-Member-333333?style=for-the-badge&logo=linux-foundation&logoColor=white" alt="Linux Foundation Member"></a>
|
|
293
|
+
</p>
|
|
294
|
+
|
|
295
|
+
<p align="center">
|
|
296
|
+
<a href="https://github.com/vouch-protocol/vouch"><img src="https://img.shields.io/badge/Protected_by-Vouch_Protocol-00C853?style=flat&labelColor=333&logo=data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ij48cGF0aCBmaWxsPSIjMDBDODUzIiBkPSJNMTIgMjBMMiA0aDRsNiAxMC41TDE4IDRoNEwxMiAyMHoiLz48L3N2Zz4=" alt="Protected by Vouch"></a>
|
|
297
|
+
<a href="https://www.bestpractices.dev/projects/11688"><img src="https://www.bestpractices.dev/projects/11688/badge" alt="OpenSSF Silver"></a>
|
|
298
|
+
<a href="https://codecov.io/gh/vouch-protocol/vouch"><img src="https://codecov.io/gh/vouch-protocol/vouch/branch/main/graph/badge.svg" alt="Code Coverage"></a>
|
|
299
|
+
<a href="https://discord.gg/mMqx5cG9Y"><img src="https://img.shields.io/badge/Discord-Join_Community-7289da?logo=discord&logoColor=white" alt="Discord"></a>
|
|
300
|
+
</p>
|
|
301
|
+
|
|
302
|
+
<p align="center">
|
|
303
|
+
<a href="https://github.com/vouch-protocol/vouch/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg" alt="Apache 2.0 License"></a>
|
|
304
|
+
</p>
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## Quick Start
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
pip install vouch-protocol
|
|
312
|
+
|
|
313
|
+
# One command to configure SSH signing + Vouch branding
|
|
314
|
+
vouch git init
|
|
315
|
+
|
|
316
|
+
# All future commits are now signed and show ✅ Verified on GitHub
|
|
317
|
+
git commit -m "Secure commit"
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## What's New in v1.0
|
|
323
|
+
|
|
324
|
+
Vouch Protocol v1.0 aligns directly with the open standard:
|
|
325
|
+
|
|
326
|
+
- **Verifiable Credentials** as the credential format (replacing v0.x JWS tokens).
|
|
327
|
+
- **Data Integrity proofs** with the `eddsa-jcs-2022` cryptosuite (no JOSE, no Base64-wrapped payload, the credential remains human-readable JSON).
|
|
328
|
+
- **Multikey verification methods** in DID Documents (algorithm-agnostic, ML-DSA-44 ready).
|
|
329
|
+
- **Hybrid post-quantum profile** (`hybrid-eddsa-mldsa44-jcs-2026`) as an optional add-on for regulated deployments aligning with NIST CNSA 2.0 / NSM-10 timelines.
|
|
330
|
+
- **Three-way cross-implementation interop** verified across Python, TypeScript, and Go.
|
|
331
|
+
|
|
332
|
+
The legacy v0.x JWS API (`Signer.sign()`, `Verifier.verify()`) continues to work unchanged for a deprecation window. New code should prefer `Signer.sign_credential()` and `Verifier.verify_credential()`. See the Specification at [vouch-protocol.com/specs/SPEC/](https://vouch-protocol.com/specs/SPEC/) for the full specification.
|
|
333
|
+
|
|
334
|
+
---
|
|
335
|
+
|
|
336
|
+
> **The Open Standard for AI Agent Identity & Accountability**
|
|
337
|
+
>
|
|
338
|
+
> When Anthropic launched MCP, they solved "how agents call tools."
|
|
339
|
+
> They didn't solve "how we TRUST those agents."
|
|
340
|
+
>
|
|
341
|
+
> **Vouch Protocol is the SSL certificate for AI agents.**
|
|
342
|
+
|
|
343
|
+
Vouch is not one tool, it is a set of them. Here is the whole map.
|
|
344
|
+
|
|
345
|
+
### On the command line
|
|
346
|
+
- **`vouch init`** generate an agent identity (a DID and keypair).
|
|
347
|
+
- **`vouch sign` / `vouch verify`** sign a payload and verify it.
|
|
348
|
+
- **`vouch git`** sign every git commit cryptographically, set up in one command, with a verified badge for your README.
|
|
349
|
+
- **`vouch scan`** find leaked Vouch key material in your code before it ships (a private key in a file, a seed in an env var, a DID document that accidentally carries a private key).
|
|
350
|
+
- **`vouch attribute`** separate who wrote which line. When an AI assistant and a human both edit a file, this records the AI's lines under the AI's own key and your lines under yours, so when a line causes an incident you can prove which of you wrote it. See [the Claude Code integration](vouch/integrations/claude-code/README.md).
|
|
351
|
+
- **`vouch media`** sign images, with C2PA support.
|
|
352
|
+
|
|
353
|
+
### For your agents
|
|
354
|
+
- **MCP server (`vouch-mcp`)** a standalone Model Context Protocol server so any MCP client (Claude Desktop, Cursor, any agent) can create an identity, sign and verify credentials, scan for leaked keys, and decode DIDs, out of the box.
|
|
355
|
+
- **Identity Sidecar** keeps signing keys out of the model's context, so a prompt injection cannot read them.
|
|
356
|
+
- **Vouch Shield** a runtime check that inspects every tool call against your rules, like a customs officer at the door.
|
|
357
|
+
- **Continuous trust** heartbeats and session vouchers, so trust is a live signal that has to be renewed, not a badge that is issued once and trusted forever.
|
|
358
|
+
|
|
359
|
+
### Framework integrations (coming soon)
|
|
360
|
+
Standalone packages that drop Vouch into the agent framework you already use. Each one issues a verifiable credential for a tool call, with optional delegation back to a human principal. Landing on PyPI with v1.6.2.
|
|
361
|
+
- **`vouch-langchain`** a LangChain tool that signs each tool call before it leaves the agent.
|
|
362
|
+
- **`vouch-crewai`** a CrewAI tool, with supervisor-to-worker delegation that can only narrow authority, never widen it.
|
|
363
|
+
- **`vouch-a2a`** binds an A2A (Agent2Agent) Agent Card to a Vouch identity, so two agents can verify each other before they collaborate.
|
|
364
|
+
- **`vouch-mlflow`** signs an MLflow model artifact at registration time, bound to a content digest so any change to the weights breaks the signature.
|
|
365
|
+
- **`vouch-safetensors`** embeds a credential in a `.safetensors` header, complementary to OpenSSF Model Signing, so a model carries who produced it.
|
|
366
|
+
|
|
367
|
+
The standalone **`vouch-mcp`** package above ships alongside these in v1.6.2.
|
|
368
|
+
|
|
369
|
+
### SDKs, in the language you use
|
|
370
|
+
Python, TypeScript, and Go are the full reference implementations. A Rust core with idiomatic Swift, JVM (Java and Kotlin), .NET, and C wrappers shares one codebase, so every language produces byte-identical output, verified against shared test vectors. A WebAssembly build is included for the browser and the edge. See the table further down for status per language.
|
|
371
|
+
|
|
372
|
+
### Robots and embodied agents
|
|
373
|
+
A robot is an agent with a body, so the same primitives apply: a `did:vouch:agent` identity, delegation chains for who authorized it, and continuous trust for whether it is still behaving. Vouch adds a hardware-root-of-trust profile, so a robot's secure element (a TPM or a secure enclave) anchors its DID and signs its heartbeats, binding identity to the physical device rather than a config file. This is the open identity layer; richer robot-lifecycle tooling builds on top of it. See the open `did:vouch:agent` profile in [docs/specs/](docs/specs/).
|
|
374
|
+
|
|
375
|
+
### Inside your AI tools
|
|
376
|
+
- **Claude Skill**, **OpenAI Custom GPT**, and **Gemini Gem** packages that teach your AI assistant how to add Vouch to your code, running on your own AI subscription.
|
|
377
|
+
|
|
378
|
+
### Media and the web
|
|
379
|
+
- **C2PA Content Credentials** for images.
|
|
380
|
+
- **Vouch Sonic** an audio watermark that carries provenance through sound.
|
|
381
|
+
- **Browser extension** for Chrome and Edge that signs and verifies content on the page.
|
|
382
|
+
|
|
383
|
+
### For your repositories
|
|
384
|
+
- **Gatekeeper GitHub App** verifies commit signatures on every pull request and blocks leaked Vouch keys before they merge.
|
|
385
|
+
|
|
386
|
+
### For the ecosystem
|
|
387
|
+
- **Agent Trust Index** an open benchmark that scans agents in the wild and measures how many can actually prove who they are. (Spoiler: today, almost none.)
|
|
388
|
+
|
|
389
|
+
[Read the spec →](https://github.com/vouch-protocol/vouch/blob/main/docs/vouch_guide.md) | [Join Discord →](https://discord.gg/mMqx5cG9Y)
|
|
390
|
+
|
|
391
|
+
---
|
|
392
|
+
|
|
393
|
+
## The Problem
|
|
394
|
+
|
|
395
|
+
AI agents are making real-world API calls with **ZERO cryptographic proof** of:
|
|
396
|
+
- **WHO** they are
|
|
397
|
+
- **WHAT** they intended to do
|
|
398
|
+
- **WHEN** they did it
|
|
399
|
+
|
|
400
|
+
**Examples of the risk:**
|
|
401
|
+
- Healthcare AI accesses patient data → HIPAA violation risk
|
|
402
|
+
- Financial AI makes unauthorized trades → Liability nightmare
|
|
403
|
+
- Customer service AI leaks data → Compliance failure
|
|
404
|
+
|
|
405
|
+
**Current solutions:**
|
|
406
|
+
- **DIY JWT signing** → No agent-specific features, security mistakes easy
|
|
407
|
+
- **Nothing** → Most people just YOLO it and hope for the best
|
|
408
|
+
|
|
409
|
+
---
|
|
410
|
+
|
|
411
|
+
## The Solution
|
|
412
|
+
|
|
413
|
+
**Vouch Protocol** provides cryptographic identity for AI agents, modeled after SSL/TLS:
|
|
414
|
+
|
|
415
|
+
- **Verifiable Credentials** (VC Data Model 2.0)
|
|
416
|
+
- **Data Integrity proofs** (`eddsa-jcs-2022` cryptosuite, no JOSE/JWS dependency)
|
|
417
|
+
- **Decentralized Identifiers** (`did:web`, `did:key`)
|
|
418
|
+
- **Multikey verification methods** (algorithm-agnostic, post-quantum ready)
|
|
419
|
+
- **Hybrid post-quantum profile** (optional Ed25519 + ML-DSA-44 composite, `hybrid-eddsa-mldsa44-jcs-2026`)
|
|
420
|
+
- **Human-readable JSON** (proof attaches as a sibling object, no Base64-wrapped opaque payload)
|
|
421
|
+
- **Framework-agnostic** (works with MCP, LangChain, CrewAI, AutoGPT, AutoGen, Vertex AI)
|
|
422
|
+
- **Cross-language interop** (Python, TypeScript, Go, byte-identical canonical form)
|
|
423
|
+
- **Backward-compatible** (legacy v0.x JWS API still supported during deprecation window)
|
|
424
|
+
- **Open source** (Apache 2.0 license, CC0 prior-art portfolio)
|
|
425
|
+
|
|
426
|
+
**Think of it as:**
|
|
427
|
+
- SSL certificate = Proves website identity
|
|
428
|
+
- **Vouch Protocol = Proves AI agent identity**
|
|
429
|
+
|
|
430
|
+
---
|
|
431
|
+
|
|
432
|
+
## How It Works
|
|
433
|
+
|
|
434
|
+
### The Workflow
|
|
435
|
+
|
|
436
|
+
```mermaid
|
|
437
|
+
flowchart LR
|
|
438
|
+
P["👤 Principal<br/>did:web:user.example.com"]
|
|
439
|
+
A["🤖 AI Agent<br/>did:web:agent.example.com<br/>+ Identity Sidecar"]
|
|
440
|
+
C["📄 Vouch Credential<br/>VC + Data Integrity<br/>(eddsa-jcs-2022)"]
|
|
441
|
+
API["🔐 API Endpoint"]
|
|
442
|
+
V{"✅ Verified"}
|
|
443
|
+
|
|
444
|
+
P -->|"Delegation VC"| A
|
|
445
|
+
A -->|"sign_credential(intent)"| C
|
|
446
|
+
C -->|"HTTP body<br/>application/vc+vouch"| API
|
|
447
|
+
API -->|"verify_credential()"| V
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
**4 Simple Steps:**
|
|
451
|
+
1. **Generate Identity**: Create an Ed25519 keypair and a DID, publish a DID Document with a Multikey verification method.
|
|
452
|
+
2. **Sign Action**: Agent's sidecar issues a Verifiable Credential carrying `action`, `target`, and `resource`, secured by an `eddsa-jcs-2022` Data Integrity proof.
|
|
453
|
+
3. **Send to API**: Transmit the credential as the HTTP request body with `Content-Type: application/vc+vouch` (or via the legacy `Vouch-Token` header for v0.x compatibility; the prior `application/vouch+credential+json` Content-Type is retained as a transitional alias).
|
|
454
|
+
4. **Verify**: API resolves the issuer's DID, validates the Data Integrity proof, checks temporal claims and the resource binding, returns a `CredentialPassport`.
|
|
455
|
+
|
|
456
|
+
### The Trust Model
|
|
457
|
+
|
|
458
|
+
```mermaid
|
|
459
|
+
flowchart TB
|
|
460
|
+
subgraph IDENTITY["Identity Layer"]
|
|
461
|
+
DID["DID<br/>did:web / did:key"]
|
|
462
|
+
MK["Multikey<br/>algorithm-agnostic key encoding"]
|
|
463
|
+
end
|
|
464
|
+
subgraph FORMAT["Credential Layer"]
|
|
465
|
+
VC["Verifiable Credential<br/>(VC Data Model 2.0)"]
|
|
466
|
+
INTENT["Intent payload<br/>action · target · resource"]
|
|
467
|
+
end
|
|
468
|
+
subgraph CRYPTO["Cryptographic Proof"]
|
|
469
|
+
JCS["JCS canonicalization (RFC 8785)"]
|
|
470
|
+
DEFAULT["eddsa-jcs-2022<br/>(Ed25519, default)"]
|
|
471
|
+
HYBRID["hybrid-eddsa-mldsa44-jcs-2026<br/>(Ed25519 + ML-DSA-44, optional)"]
|
|
472
|
+
end
|
|
473
|
+
IDENTITY --> FORMAT
|
|
474
|
+
FORMAT --> CRYPTO
|
|
475
|
+
JCS --> DEFAULT
|
|
476
|
+
JCS --> HYBRID
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
**Trust = Verifiable Credentials + Data Integrity + Decentralized Identifiers + Multikey, with optional hybrid post-quantum signatures.** The same math that secures SSL/TLS, plus the standardized primitives that secure verifiable credentials elsewhere on the web, applied to AI agents.
|
|
480
|
+
|
|
481
|
+
---
|
|
482
|
+
|
|
483
|
+
## Why Vouch Protocol?
|
|
484
|
+
|
|
485
|
+
### vs. DIY JWT
|
|
486
|
+
|
|
487
|
+
| Feature | Vouch Protocol | DIY JWT |
|
|
488
|
+
|---------|---------------|---------|
|
|
489
|
+
| **Agent-specific** | ✅ (designed for agents) | ❌ (generic) |
|
|
490
|
+
| **MCP integration** | ✅ (native) | ❌ (manual) |
|
|
491
|
+
| **Framework integrations** | ✅ (LangChain, CrewAI, etc.) | ❌ |
|
|
492
|
+
| **Audit trail format** | ✅ (VC standardized) | ❌ (custom) |
|
|
493
|
+
| **standards-aligned** | ✅ (`eddsa-jcs-2022` Data Integrity) | ❌ |
|
|
494
|
+
| **Multikey verification methods** | ✅ (algorithm-agnostic) | ❌ |
|
|
495
|
+
| **Hybrid post-quantum signatures** | ✅ (`hybrid-eddsa-mldsa44-jcs-2026`) | ❌ |
|
|
496
|
+
| **Cross-implementation interop tests** | ✅ (Python, TypeScript, Go) | ❌ |
|
|
497
|
+
| **Security best practices** | ✅ (built-in) | ⚠️ (easy to mess up) |
|
|
498
|
+
|
|
499
|
+
---
|
|
500
|
+
|
|
501
|
+
## Quick Start
|
|
502
|
+
|
|
503
|
+
### 1. Install
|
|
504
|
+
```bash
|
|
505
|
+
pip install vouch-protocol
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
### 2. Generate Identity
|
|
509
|
+
```bash
|
|
510
|
+
vouch init --domain your-agent.com
|
|
511
|
+
```
|
|
512
|
+
|
|
513
|
+
### 3. Sign an Action (Agent Side)
|
|
514
|
+
|
|
515
|
+
**v1.0 path (VC + Data Integrity, recommended):**
|
|
516
|
+
```python
|
|
517
|
+
from vouch import Signer
|
|
518
|
+
import os
|
|
519
|
+
|
|
520
|
+
signer = Signer(
|
|
521
|
+
private_key=os.environ['VOUCH_PRIVATE_KEY'],
|
|
522
|
+
did=os.environ['VOUCH_DID']
|
|
523
|
+
)
|
|
524
|
+
|
|
525
|
+
credential = signer.sign_credential(intent={
|
|
526
|
+
'action': 'read_database',
|
|
527
|
+
'target': 'users_table',
|
|
528
|
+
'resource': 'https://api.example.com/v1/users',
|
|
529
|
+
})
|
|
530
|
+
# Send credential as the JSON body of the API request, content-type
|
|
531
|
+
# application/vc+vouch (legacy: application/vouch+credential+json)
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
**Legacy v0.x path (JWS, still supported):**
|
|
535
|
+
```python
|
|
536
|
+
token = signer.sign({'action': 'read_database', 'target': 'users'})
|
|
537
|
+
# Include token in Vouch-Token header
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
### 4. Verify (API Side)
|
|
541
|
+
|
|
542
|
+
**v1.0 path:**
|
|
543
|
+
```python
|
|
544
|
+
from fastapi import FastAPI, Request, HTTPException
|
|
545
|
+
from vouch import Verifier
|
|
546
|
+
|
|
547
|
+
app = FastAPI()
|
|
548
|
+
|
|
549
|
+
@app.post("/api/resource")
|
|
550
|
+
async def protected_route(request: Request):
|
|
551
|
+
credential = await request.json()
|
|
552
|
+
public_key = '{"kty":"OKP", ...}' # Resolved from did:web or trusted root
|
|
553
|
+
|
|
554
|
+
is_valid, passport = Verifier.verify_credential(credential, public_key=public_key)
|
|
555
|
+
if not is_valid:
|
|
556
|
+
raise HTTPException(status_code=401, detail="Untrusted Agent")
|
|
557
|
+
|
|
558
|
+
return {
|
|
559
|
+
"status": "Verified",
|
|
560
|
+
"agent": passport.sub,
|
|
561
|
+
"intent": passport.intent,
|
|
562
|
+
}
|
|
563
|
+
```
|
|
564
|
+
|
|
565
|
+
**Legacy v0.x path:**
|
|
566
|
+
```python
|
|
567
|
+
from vouch import Verifier
|
|
568
|
+
|
|
569
|
+
@app.post("/api/legacy")
|
|
570
|
+
def legacy_route(vouch_token: str = Header(alias="Vouch-Token")):
|
|
571
|
+
is_valid, passport = Verifier.verify(vouch_token, public_key_jwk=public_key)
|
|
572
|
+
if not is_valid:
|
|
573
|
+
raise HTTPException(status_code=401, detail="Untrusted Agent")
|
|
574
|
+
return {"status": "Verified", "agent": passport.sub}
|
|
575
|
+
```
|
|
576
|
+
|
|
577
|
+
**That's it.** A few lines to sign, a few to verify, on either path.
|
|
578
|
+
|
|
579
|
+
---
|
|
580
|
+
|
|
581
|
+
## Integrations
|
|
582
|
+
|
|
583
|
+
Works with all major AI frameworks out-of-the-box:
|
|
584
|
+
|
|
585
|
+
- **Model Context Protocol (MCP)**: native integration for Claude Desktop and Cursor
|
|
586
|
+
- **LangChain**: sign tool calls automatically
|
|
587
|
+
- **CrewAI**: multi-agent identity management
|
|
588
|
+
- **AutoGPT**: autonomous agent signing
|
|
589
|
+
- **AutoGen**: Microsoft multi-agent framework
|
|
590
|
+
- **Google Vertex AI**: sign function calls
|
|
591
|
+
- **Google ADK**: native ADK tool integration
|
|
592
|
+
- **n8n**: low-code agent workflows
|
|
593
|
+
|
|
594
|
+
[See all integrations →](https://github.com/vouch-protocol/vouch/tree/main/vouch/integrations)
|
|
595
|
+
|
|
596
|
+
---
|
|
597
|
+
|
|
598
|
+
## Enterprise Features
|
|
599
|
+
|
|
600
|
+
- **Key Rotation**: automatic rotating keys for production
|
|
601
|
+
- **Voice AI Signing**: sign audio frames in real-time
|
|
602
|
+
- **Cloud KMS**: AWS KMS, GCP Cloud KMS, Azure Key Vault
|
|
603
|
+
- **Reputation Scoring**: track agent behavior over time
|
|
604
|
+
- **Revocation Registry**: blacklist compromised keys
|
|
605
|
+
- **Redis Caching**: production-scale verification
|
|
606
|
+
- **Hybrid Post-Quantum Profile**: optional Ed25519 + ML-DSA-44 composite signatures (`hybrid-eddsa-mldsa44-jcs-2026`) for regulated deployments aligning with NIST CNSA 2.0 / NSM-10 migration timelines
|
|
607
|
+
|
|
608
|
+
### Hybrid Post-Quantum Example
|
|
609
|
+
|
|
610
|
+
```python
|
|
611
|
+
# Optional v1.0 profile, requires `pip install pqcrypto`
|
|
612
|
+
credential = signer.sign_credential_hybrid(intent={
|
|
613
|
+
'action': 'submit_clinical_finding',
|
|
614
|
+
'target': 'trial:NCT00000001',
|
|
615
|
+
'resource': 'https://fda-submissions.example.com/api/findings',
|
|
616
|
+
})
|
|
617
|
+
# Carries both Ed25519 and ML-DSA-44 signatures over the same JCS canonical form.
|
|
618
|
+
# Verification REQUIRES both to validate.
|
|
619
|
+
```
|
|
620
|
+
|
|
621
|
+
---
|
|
622
|
+
|
|
623
|
+
## Use Cases
|
|
624
|
+
|
|
625
|
+
### Financial Services
|
|
626
|
+
```python
|
|
627
|
+
# SEC-compliant trade logging
|
|
628
|
+
agent.sign({'action': 'execute_trade', 'amount': 10000, 'symbol': 'AAPL'})
|
|
629
|
+
```
|
|
630
|
+
|
|
631
|
+
### Customer Service
|
|
632
|
+
```python
|
|
633
|
+
# Data access accountability
|
|
634
|
+
agent.sign({'action': 'read_customer_data', 'customer_id': 'cust_abc'})
|
|
635
|
+
```
|
|
636
|
+
|
|
637
|
+
### Healthcare AI
|
|
638
|
+
```python
|
|
639
|
+
# HIPAA-compliant audit trail
|
|
640
|
+
agent.sign({'action': 'access_phi', 'patient_id': '12345'})
|
|
641
|
+
```
|
|
642
|
+
|
|
643
|
+
To keep this space free from patent capture, the project publishes **61 defensive prior-art disclosures** under CC0, covering cryptographic identity, media provenance, voice biometrics, AI safety, post-quantum cryptography, AI coding governance, and per-region human-or-AI code authorship. See [docs/disclosures](docs/disclosures/README.md).
|
|
644
|
+
|
|
645
|
+
---
|
|
646
|
+
|
|
647
|
+
## Use cases
|
|
648
|
+
|
|
649
|
+
- **Financial services.** A signed, accountable record of every trade or transfer an agent makes.
|
|
650
|
+
- **Healthcare.** An auditable trail for every access to patient data.
|
|
651
|
+
- **Customer service.** Proof of which agent touched which customer record, and on whose authority.
|
|
652
|
+
- **Agent to agent.** When one organization's agent calls another's, each can verify the other before acting.
|
|
653
|
+
|
|
654
|
+
[See full examples →](https://github.com/vouch-protocol/vouch/tree/main/examples)
|
|
655
|
+
|
|
656
|
+
---
|
|
657
|
+
|
|
658
|
+
## Documentation
|
|
659
|
+
|
|
660
|
+
- [Quick Start](https://github.com/vouch-protocol/vouch#quick-start)
|
|
661
|
+
- [Vouch Specification (v1.6 normative)](https://vouch-protocol.com/specs/)
|
|
662
|
+
- [Hybrid Post-Quantum Implementation Guide](https://github.com/vouch-protocol/vouch/blob/main/docs/hybrid-pq-implementation-guide.md)
|
|
663
|
+
- [Protocol Specification (developer guide)](https://github.com/vouch-protocol/vouch/blob/main/docs/vouch_guide.md)
|
|
664
|
+
- [Integration Guides](https://github.com/vouch-protocol/vouch/tree/main/vouch/integrations)
|
|
665
|
+
- [Threat Model and Security Considerations](https://github.com/vouch-protocol/vouch/blob/main/docs/THREAT_MODEL.md)
|
|
666
|
+
- [Defensive Prior Art Disclosures (61 PADs, CC0)](https://github.com/vouch-protocol/vouch/tree/main/docs/disclosures)
|
|
667
|
+
- [FAQ and Discussions](https://github.com/vouch-protocol/vouch/discussions)
|
|
668
|
+
|
|
669
|
+
---
|
|
670
|
+
|
|
671
|
+
## Community
|
|
672
|
+
|
|
673
|
+
- **Discord** - Ask questions, share use cases → [Join now](https://discord.gg/mMqx5cG9Y)
|
|
674
|
+
- **GitHub Discussions** - Technical discussions → [Start a discussion](https://github.com/vouch-protocol/vouch/discussions)
|
|
675
|
+
- **Twitter/X** - Updates and announcements → [@Vouch_Protocol](https://x.com/Vouch_Protocol)
|
|
676
|
+
|
|
677
|
+
---
|
|
678
|
+
|
|
679
|
+
## Roadmap
|
|
680
|
+
|
|
681
|
+
### v1.6 (current release)
|
|
682
|
+
|
|
683
|
+
- [x] **Verifiable Credentials + Data Integrity** (`eddsa-jcs-2022` cryptosuite)
|
|
684
|
+
- [x] **Multikey verification methods** (algorithm-agnostic, multibase + multicodec)
|
|
685
|
+
- [x] **Hybrid post-quantum profile** (`hybrid-eddsa-mldsa44-jcs-2026`, NIST CNSA 2.0 / NSM-10 aligned)
|
|
686
|
+
- [x] **Three-language reference implementation** (Python, TypeScript, Go) with byte-identical canonical form via RFC 8785 JCS, verified against shared test vectors
|
|
687
|
+
- [x] **Specification drafted** and submitted to the open standards group for incubation
|
|
688
|
+
- [x] **55 Prior Art Disclosures** (CC0 defensive publications)
|
|
689
|
+
- [x] Identity Sidecar architecture (LLM-isolated keys)
|
|
690
|
+
- [x] Heartbeat Protocol with adaptive Trust Entropy
|
|
691
|
+
- [x] Resource-bound delegation chains with capability narrowing
|
|
692
|
+
- [x] MCP integration (Claude Desktop, Cursor)
|
|
693
|
+
- [x] Framework adapters (LangChain, CrewAI, AutoGPT, AutoGen, Vertex AI, Google ADK, n8n)
|
|
694
|
+
- [x] C2PA Content Credentials integration
|
|
695
|
+
- [x] Audio watermarking (Vouch Sonic, sub-band steganography)
|
|
696
|
+
- [x] DID-linked voice biometric enrollment
|
|
697
|
+
- [x] Browser extension (Chrome / Edge content signing)
|
|
698
|
+
- [x] GitHub App and Cloudflare Workers verification gateway
|
|
699
|
+
|
|
700
|
+
### Next (v1.7 and beyond)
|
|
701
|
+
|
|
702
|
+
- [ ] Independent third-party cryptographic security audit (Trail of Bits / NCC Group / Cure53)
|
|
703
|
+
- [ ] Specification stabilization and external review
|
|
704
|
+
- [ ] Algorithm Quorum verification (M-of-N cryptosuite diversity, per PAD-046)
|
|
705
|
+
- [ ] Verifiable Delay Function rate-limiting for high-stakes agent actions (per PAD-047)
|
|
706
|
+
- [ ] Cryptographic Weight Binding for model-intrinsic AI identity (per PAD-043)
|
|
707
|
+
- [ ] Ephemeral ZK-State Channels for high-frequency agent-to-agent negotiation (per PAD-044)
|
|
708
|
+
- [ ] Retrieval-anchored proof of non-hallucination (per PAD-045)
|
|
709
|
+
- [ ] Standardized agent ledger metadata schema (per PAD-042)
|
|
710
|
+
- [ ] Edge-first WASM + ONNX client-side processing
|
|
711
|
+
- [ ] Hardware key support (YubiKey, TPM, Secure Enclave)
|
|
712
|
+
- [ ] Native Rust implementation for edge and embedded deployments
|
|
713
|
+
|
|
714
|
+
[View full roadmap and issue tracker →](https://github.com/vouch-protocol/vouch/issues)
|
|
715
|
+
|
|
716
|
+
---
|
|
717
|
+
|
|
718
|
+
## License
|
|
719
|
+
|
|
720
|
+
**Apache License 2.0**: See [LICENSE](https://github.com/vouch-protocol/vouch/blob/main/LICENSE)
|
|
721
|
+
|
|
722
|
+
You can use this freely in commercial and open-source projects.
|
|
723
|
+
|
|
724
|
+
The 61 defensive prior-art disclosures are released under **CC0 1.0 Universal** to ensure ecosystem freedom from patent capture.
|
|
725
|
+
|
|
726
|
+
*The Vouch Protocol specification is being developed as a open standard submission via the open standards group. The implementation is also being proposed to the Linux Foundation's AI & Data Foundation.*
|
|
727
|
+
|
|
728
|
+
---
|
|
729
|
+
|
|
730
|
+
## Acknowledgments
|
|
731
|
+
|
|
732
|
+
Inspired by:
|
|
733
|
+
- **SSL/TLS** (the gold standard for identity)
|
|
734
|
+
- **OAuth 2.0** (federated identity done right)
|
|
735
|
+
- **Verifiable Credentials** (the future of digital identity)
|
|
736
|
+
|
|
737
|
+
Built by [Ramprasad Gaddam](https://www.linkedin.com/in/rampy) ([Twitter/X](https://x.com/rampyg))
|
|
738
|
+
|
|
739
|
+
---
|
|
740
|
+
|
|
741
|
+
## Contributing
|
|
742
|
+
|
|
743
|
+
Contributions welcome. See [CONTRIBUTING.md](https://github.com/vouch-protocol/vouch/blob/main/CONTRIBUTING.md).
|
|
744
|
+
|
|
745
|
+
**Areas where help is most useful:**
|
|
746
|
+
- [ ] Additional framework integrations (Haystack, Semantic Kernel, LlamaIndex, others)
|
|
747
|
+
- [ ] Cross-implementation interop test vectors (additional edge cases for JCS, VC, hybrid PQ)
|
|
748
|
+
- [ ] Tutorials and worked examples for regulated-sector deployments
|
|
749
|
+
- [ ] Independent security review and audit
|
|
750
|
+
- [ ] Reference implementations in additional languages (Rust, Java, .NET)
|
|
751
|
+
|
|
752
|
+
---
|
|
753
|
+
|
|
754
|
+
**Star this repo if you find it useful.**
|
|
755
|
+
|
|
756
|
+
[Star on GitHub](https://github.com/vouch-protocol/vouch) | [Join Discord](https://discord.gg/mMqx5cG9Y) | [Follow on X](https://x.com/Vouch_Protocol)
|
|
757
|
+
|
|
758
|
+
---
|
|
759
|
+
|
|
760
|
+
## Prior Art Disclosures
|
|
761
|
+
|
|
762
|
+
To ensure ecosystem freedom, we publish **55 defensive prior art disclosures** (CC0 public domain) covering novel methods across cryptographic identity, media provenance, voice biometrics, AI safety, post-quantum cryptography, AI coding assistant governance, and content authenticity:
|
|
763
|
+
|
|
764
|
+
| ID | Title | Category |
|
|
765
|
+
|----|-------|----------|
|
|
766
|
+
| [PAD-001](docs/disclosures/PAD-001-cryptographic-agent-identity.md) | Cryptographic Agent Identity | Identity |
|
|
767
|
+
| [PAD-002](docs/disclosures/PAD-002-chain-of-custody.md) | Chain of Custody Delegation | Identity |
|
|
768
|
+
| [PAD-003](docs/disclosures/PAD-003-identity-sidecar.md) | Identity Sidecar Pattern | Architecture |
|
|
769
|
+
| [PAD-004](docs/disclosures/PAD-004-smart-scan-verification.md) | DOM-Traversing Signature Matching | Verification |
|
|
770
|
+
| [PAD-005](docs/disclosures/PAD-005-reverse-lookup-registry.md) | Detached Signature Recovery | Verification |
|
|
771
|
+
| [PAD-006](docs/disclosures/PAD-006-trust-graph-url-chaining.md) | URL-Based Credential Chaining | Trust |
|
|
772
|
+
| [PAD-007](docs/disclosures/PAD-007-ghost-signature-telemetry.md) | Automated Provenance via Input Telemetry | Provenance |
|
|
773
|
+
| [PAD-008](docs/disclosures/PAD-008-hybrid-ssh-verification.md) | Hybrid Identity Bootstrapping | Identity |
|
|
774
|
+
| [PAD-009](docs/disclosures/PAD-009-localhost-identity-bridge.md) | Unified Local Identity via Localhost Bridge | Architecture |
|
|
775
|
+
| [PAD-010](docs/disclosures/PAD-010-semantic-consent-signing.md) | Context-Adaptive Semantic Consent | Privacy |
|
|
776
|
+
| [PAD-011](docs/disclosures/PAD-011-hierarchical-discovery-protocol.md) | Hierarchical Discovery Protocol | Discovery |
|
|
777
|
+
| [PAD-012](docs/disclosures/PAD-012-vouch-covenant.md) | Executable Usage Covenants in Media Manifests | Media / Rights |
|
|
778
|
+
| [PAD-013](docs/disclosures/PAD-013-vouch-airgap.md) | Air-Gapped Identity via Psychoacoustic Steganography | Audio |
|
|
779
|
+
| [PAD-014](docs/disclosures/PAD-014-vouch-sonic.md) | Robust Acoustic Provenance via Steganography | Audio |
|
|
780
|
+
| [PAD-015](docs/disclosures/PAD-015-ambient-witness-protocol.md) | Ambient Witness Protocol (BLE Crowdsourcing) | IoT / Provenance |
|
|
781
|
+
| [PAD-016](docs/disclosures/PAD-016-dynamic-credential-renewal.md) | Dynamic Credential Renewal ("Heartbeat Protocol") | Identity |
|
|
782
|
+
| [PAD-017](docs/disclosures/PAD-017-cryptographic-proof-of-reasoning.md) | Cryptographic Proof of Reasoning | AI Safety |
|
|
783
|
+
| [PAD-018](docs/disclosures/PAD-018-model-lineage-provenance.md) | Model Lineage Provenance ("Birth Certificate Protocol") | AI Safety |
|
|
784
|
+
| [PAD-019](docs/disclosures/PAD-019-glass-channel-protocol.md) | Transparent Agent Communication | AI Safety |
|
|
785
|
+
| [PAD-020](docs/disclosures/PAD-020-ratchet-lock-protocol.md) | Capability Acquisition Containment | AI Safety |
|
|
786
|
+
| [PAD-021](docs/disclosures/PAD-021-inverse-capability-protocol.md) | Graduated Autonomy via Inverse Capability Scaling | AI Safety |
|
|
787
|
+
| [PAD-022](docs/disclosures/PAD-022-swarm-limits-protocol.md) | Agent Population Governance | AI Safety |
|
|
788
|
+
| [PAD-023](docs/disclosures/PAD-023-content-policy-watermarking.md) | Machine-Readable Content Usage Policies in Audio Watermarks | Audio / Rights |
|
|
789
|
+
| [PAD-024](docs/disclosures/PAD-024-temporal-video-fingerprinting.md) | Temporal Perceptual Hashing for Video Provenance | Video |
|
|
790
|
+
| [PAD-025](docs/disclosures/PAD-025-edge-first-content-provenance.md) | Edge-First Content Provenance via Client-Side WASM | Architecture |
|
|
791
|
+
| [PAD-026](docs/disclosures/PAD-026-did-linked-voiceprint-enrollment.md) | DID-Linked Voice Biometric Enrollment | Voice / Biometrics |
|
|
792
|
+
| [PAD-027](docs/disclosures/PAD-027-shamir-split-biometric-recovery.md) | Shamir Secret Sharing of Biometric Enrollment Data | Recovery / Biometrics |
|
|
793
|
+
| [PAD-028](docs/disclosures/PAD-028-cross-modal-identity-provenance.md) | Unified Cross-Modal Identity-Bound Provenance | Multi-Modal / Identity |
|
|
794
|
+
| [PAD-029](docs/disclosures/PAD-029-eldear-scam-protection-identity.md) | Identity-Verified Communication Shield | Elder Safety / Voice |
|
|
795
|
+
| [PAD-030](docs/disclosures/PAD-030-zk-reputation-portability.md) | Zero-Knowledge Reputation Portability | Privacy / Trust |
|
|
796
|
+
| [PAD-031](docs/disclosures/PAD-031-canary-provenance-honeypots.md) | Adversarial Provenance Honeypots | Adversarial Detection |
|
|
797
|
+
| [PAD-032](docs/disclosures/PAD-032-cryptographic-mortality-protocol.md) | Cryptographic Mortality Protocol | Identity Lifecycle |
|
|
798
|
+
| [PAD-033](docs/disclosures/PAD-033-zk-pq-signature-compression.md) | ZK Proof Compression for Post-Quantum Signatures | Post-Quantum / ZKP |
|
|
799
|
+
| [PAD-034](docs/disclosures/PAD-034-composite-threshold-swarm-consensus.md) | Composite Threshold Aggregation for Swarm Consensus | Post-Quantum / Swarm |
|
|
800
|
+
| [PAD-035](docs/disclosures/PAD-035-async-chunked-edge-pq-signatures.md) | Asynchronous Chunked Verification and Edge PQ Signatures | Post-Quantum / Edge |
|
|
801
|
+
| [PAD-036](docs/disclosures/PAD-036-aggregated-reputation-scoring.md) | Aggregated Reputation Scoring via Verifiable State Receipts | Trust / Enterprise |
|
|
802
|
+
| [PAD-037](docs/disclosures/PAD-037-credential-federation.md) | Cross-Protocol Agent Credential Federation | Identity / Enterprise |
|
|
803
|
+
| [PAD-038](docs/disclosures/PAD-038-agent-capability-discovery.md) | Decentralized Agent Capability Discovery | Discovery / Multi-Agent |
|
|
804
|
+
| [PAD-039](docs/disclosures/PAD-039-jcs-deterministic-multi-party-trust-state.md) | Cross-Implementation Deterministic Multi-Party Trust State via JCS | Cross-Impl Determinism |
|
|
805
|
+
| [PAD-040](docs/disclosures/PAD-040-hybrid-composite-signature-same-canonical-bytes.md) | Hybrid Composite Signature Bound to Same Canonical Bytes (Ed25519 + ML-DSA-44) | Post-Quantum / Hybrid |
|
|
806
|
+
| [PAD-041](docs/disclosures/PAD-041-multikey-algorithm-agnostic-verification.md) | Algorithm-Agnostic Verification Method Resolution via Multikey Multicodec | Verification / Multikey |
|
|
807
|
+
| [PAD-042](docs/disclosures/PAD-042-standardized-metadata-schema-agent-ledger.md) | Standardized Metadata Schema for AI Agent Ledger Signatures | Metadata / Audit |
|
|
808
|
+
| [PAD-043](docs/disclosures/PAD-043-cryptographic-weight-binding.md) | Cryptographic Weight Binding for Model-Intrinsic AI Identity | AI Identity / Model |
|
|
809
|
+
| [PAD-044](docs/disclosures/PAD-044-ephemeral-zk-state-channels.md) | Ephemeral ZK-State Channels for Agentic Layer 2 Scalability | Scalability / ZK |
|
|
810
|
+
| [PAD-045](docs/disclosures/PAD-045-proof-of-non-hallucination-retrieval-anchoring.md) | Proof of Non-Hallucination via Cryptographic Retrieval Anchoring | AI Safety / RAG |
|
|
811
|
+
| [PAD-046](docs/disclosures/PAD-046-algorithm-quorum-cryptosuite-diversity.md) | Algorithm Quorum Verification via M-of-N Cryptosuite Diversity | Defense in Depth |
|
|
812
|
+
| [PAD-047](docs/disclosures/PAD-047-vdf-rate-limited-agent-actions.md) | Verifiable Delay Functions for Cryptographic Rate-Limiting | Agent Containment |
|
|
813
|
+
| [PAD-048](docs/disclosures/PAD-048-write-only-async-context-ledger.md) | Write-Only Async Context Ledger for LLM Coding Assistants | AI Coding / IP Protection |
|
|
814
|
+
| [PAD-049](docs/disclosures/PAD-049-decoupled-semantic-policy-extraction.md) | Decoupled Semantic Policy Extraction via Passive Source Monitoring | AI Coding / IP Protection |
|
|
815
|
+
| [PAD-050](docs/disclosures/PAD-050-zero-context-deterministic-egress-interception.md) | Zero-Context Deterministic Egress Interception | AI Coding / Egress Control |
|
|
816
|
+
| [PAD-051](docs/disclosures/PAD-051-parallel-intent-extraction-shadow-models.md) | Parallel Intent Extraction via Local Shadow Models | AI Coding / Local-First |
|
|
817
|
+
| [PAD-052](docs/disclosures/PAD-052-ui-state-sniffing-closed-box-ai-tools.md) | UI State Sniffing for Closed-Box AI Coding Tools | AI Coding / Compatibility |
|
|
818
|
+
| [PAD-053](docs/disclosures/PAD-053-time-bounded-ephemeral-rules.md) | Time-Bounded Ephemeral Rules with Auto-Expiry | AI Coding / Lifetime |
|
|
819
|
+
| [PAD-054](docs/disclosures/PAD-054-filesystem-hierarchy-policy-inheritance.md) | Filesystem-Hierarchy Policy Inheritance for AI Coding Workspaces | AI Coding / Composition |
|
|
820
|
+
| [PAD-055](docs/disclosures/PAD-055-cross-session-policy-re-anchoring.md) | Cross-Session Policy Re-Anchoring via Pre-Flight Context Replay | AI Coding / Continuity |
|
|
821
|
+
|
|
822
|
+
[View all disclosures →](docs/disclosures/README.md)
|