Skip to main content

The Identity & Reputation Standard for AI Agents

Project description

Vouch Protocol™

Vouch Protocol

Vouch Protocol™ — common-law trademark.

The Open Standard for Identity & Provenance of AI Agents

C2PA Member CAI Member DIF Member Linux Foundation Member

Protected by Vouch OpenSSF Silver Code Coverage Discord

Apache 2.0 License


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-2022 cryptosuite (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 init generate an agent identity (a DID and keypair).
  • vouch sign / vouch verify sign a payload and verify it.
  • vouch git sign every git commit cryptographically, set up in one command, with a verified badge for your README.
  • 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).
  • 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 media sign 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.

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-2022 cryptosuite, 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:

  1. Generate Identity: Create an Ed25519 keypair and a DID, publish a DID Document with a Multikey verification method.
  2. Sign Action: Agent's sidecar issues a Verifiable Credential carrying action, target, and resource, secured by an eddsa-jcs-2022 Data Integrity proof.
  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).
  4. 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

See all integrations →


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.

See full examples →


Documentation


Community


Roadmap

v1.6 (current release)

  • Verifiable Credentials + Data Integrity (eddsa-jcs-2022 cryptosuite)
  • 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

View all disclosures →

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vouch_protocol-1.6.1.tar.gz (251.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vouch_protocol-1.6.1-py3-none-any.whl (220.7 kB view details)

Uploaded Python 3

File details

Details for the file vouch_protocol-1.6.1.tar.gz.

File metadata

  • Download URL: vouch_protocol-1.6.1.tar.gz
  • Upload date:
  • Size: 251.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for vouch_protocol-1.6.1.tar.gz
Algorithm Hash digest
SHA256 5fbe93e24c87eadeef27b4c7dc98364fa17f96c6f49a6e4aec66b2c5deb2b252
MD5 075b87062bf1c79a5b359320086ddabc
BLAKE2b-256 a78bf7569cb6fdda4282fe01c88462cdabc2744e0f8338ae81345c263f019d5d

See more details on using hashes here.

File details

Details for the file vouch_protocol-1.6.1-py3-none-any.whl.

File metadata

  • Download URL: vouch_protocol-1.6.1-py3-none-any.whl
  • Upload date:
  • Size: 220.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for vouch_protocol-1.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b74f2856a1211491351ecd2f34d91dbf57641e4f1275a28cabf3311a329d5f82
MD5 12eb233c3e86349992c05d870f069ec0
BLAKE2b-256 35e6eaea83cf0df9527557f82c0151819eb7a7f70054f23dd48548ef27d5e95b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page