Conformance Levels
PEAC Protocol provides over 200 conformance test vectors for validating implementations. Vectors are organized into three levels -- each level builds on the one below it. Pass all vectors at a level to claim conformance.
Levels
Level 1: Core
Minimum viable implementation. Any system that issues or verifies PEAC receipts must pass all Level 1 vectors.
- Signature creation and verification (Ed25519, RFC 8032)
- Required JWT claims validation (
iss,sub,iat,jti) - Wire format header validation (
alg,typ,kid) - PEAC object validation (
type,attestation_type,status) - Error code correctness for malformed inputs
Level 2: Extended
Full protocol support, including extensions, policy, and evidence bundles.
- Extension schema validation (
org.peacprotocol/interaction@0.1, etc.) - Attestation type validation against the registry
- Policy parsing and purpose-based evaluation
- Evidence bundle creation and verification (
.peac.tar.gz) - Workflow context and DAG validation
- Attribution and dispute attestations
Level 3: Profiles
Profile-specific conformance for specialized deployment scenarios.
- HTTP 402 profile vectors (x402 payment flow)
- RFC 9421 proof capture vectors (HTTP message signatures)
- Transport profile vectors (HTTP header delivery)
- Agent identity attestation vectors
Running vectors
Run all vectors at a level
pnpm exec peac conformance --level 1
Run a specific category
pnpm exec peac conformance --category crypto
Run against a custom endpoint
pnpm exec peac conformance --level 1 --endpoint http://localhost:3000
Vector file structure
Vectors are JSON files organized by category in specs/conformance/:
specs/conformance/
fixtures/
agent-identity/ # Agent identity attestation vectors
attribution/ # Attribution evidence vectors
bundle/ # Evidence bundle vectors
crypto/ # Signature and key vectors
discovery/ # Issuer discovery vectors
dispute/ # Dispute evidence vectors
edge/ # Edge case vectors
interaction/ # Interaction evidence vectors
invalid/ # Known-invalid receipt vectors
issue/ # Receipt issuance vectors
obligations/ # Obligation tracking vectors
parse/ # Receipt parsing vectors
policy/ # Policy evaluation vectors
purpose/ # Purpose-based access vectors
stripe-crypto/ # Stripe crypto payment vectors
valid/ # Known-valid receipt vectors
verifier/ # Verifier behavior vectors
workflow/ # Workflow DAG vectors
x402/ # x402 payment vectors
manifest.json # Vector manifest with metadata
samples/
bundles/ # Sample evidence bundles
valid/ # Sample valid receipts
invalid/ # Sample invalid receipts
Vector format
Each vector file contains one or more test cases with explicit inputs and expected outputs:
{
"name": "signature-valid-001",
"description": "Valid Ed25519 signature over standard receipt",
"level": 1,
"category": "crypto",
"input": {
"receipt": "eyJhbGciOiJFZERTQSIs...",
"jwks": {
"keys": [{ "kty": "OKP", "crv": "Ed25519", "x": "..." }]
}
},
"expected": {
"verified": true,
"checks": [
{ "id": 1, "name": "signature", "passed": true },
{ "id": 2, "name": "typ_header", "passed": true }
]
}
}
| Field | Description |
|---|---|
name | Unique vector identifier |
description | Human-readable description of what the vector tests |
level | Conformance level (1, 2, or 3) |
category | Vector category (crypto, claims, policy, etc.) |
input | Test inputs -- receipts, keys, options |
expected | Expected outputs -- verification result, error codes, check results |
Claiming conformance
Implementations that pass all vectors at a given level can claim conformance. Include the level and vector version in your documentation:
PEAC Conformance: Level 1 (Core)
Tested against: peac-conformance-vectors v0.10.13
Run conformance vectors as part of your CI pipeline to catch regressions early. The vectors are stable across patch releases -- new vectors are only added in minor releases.