Skip to main content

The Identity & Reputation Standard for AI Agents

Project description

Vouch Protocol

Discord License: AGPL v3 Status

__      __  ____   _    _    _____   _    _ 
\ \    / / / __ \ | |  | |  / ____| | |  | |
 \ \  / / | |  | || |  | | | |      | |__| |
  \ \/  / | |__| || |__| | | |____  |  __  |
   \__/    \____/  \____/   \_____| |_|  |_|

"The 'Green Lock' for the Agentic Web."

Vouch is the open-source standard for AI Agent Identity, Reputation, & Liability. It provides the missing cryptographic handshake to allow autonomous agents to prove their intent and accountability.

⚠️ Public Beta: This protocol is v1.0 compliant but the implementation is currently in Beta. Please report issues on GitHub.


⚡ Quick Start

1. Installation

pip install vouch-protocol

2. Generate Identity

# Generate a new keypair
vouch init --domain your-agent.com

# Export as environment variables
vouch init --domain your-agent.com --env

3. Sign a Payload

from vouch import Signer
import os

signer = Signer(
    private_key=os.environ['VOUCH_PRIVATE_KEY'],
    did=os.environ['VOUCH_DID']
)

token = signer.sign({'action': 'read_database', 'target': 'users'})
# Use token in Vouch-Token header

4. Verify a Token (Gatekeepers)

from fastapi import FastAPI, Header, HTTPException
from vouch import Verifier

app = FastAPI()

@app.post("/api/resource")
def protected_route(vouch_token: str = Header(alias="Vouch-Token")):
    # Verify with the agent's public key
    public_key = '{"kty":"OKP","crv":"Ed25519","x":"..."}'  # From agent's vouch.json
    
    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}

🔌 Integrations

1. Model Context Protocol (MCP)

Vouch includes a native MCP server for Claude Desktop & Cursor.

Configuration:

{
  "mcpServers": {
    "vouch": {
      "command": "python3",
      "args": ["-m", "vouch.integrations.mcp.server"],
      "env": {
        "VOUCH_PRIVATE_KEY": "YOUR_KEY",
        "VOUCH_DID": "did:web:your-domain.com"
      }
    }
  }
}

2. LangChain Integration

Add cryptographic identity to your LangChain tools.

from vouch.integrations.langchain.tool import VouchSignerTool

tools = [VouchSignerTool()]

3. CrewAI Integration

Works natively with CrewAI agents.

from vouch.integrations.crewai.tool import VouchSignerTool

agent = Agent(
    role='Analyst', 
    tools=[VouchSignerTool()]
)

4. AutoGPT Integration

Register the signer command with your agent.

from vouch.integrations.autogpt import register_commands

5. AutoGen Integration

Use with Microsoft AutoGen agents.

from vouch.integrations.autogen import sign_action

# Register as a function tool
assistant.register_function(sign_action)

6. Google Vertex AI Integration

Sign function calls in Vertex AI Agent Builder.

from vouch.integrations.google import VertexAISigner

signer = VertexAISigner()
token = signer.sign_tool_call('search_database', {'query': 'test'})

7. n8n Integration (Low-Code Agents)

You can use Vouch directly in n8n using the Python Code Node.

Prerequisite: Ensure your n8n instance installs the library: export EXTERNAL_PYTHON_PACKAGES=vouch-protocol

Code Node Snippet:

from vouch import Signer
import os

signer = Signer(
    private_key=os.environ.get('VOUCH_PRIVATE_KEY'), 
    did=os.environ.get('VOUCH_DID')
)

# Sign the incoming workflow data
for item in _input.all():
    item.json['vouch_token'] = signer.sign(item.json)

return _input.all()

🏢 Enterprise Features

Key Rotation

from vouch.kms import RotatingKeyProvider, KeyConfig

keys = [
    KeyConfig(private_key_jwk='...', did='did:web:agent.com', key_id='key1'),
    KeyConfig(private_key_jwk='...', did='did:web:agent.com', key_id='key2'),
]

provider = RotatingKeyProvider(keys, rotation_interval_hours=24)
signer = provider.get_signer()  # Automatically uses active key

Voice AI Signing

from vouch import Signer
from vouch.audio import AudioSigner

signer = Signer(private_key='...', did='did:web:voice-ai.com')
audio_signer = AudioSigner(signer)

signed_frame = audio_signer.sign_frame(audio_bytes)
print(signed_frame.vouch_token)

🖥️ CLI Reference

# Generate new identity
vouch init --domain example.com
vouch init --domain example.com --env  # Output as env vars

# Sign a message
vouch sign "Hello World"
vouch sign '{"action": "test"}' --json
vouch sign "message" --header  # Include Vouch-Token prefix

# Verify a token
vouch verify <token>
vouch verify <token> --key '{"kty":"OKP",...}'  # With public key
vouch verify <token> --json  # Output as JSON

📜 License & Legal

This project is licensed under the GNU Affero General Public License v3.0 (AGPLv3). View Full License

Defensive Disclosure (Prior Art)

Publication Date: December 14, 2025 Subject: Cryptographic Binding of AI Agent Intent via Model Context Protocol (MCP)

To ensure the freedom of the ecosystem to build secure agents, we explicitly disclose the following novel method as Prior Art:

  1. The "Identity Sidecar" Pattern: An MCP Server acting as a local "Identity Proxy" for a stateless LLM, isolating keys from application code.
  2. Just-in-Time (JIT) Intent Signing: A workflow where the LLM requests a signed "Vouch-Token" for a specific action before execution.
  3. Non-Repudiation: Generating a cryptographically verifiable audit trail binding Identity, Intent, and Time.

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.1.2.tar.gz (73.8 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.1.2-py3-none-any.whl (71.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: vouch_protocol-1.1.2.tar.gz
  • Upload date:
  • Size: 73.8 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.1.2.tar.gz
Algorithm Hash digest
SHA256 180773b95f0c1f8033b44a9de457f2c8dad85dd70a8e15d871bf4b97f4663e67
MD5 d5524ba9a7d9981bd4ef0c5544ceb09a
BLAKE2b-256 1340791cc5720d2935963a17fb9735cd0bd1a4629d1cee6cbbffd0675285f329

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vouch_protocol-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 71.1 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.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 64731f321b78e3150818f9a615966193b66b69f9dcafd28f4f369b1f47754587
MD5 75ca8caabbe0f4d8da910903c762bb4e
BLAKE2b-256 a8ac10f2d2577a018cdd99dd3a39ff9b2e0de23d23407c0e5c5bb047cc9c73a7

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