Skip to content

HTTP receipts for consent, attribution, provenance & payments

Add a signed PEAC-Receipt to any HTTP response - proving content integrity, AIPREF prefs honored, attribution, provenance (C2PA), and optional 402 payments (x402). One header. Millisecond verify.

PEAC-Receipt: <JWS>
{
  "alg": "EdDSA",
  "typ": "peac.receipt/0.9",
  "kid": "peac-2025-09"
}

{
  "iat": 1727593800,
  "hash": "sha256:a1b2c3...",
  "aipref": {...},
  "payment": {"scheme": "x402"},
  "prov": {"c2pa": "sha256:..."}
}
iat: Sep 29, 2024 03:30:00 UTC
✓ Verified - integrity, AIPREF, attribution, C2PA, x402
Sample receipt verified
x402 test reachable

Receipt explorer

Load sample or paste token to decode

Spec Snapshot (v0.9.14)

typ:“peac.receipt/0.9” (JWS protected header)
iat:Unix seconds (required in payload)
PEAC-Receipt:Single header (normative)
payment.scheme:“x402” (if present)
Media types:application/peac+json, application/problem+json, application/jwk-set+json

Why receipts

🔐
Cryptographic integrity
Ed25519 JWS signature proves unmodified content
📋
Policy snapshot
AIPREF + attribution frozen at request time
Settlement proof
402/x402 payment confirmed via receipt

Adapters:

x402Stripe (via adapter)
View all →

Quickstart

1. Install
npm install @peac/core

import { sign } from '@peac/core'
2. Sign
const receipt = await sign(data)

res.setHeader('PEAC-Receipt', receipt)
3. Verify
const receipt = res.headers['peac-receipt']

const valid = await verify(receipt)

Start integrating receipts