Skip to main content
Version: v0.12.4

Registries

PEAC Protocol maintains registries for extension groups, receipt types, and advisory classifications. These registries define the standard vocabularies that all implementations use to describe interactions, payments, and other protocol events.

Extension Groups (Wire 0.2)

Wire 0.2 defines 12 typed extension groups under the extensions field, keyed by reverse-DNS. Known groups are schema-validated during verification; unrecognized-but-well-formed keys are preserved with a warning. Registered first-party evidence types require their mapped extension group in strict mode; interop mode downgrades to warnings.

Wire 0.2 Extension Example
{
"extensions": {
"org.peacprotocol/commerce": {
"payment_rail": "x402",
"amount_minor": "10000",
"currency": "USD"
},
"com.example/custom-data": {
"custom_field": "value"
}
}
}

Registered extension groups

KeyFieldsDescriptionStatus
org.peacprotocol/commercepayment_rail, amount_minor, currency, reference?, asset?, env?Payment evidenceStable
org.peacprotocol/accessresource, action, decision (allow/deny/review)Access control decisionsStable
org.peacprotocol/challengechallenge_type, problem (RFC 9457), resource?, action?, requirements?Challenge requirementsStable
org.peacprotocol/identityproof_ref?Identity attestationStable
org.peacprotocol/correlationtrace_id?, span_id?, workflow_id?, parent_jti?, depends_on?Workflow correlationStable
Third-party extensions

Third-party extensions use reverse-DNS keys under their own domain (e.g., com.example/custom-data). No registration is required: the namespace itself prevents collisions. Extension keys follow the grammar <domain>/<segment> where domain contains at least one dot and segment is [a-z0-9][a-z0-9_-]*.

Receipt Types (Wire 0.2)

Wire 0.2 receipts have a required type field using reverse-DNS or absolute URI format. The protocol defines 10 recommended types, one per pillar:

TypePillarExtension GroupDescription
org.peacprotocol/paymentcommerceorg.peacprotocol/commercePayment evidence
org.peacprotocol/access-decisionaccessorg.peacprotocol/accessAccess control decisions
org.peacprotocol/identity-attestationidentityorg.peacprotocol/identityIdentity attestation
org.peacprotocol/consent-recordconsent(type-only)Consent records
org.peacprotocol/compliance-checkcompliance(type-only)Compliance checks
org.peacprotocol/privacy-signalprivacy(type-only)Privacy signals
org.peacprotocol/safety-reviewsafety(type-only)Safety reviews
org.peacprotocol/provenance-recordprovenance(type-only)Provenance records
org.peacprotocol/attribution-eventattribution(type-only)Attribution events
org.peacprotocol/purpose-declarationpurpose(type-only)Purpose declarations
Custom types

Custom types are fully supported. Use reverse-DNS format (e.g., com.example/custom-flow) or absolute URI. Unregistered types are accepted during verification with a type_unregistered advisory warning.

Kind Semantics (Wire 0.2)

Wire 0.2 receipts have a required kind field with two structural values:

KindMeaningoccurred_at
evidenceRecords something that happenedAllowed
challengeDeclares what is required before proceedingNot allowed

Pillar Taxonomy (Wire 0.2)

The optional pillars field uses values from a closed 10-pillar taxonomy. Values must be sorted and unique.

PillarDescription
accessAccess control and authorization
attributionSource attribution and citation
commercePayment and commerce evidence
complianceRegulatory compliance checks
consentConsent and terms acceptance
identityAgent identity attestation
privacyPrivacy signal observation
provenanceContent provenance tracking
purposePurpose-based access control
safetySafety review and assessment

Wire 0.1 Claims

Wire 0.1 uses flat payload claims. These are unchanged and stable.

ClaimDescription
issIssuer URL
audAudience URL
iatIssued-at timestamp
amtPayment amount
curCurrency code
railPayment rail identifier
referenceTransaction reference
subjectSubject resource URL

Protocol registries

The specs/kernel/registries.json file also defines registries for payment rails, control engines, transport methods, and agent protocols:

RegistryContents
payment_railsx402, L402, card-network, UPI, Razorpay
control_enginesSpend control, risk engine, mandate service, TAP, RSL
transport_methodsDPoP, HTTP message signatures, none
agent_protocolsMCP, ACP, AP2 (Google), TAP (Visa)
receipt_types10 pillar-recommended receipt types (Wire 0.2)
extension_groups5 core extension groups (Wire 0.2)

Advisory registries

Advisory registries define informational vocabularies. Unlike extension groups, advisory registry values are not enforced at the schema level: they provide standard terminology that implementations should use for interoperability.

toolcall_op_types

Types of tool call operations.

TypeDescription
readRead-only data access
writeData modification
executeCommand execution
querySearch or query operation
subscribeEvent subscription

toolcall_resource_types

Types of resources accessed by tool calls.

TypeDescription
apiREST or GraphQL API endpoint
databaseDatabase query or mutation
fileFile system access
networkNetwork resource
computeCompute resource

Normative specification

The normative registry definitions are maintained in:

Registry Spec Location
specs/kernel/registries.json
Adding to registries

First-party extension groups and receipt types are registered by submitting a pull request to the PEAC Protocol repository. Advisory registries are informational and can be extended without breaking changes. Third-party extension keys do not require registration.