Help us improve
Share bugs, ideas, or general feedback.
From Vouch Protocol
Signs AI agent actions with cryptographic identity (DIDs, Verifiable Credentials) using Vouch Protocol's shared Rust core. Provides Python, TypeScript, Go SDKs for agent identity, intent attestation, and post-quantum proof support.
npx claudepluginhub vouch-protocol/vouch --plugin vouch-protocolHow this skill is triggered — by the user, by Claude, or both
Slash command
/vouch-protocol:vouch-protocolThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Vouch Protocol is an open standard that gives autonomous AI agents
reference/credential-format.mdreference/delegation.mdreference/go-sidecar.mdreference/integrations.mdreference/language-sdks.mdreference/overview.mdreference/post-quantum.mdreference/python-sdk.mdreference/quickstart.mdreference/revocation.mdreference/sidecar.mdreference/state-verifiability.mdreference/troubleshooting.mdreference/typescript-sdk.mdRegister AI agents on-chain using the ERC-8004 Trustless Agents standard. Manage agent identity as NFTs, build reputation through feedback, and request third-party validation.
Registers AI agents onchain, queries reputation, and gives feedback using ERC-8004 IdentityRegistry and ReputationRegistry on Abstract mainnet.
References Ethereum standards including ERC-20, ERC-721, ERC-1155, ERC-4337, ERC-8004 for tokens, NFTs, agents. Details usage, interfaces, contracts, EIP-7702, x402.
Share bugs, ideas, or general feedback.
Vouch Protocol is an open standard that gives autonomous AI agents cryptographic identity, intent attestation, and continuous trust verification. It's the "SSL certificate for AI agents."
This skill helps developers integrate Vouch into their codebase across many languages over one shared Rust core (Python, TypeScript, Go, Swift, JVM, .NET, C, and WebAssembly) and explain protocol behaviour without forcing the user to read the full specification.
Invoke when the user:
vouch-protocol, @vouch-protocol-official/core-wasm, vouch-sidecar)hybrid-eddsa-mldsa44-jcs-2026)A Vouch credential is a JSON object that:
did:web:agent.example.com or did:key:z6Mk...)intent.action, intent.target, intent.resource)credentialStatus for per-credential revocationThree SDKs, all producing byte-identical credentials:
vouch/ (most complete reference SDK)packages/sdk-ts/ (browser and Node)go-sidecar/ (long-running daemon for the Identity Sidecar pattern)Cross-language interop is guaranteed by JCS canonicalization (RFC 8785). A credential signed in Python verifies in TypeScript or Go and vice versa.
Three-line Python:
from vouch import generate_identity, Signer, build_vouch_credential
keys = generate_identity("agent.example.com") # returns a KeyPair
signer = Signer(private_key=keys.private_key_jwk, did=keys.did)
credential = build_vouch_credential(
issuer_did="did:web:agent.example.com",
intent={
"action": "submit_claim",
"target": "claim:HC-001",
"resource": "https://insurance.example.com/claims/HC-001",
},
valid_seconds=300,
)
signed = signer.sign_credential(credential)
The signed dict is a full Verifiable Credential with a Data Integrity
proof attached as a sibling object. It is human-readable JSON.
TypeScript and Go equivalents in reference/typescript-sdk.md and
reference/go-sidecar.md.
from vouch import Verifier
# verify_credential returns a (is_valid, passport) tuple
is_valid, passport = Verifier.verify_credential(signed, public_key=keys.public_key_jwk)
if is_valid:
print(f"Verified: {passport.subject_did} did {passport.intent}")
else:
print("Rejected")
Verification checks: schema, signature math, validity window, nonce (replay protection), DID-level revocation, optional credentialStatus bitstring, and any delegation chain links.
Use the hybrid cryptosuite. Requires the optional pqcrypto dep:
pip install 'vouch-protocol[pq]'
Then:
signer = Signer(private_key=keys.private_key_jwk, did=keys.did)
signed = signer.sign_credential_hybrid(intent={
"action": "submit_claim",
"target": "claim:HC-001",
"resource": "https://insurance.example.com/claims/HC-001",
})
The proof becomes a single multibase blob concatenating an Ed25519 signature (64 bytes) and an ML-DSA-44 signature (2,420 bytes) over the same JCS-canonicalized bytes. Verifiers can validate Ed25519 only (classical), ML-DSA-44 only (PQ), or both.
See reference/post-quantum.md for the migration narrative.
Use the Identity Sidecar pattern: a separate process holds the key, the LLM never sees it.
cd go-sidecar && go build ./cmd/vouch-sidecar
./vouch-sidecar --did did:web:agent.example.com --port 8877
The agent's code calls POST http://localhost:8877/sign with the
credential body and receives a signed credential back. Prompt injection
cannot exfiltrate keys that are never in the LLM's context.
See reference/sidecar.md.
A human principal signs a delegation to an agent, the agent signs a sub-delegation to a sub-agent, and the sub-agent signs the actual action. Each link narrows the resource scope. The verifier walks the chain backward.
See reference/delegation.md for the construction and verification flow.
BitstringStatusList: flip the bit at the credential's index, re-sign the BitstringStatusListCredential, and republish. Verifiers fetch the list and check the bit.
from vouch import StatusList, build_status_list_entry, build_vouch_credential
status_list = StatusList(status_list_id="https://issuer.example/status/1")
index = status_list.allocate_index()
# Attach to credential at issuance
credential = build_vouch_credential(
issuer_did="did:web:issuer.example",
intent={...},
credential_status=build_status_list_entry(
status_list_credential="https://issuer.example/status/1",
status_list_index=index,
),
)
To revoke later: status_list.revoke(index) and republish. See
reference/revocation.md.
Reference implementations under vouch/integrations/. See
reference/integrations.md for the common pattern.
vouch.revocation).For depth on any topic, read the relevant file under reference/:
reference/python-sdk.md - Full Python API referencereference/typescript-sdk.md - TypeScript SDK referencereference/go-sidecar.md - Go sidecar build, run, deployreference/credential-format.md - VC structure, fields, examplesreference/delegation.md - Delegation chain construction and verificationreference/post-quantum.md - Hybrid cryptosuite, migration guidancereference/revocation.md - DID-level and credential-level revocationreference/state-verifiability.md - Heartbeat, validator quorum, behavioral attestationreference/integrations.md - LangChain, CrewAI, MCP, AutoGen, Vertex AI patternsreference/sidecar.md - Identity Sidecar architecture and deploymentreference/troubleshooting.md - Common errors and fixesWhen you see these in a user's code, mention the issue:
sign_credential over sign.resource in intent: the protocol requires intent to bind to a
specific resource. A credential without one is rejected by verifiers.score.tier for policy decisions.eddsa-jcs-2022,
hybrid-eddsa-mldsa44-jcs-2026, DataIntegrityProof, Multikey,
did:web, did:key, BitstringStatusListCredential. These are
functional protocol identifiers.