The Identity & Reputation Standard for AI Agents
Project description
Vouch Protocol™
Vouch Protocol™ — common-law trademark.
The Open Standard for Identity & Provenance of AI Agents
Quick Start
pip install vouch-protocol
# One command to configure SSH signing + Vouch branding
vouch git init
# All future commits are now signed and show ✅ Verified on GitHub
git commit -m "Secure commit"
What's New in v1.0
Vouch Protocol v1.0 aligns directly with the open standard:
- Verifiable Credentials as the credential format (replacing v0.x JWS tokens).
- Data Integrity proofs with the
eddsa-jcs-2022cryptosuite (no JOSE, no Base64-wrapped payload, the credential remains human-readable JSON). - Multikey verification methods in DID Documents (algorithm-agnostic, ML-DSA-44 ready).
- 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. - Three-way cross-implementation interop verified across Python, TypeScript, and Go.
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/ for the full specification.
The Open Standard for AI Agent Identity & Accountability
When Anthropic launched MCP, they solved "how agents call tools." They didn't solve "how we TRUST those agents."
Vouch Protocol is the SSL certificate for AI agents.
Vouch is not one tool, it is a set of them. Here is the whole map.
On the command line
vouch initgenerate an agent identity (a DID and keypair).vouch sign/vouch verifysign a payload and verify it.vouch gitsign every git commit cryptographically, set up in one command, with a verified badge for your README.vouch scanfind 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).vouch attributeseparate 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 mediasign images, with C2PA support.
For your agents
- 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. - Identity Sidecar keeps signing keys out of the model's context, so a prompt injection cannot read them.
- Vouch Shield a runtime check that inspects every tool call against your rules, like a customs officer at the door.
- 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.
Framework integrations (coming soon)
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.
vouch-langchaina LangChain tool that signs each tool call before it leaves the agent.vouch-crewaia CrewAI tool, with supervisor-to-worker delegation that can only narrow authority, never widen it.vouch-a2abinds an A2A (Agent2Agent) Agent Card to a Vouch identity, so two agents can verify each other before they collaborate.vouch-mlflowsigns an MLflow model artifact at registration time, bound to a content digest so any change to the weights breaks the signature.vouch-safetensorsembeds a credential in a.safetensorsheader, complementary to OpenSSF Model Signing, so a model carries who produced it.
The standalone vouch-mcp package above ships alongside these in v1.6.2.
SDKs, in the language you use
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.
Robots and embodied agents
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/.
Inside your AI tools
- 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.
Media and the web
- C2PA Content Credentials for images.
- Vouch Sonic an audio watermark that carries provenance through sound.
- Browser extension for Chrome and Edge that signs and verifies content on the page.
For your repositories
- Gatekeeper GitHub App verifies commit signatures on every pull request and blocks leaked Vouch keys before they merge.
For the ecosystem
- 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.)
Read the spec → | Join Discord →
The Problem
AI agents are making real-world API calls with ZERO cryptographic proof of:
- WHO they are
- WHAT they intended to do
- WHEN they did it
Examples of the risk:
- Healthcare AI accesses patient data → HIPAA violation risk
- Financial AI makes unauthorized trades → Liability nightmare
- Customer service AI leaks data → Compliance failure
Current solutions:
- DIY JWT signing → No agent-specific features, security mistakes easy
- Nothing → Most people just YOLO it and hope for the best
The Solution
Vouch Protocol provides cryptographic identity for AI agents, modeled after SSL/TLS:
- Verifiable Credentials (VC Data Model 2.0)
- Data Integrity proofs (
eddsa-jcs-2022cryptosuite, no JOSE/JWS dependency) - Decentralized Identifiers (
did:web,did:key) - Multikey verification methods (algorithm-agnostic, post-quantum ready)
- Hybrid post-quantum profile (optional Ed25519 + ML-DSA-44 composite,
hybrid-eddsa-mldsa44-jcs-2026) - Human-readable JSON (proof attaches as a sibling object, no Base64-wrapped opaque payload)
- Framework-agnostic (works with MCP, LangChain, CrewAI, AutoGPT, AutoGen, Vertex AI)
- Cross-language interop (Python, TypeScript, Go, byte-identical canonical form)
- Backward-compatible (legacy v0.x JWS API still supported during deprecation window)
- Open source (Apache 2.0 license, CC0 prior-art portfolio)
Think of it as:
- SSL certificate = Proves website identity
- Vouch Protocol = Proves AI agent identity
How It Works
The Workflow
flowchart LR
P["👤 Principal<br/>did:web:user.example.com"]
A["🤖 AI Agent<br/>did:web:agent.example.com<br/>+ Identity Sidecar"]
C["📄 Vouch Credential<br/>VC + Data Integrity<br/>(eddsa-jcs-2022)"]
API["🔐 API Endpoint"]
V{"✅ Verified"}
P -->|"Delegation VC"| A
A -->|"sign_credential(intent)"| C
C -->|"HTTP body<br/>application/vc+vouch"| API
API -->|"verify_credential()"| V
4 Simple Steps:
- Generate Identity: Create an Ed25519 keypair and a DID, publish a DID Document with a Multikey verification method.
- Sign Action: Agent's sidecar issues a Verifiable Credential carrying
action,target, andresource, secured by aneddsa-jcs-2022Data Integrity proof. - Send to API: Transmit the credential as the HTTP request body with
Content-Type: application/vc+vouch(or via the legacyVouch-Tokenheader for v0.x compatibility; the priorapplication/vouch+credential+jsonContent-Type is retained as a transitional alias). - Verify: API resolves the issuer's DID, validates the Data Integrity proof, checks temporal claims and the resource binding, returns a
CredentialPassport.
The Trust Model
flowchart TB
subgraph IDENTITY["Identity Layer"]
DID["DID<br/>did:web / did:key"]
MK["Multikey<br/>algorithm-agnostic key encoding"]
end
subgraph FORMAT["Credential Layer"]
VC["Verifiable Credential<br/>(VC Data Model 2.0)"]
INTENT["Intent payload<br/>action · target · resource"]
end
subgraph CRYPTO["Cryptographic Proof"]
JCS["JCS canonicalization (RFC 8785)"]
DEFAULT["eddsa-jcs-2022<br/>(Ed25519, default)"]
HYBRID["hybrid-eddsa-mldsa44-jcs-2026<br/>(Ed25519 + ML-DSA-44, optional)"]
end
IDENTITY --> FORMAT
FORMAT --> CRYPTO
JCS --> DEFAULT
JCS --> HYBRID
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.
Why Vouch Protocol?
vs. DIY JWT
| Feature | Vouch Protocol | DIY JWT |
|---|---|---|
| Agent-specific | ✅ (designed for agents) | ❌ (generic) |
| MCP integration | ✅ (native) | ❌ (manual) |
| Framework integrations | ✅ (LangChain, CrewAI, etc.) | ❌ |
| Audit trail format | ✅ (VC standardized) | ❌ (custom) |
| standards-aligned | ✅ (eddsa-jcs-2022 Data Integrity) |
❌ |
| Multikey verification methods | ✅ (algorithm-agnostic) | ❌ |
| Hybrid post-quantum signatures | ✅ (hybrid-eddsa-mldsa44-jcs-2026) |
❌ |
| Cross-implementation interop tests | ✅ (Python, TypeScript, Go) | ❌ |
| Security best practices | ✅ (built-in) | ⚠️ (easy to mess up) |
Quick Start
1. Install
pip install vouch-protocol
2. Generate Identity
vouch init --domain your-agent.com
3. Sign an Action (Agent Side)
v1.0 path (VC + Data Integrity, recommended):
from vouch import Signer
import os
signer = Signer(
private_key=os.environ['VOUCH_PRIVATE_KEY'],
did=os.environ['VOUCH_DID']
)
credential = signer.sign_credential(intent={
'action': 'read_database',
'target': 'users_table',
'resource': 'https://api.example.com/v1/users',
})
# Send credential as the JSON body of the API request, content-type
# application/vc+vouch (legacy: application/vouch+credential+json)
Legacy v0.x path (JWS, still supported):
token = signer.sign({'action': 'read_database', 'target': 'users'})
# Include token in Vouch-Token header
4. Verify (API Side)
v1.0 path:
from fastapi import FastAPI, Request, HTTPException
from vouch import Verifier
app = FastAPI()
@app.post("/api/resource")
async def protected_route(request: Request):
credential = await request.json()
public_key = '{"kty":"OKP", ...}' # Resolved from did:web or trusted root
is_valid, passport = Verifier.verify_credential(credential, public_key=public_key)
if not is_valid:
raise HTTPException(status_code=401, detail="Untrusted Agent")
return {
"status": "Verified",
"agent": passport.sub,
"intent": passport.intent,
}
Legacy v0.x path:
from vouch import Verifier
@app.post("/api/legacy")
def legacy_route(vouch_token: str = Header(alias="Vouch-Token")):
is_valid, passport = Verifier.verify(vouch_token, public_key_jwk=public_key)
if not is_valid:
raise HTTPException(status_code=401, detail="Untrusted Agent")
return {"status": "Verified", "agent": passport.sub}
That's it. A few lines to sign, a few to verify, on either path.
Integrations
Works with all major AI frameworks out-of-the-box:
- Model Context Protocol (MCP): native integration for Claude Desktop and Cursor
- LangChain: sign tool calls automatically
- CrewAI: multi-agent identity management
- AutoGPT: autonomous agent signing
- AutoGen: Microsoft multi-agent framework
- Google Vertex AI: sign function calls
- Google ADK: native ADK tool integration
- n8n: low-code agent workflows
Enterprise Features
- Key Rotation: automatic rotating keys for production
- Voice AI Signing: sign audio frames in real-time
- Cloud KMS: AWS KMS, GCP Cloud KMS, Azure Key Vault
- Reputation Scoring: track agent behavior over time
- Revocation Registry: blacklist compromised keys
- Redis Caching: production-scale verification
- 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
Hybrid Post-Quantum Example
# Optional v1.0 profile, requires `pip install pqcrypto`
credential = signer.sign_credential_hybrid(intent={
'action': 'submit_clinical_finding',
'target': 'trial:NCT00000001',
'resource': 'https://fda-submissions.example.com/api/findings',
})
# Carries both Ed25519 and ML-DSA-44 signatures over the same JCS canonical form.
# Verification REQUIRES both to validate.
Use Cases
Financial Services
# SEC-compliant trade logging
agent.sign({'action': 'execute_trade', 'amount': 10000, 'symbol': 'AAPL'})
Customer Service
# Data access accountability
agent.sign({'action': 'read_customer_data', 'customer_id': 'cust_abc'})
Healthcare AI
# HIPAA-compliant audit trail
agent.sign({'action': 'access_phi', 'patient_id': '12345'})
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.
Use cases
- Financial services. A signed, accountable record of every trade or transfer an agent makes.
- Healthcare. An auditable trail for every access to patient data.
- Customer service. Proof of which agent touched which customer record, and on whose authority.
- Agent to agent. When one organization's agent calls another's, each can verify the other before acting.
Documentation
- Quick Start
- Vouch Specification (v1.6 normative)
- Hybrid Post-Quantum Implementation Guide
- Protocol Specification (developer guide)
- Integration Guides
- Threat Model and Security Considerations
- Defensive Prior Art Disclosures (61 PADs, CC0)
- FAQ and Discussions
Community
- Discord - Ask questions, share use cases → Join now
- GitHub Discussions - Technical discussions → Start a discussion
- Twitter/X - Updates and announcements → @Vouch_Protocol
Roadmap
v1.6 (current release)
- Verifiable Credentials + Data Integrity (
eddsa-jcs-2022cryptosuite) - Multikey verification methods (algorithm-agnostic, multibase + multicodec)
- Hybrid post-quantum profile (
hybrid-eddsa-mldsa44-jcs-2026, NIST CNSA 2.0 / NSM-10 aligned) - Three-language reference implementation (Python, TypeScript, Go) with byte-identical canonical form via RFC 8785 JCS, verified against shared test vectors
- Specification drafted and submitted to the open standards group for incubation
- 55 Prior Art Disclosures (CC0 defensive publications)
- Identity Sidecar architecture (LLM-isolated keys)
- Heartbeat Protocol with adaptive Trust Entropy
- Resource-bound delegation chains with capability narrowing
- MCP integration (Claude Desktop, Cursor)
- Framework adapters (LangChain, CrewAI, AutoGPT, AutoGen, Vertex AI, Google ADK, n8n)
- C2PA Content Credentials integration
- Audio watermarking (Vouch Sonic, sub-band steganography)
- DID-linked voice biometric enrollment
- Browser extension (Chrome / Edge content signing)
- GitHub App and Cloudflare Workers verification gateway
Next (v1.7 and beyond)
- Independent third-party cryptographic security audit (Trail of Bits / NCC Group / Cure53)
- Specification stabilization and external review
- Algorithm Quorum verification (M-of-N cryptosuite diversity, per PAD-046)
- Verifiable Delay Function rate-limiting for high-stakes agent actions (per PAD-047)
- Cryptographic Weight Binding for model-intrinsic AI identity (per PAD-043)
- Ephemeral ZK-State Channels for high-frequency agent-to-agent negotiation (per PAD-044)
- Retrieval-anchored proof of non-hallucination (per PAD-045)
- Standardized agent ledger metadata schema (per PAD-042)
- Edge-first WASM + ONNX client-side processing
- Hardware key support (YubiKey, TPM, Secure Enclave)
- Native Rust implementation for edge and embedded deployments
View full roadmap and issue tracker →
License
Apache License 2.0: See LICENSE
You can use this freely in commercial and open-source projects.
The 61 defensive prior-art disclosures are released under CC0 1.0 Universal to ensure ecosystem freedom from patent capture.
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.
Acknowledgments
Inspired by:
- SSL/TLS (the gold standard for identity)
- OAuth 2.0 (federated identity done right)
- Verifiable Credentials (the future of digital identity)
Built by Ramprasad Gaddam (Twitter/X)
Contributing
Contributions welcome. See CONTRIBUTING.md.
Areas where help is most useful:
- Additional framework integrations (Haystack, Semantic Kernel, LlamaIndex, others)
- Cross-implementation interop test vectors (additional edge cases for JCS, VC, hybrid PQ)
- Tutorials and worked examples for regulated-sector deployments
- Independent security review and audit
- Reference implementations in additional languages (Rust, Java, .NET)
Star this repo if you find it useful.
Star on GitHub | Join Discord | Follow on X
Prior Art Disclosures
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:
| ID | Title | Category |
|---|---|---|
| PAD-001 | Cryptographic Agent Identity | Identity |
| PAD-002 | Chain of Custody Delegation | Identity |
| PAD-003 | Identity Sidecar Pattern | Architecture |
| PAD-004 | DOM-Traversing Signature Matching | Verification |
| PAD-005 | Detached Signature Recovery | Verification |
| PAD-006 | URL-Based Credential Chaining | Trust |
| PAD-007 | Automated Provenance via Input Telemetry | Provenance |
| PAD-008 | Hybrid Identity Bootstrapping | Identity |
| PAD-009 | Unified Local Identity via Localhost Bridge | Architecture |
| PAD-010 | Context-Adaptive Semantic Consent | Privacy |
| PAD-011 | Hierarchical Discovery Protocol | Discovery |
| PAD-012 | Executable Usage Covenants in Media Manifests | Media / Rights |
| PAD-013 | Air-Gapped Identity via Psychoacoustic Steganography | Audio |
| PAD-014 | Robust Acoustic Provenance via Steganography | Audio |
| PAD-015 | Ambient Witness Protocol (BLE Crowdsourcing) | IoT / Provenance |
| PAD-016 | Dynamic Credential Renewal ("Heartbeat Protocol") | Identity |
| PAD-017 | Cryptographic Proof of Reasoning | AI Safety |
| PAD-018 | Model Lineage Provenance ("Birth Certificate Protocol") | AI Safety |
| PAD-019 | Transparent Agent Communication | AI Safety |
| PAD-020 | Capability Acquisition Containment | AI Safety |
| PAD-021 | Graduated Autonomy via Inverse Capability Scaling | AI Safety |
| PAD-022 | Agent Population Governance | AI Safety |
| PAD-023 | Machine-Readable Content Usage Policies in Audio Watermarks | Audio / Rights |
| PAD-024 | Temporal Perceptual Hashing for Video Provenance | Video |
| PAD-025 | Edge-First Content Provenance via Client-Side WASM | Architecture |
| PAD-026 | DID-Linked Voice Biometric Enrollment | Voice / Biometrics |
| PAD-027 | Shamir Secret Sharing of Biometric Enrollment Data | Recovery / Biometrics |
| PAD-028 | Unified Cross-Modal Identity-Bound Provenance | Multi-Modal / Identity |
| PAD-029 | Identity-Verified Communication Shield | Elder Safety / Voice |
| PAD-030 | Zero-Knowledge Reputation Portability | Privacy / Trust |
| PAD-031 | Adversarial Provenance Honeypots | Adversarial Detection |
| PAD-032 | Cryptographic Mortality Protocol | Identity Lifecycle |
| PAD-033 | ZK Proof Compression for Post-Quantum Signatures | Post-Quantum / ZKP |
| PAD-034 | Composite Threshold Aggregation for Swarm Consensus | Post-Quantum / Swarm |
| PAD-035 | Asynchronous Chunked Verification and Edge PQ Signatures | Post-Quantum / Edge |
| PAD-036 | Aggregated Reputation Scoring via Verifiable State Receipts | Trust / Enterprise |
| PAD-037 | Cross-Protocol Agent Credential Federation | Identity / Enterprise |
| PAD-038 | Decentralized Agent Capability Discovery | Discovery / Multi-Agent |
| PAD-039 | Cross-Implementation Deterministic Multi-Party Trust State via JCS | Cross-Impl Determinism |
| PAD-040 | Hybrid Composite Signature Bound to Same Canonical Bytes (Ed25519 + ML-DSA-44) | Post-Quantum / Hybrid |
| PAD-041 | Algorithm-Agnostic Verification Method Resolution via Multikey Multicodec | Verification / Multikey |
| PAD-042 | Standardized Metadata Schema for AI Agent Ledger Signatures | Metadata / Audit |
| PAD-043 | Cryptographic Weight Binding for Model-Intrinsic AI Identity | AI Identity / Model |
| PAD-044 | Ephemeral ZK-State Channels for Agentic Layer 2 Scalability | Scalability / ZK |
| PAD-045 | Proof of Non-Hallucination via Cryptographic Retrieval Anchoring | AI Safety / RAG |
| PAD-046 | Algorithm Quorum Verification via M-of-N Cryptosuite Diversity | Defense in Depth |
| PAD-047 | Verifiable Delay Functions for Cryptographic Rate-Limiting | Agent Containment |
| PAD-048 | Write-Only Async Context Ledger for LLM Coding Assistants | AI Coding / IP Protection |
| PAD-049 | Decoupled Semantic Policy Extraction via Passive Source Monitoring | AI Coding / IP Protection |
| PAD-050 | Zero-Context Deterministic Egress Interception | AI Coding / Egress Control |
| PAD-051 | Parallel Intent Extraction via Local Shadow Models | AI Coding / Local-First |
| PAD-052 | UI State Sniffing for Closed-Box AI Coding Tools | AI Coding / Compatibility |
| PAD-053 | Time-Bounded Ephemeral Rules with Auto-Expiry | AI Coding / Lifetime |
| PAD-054 | Filesystem-Hierarchy Policy Inheritance for AI Coding Workspaces | AI Coding / Composition |
| PAD-055 | Cross-Session Policy Re-Anchoring via Pre-Flight Context Replay | AI Coding / Continuity |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vouch_protocol-1.6.2.tar.gz.
File metadata
- Download URL: vouch_protocol-1.6.2.tar.gz
- Upload date:
- Size: 267.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c643888d359a0366db816b502e40cdb820dc86bb97bdee35b8a3543b7e95c31e
|
|
| MD5 |
f97d86e335f24dd791db78a99a878051
|
|
| BLAKE2b-256 |
f44dba391423deea17c1ae9ee991aff6d5e317d091537f768017178020211652
|
File details
Details for the file vouch_protocol-1.6.2-py3-none-any.whl.
File metadata
- Download URL: vouch_protocol-1.6.2-py3-none-any.whl
- Upload date:
- Size: 228.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
58293863ef5c373a78f51ecc4e4d8b2a290f821e16a41f4aea5762baf7f76f81
|
|
| MD5 |
572f868390b54f251213a440a8b02e9e
|
|
| BLAKE2b-256 |
64f03550c3c345491b4acc95a5b399a92c4f8e97d4261d242bb25b09a500d375
|