Version: v0.2
Status: Live
Note: This implementation follows SAR verification semantics with an extended signed payload when counterparty is present.
SAR is a verification layer for autonomous agent execution.
It produces signed, deterministic receipts proving whether an agent action satisfied its specification.
Agent action → Verify → Sign → Receipt → Execute
Verification must be:
- Deterministic
- Canonicalized (RFC 8785 — JCS)
- Cryptographically signed (Ed25519)
- Independently verifiable
- Portable
The Ed25519 signature is computed over a canonicalized payload called receipt_v0_1.
The signed payload is exactly the receipt_v0_1 object.
All fields inside receipt_v0_1 are included in:
- Canonicalization (JCS)
- SHA256 hashing
- Signature verification
receipt_idderivation
Fields outside receipt_v0_1 are not part of the signed scope and do not affect receipt validity.
All field-level mappings in this implementation refer to paths under receipt_v0_1.
Example:
{
"task_id_hash": "sha256:...",
"verdict": "PASS",
"confidence": 1.0,
"reason_code": "SPEC_MATCH",
"ts": "2026-04-15T17:21:16.517881Z",
"verifier_kid": "sar-prod-ed25519-03",
"counterparty": "0x123..."
}The following fields exist at:
receipt_v0_1.task_id_hashreceipt_v0_1.verdictreceipt_v0_1.confidencereceipt_v0_1.reason_codereceipt_v0_1.tsreceipt_v0_1.verifier_kidreceipt_v0_1.counterparty(optional)
receipt_v0_1.task_id_hashreceipt_v0_1.verdictreceipt_v0_1.confidencereceipt_v0_1.reason_codereceipt_v0_1.tsreceipt_v0_1.verifier_kid
receipt_v0_1.counterparty
When counterparty is present, it is included in:
- The canonicalized payload
- The SHA256 digest
- The Ed25519 signature
- The
receipt_idderivation
Legacy receipts (without counterparty) remain valid.
This behavior differs from earlier SAR protocol drafts (e.g. sarprotocol.org), where:
counterpartyexisted outside the signed core- It did not affect
receipt_idderivation
This implementation reflects the SettlementWitness / DefaultVerifier model.
receipt_id is derived as:
SHA256(JCS(receipt_v0_1))
This means:
- Identical payload → identical
receipt_id receipt_idalways matches the signed payloadreceipt_idis independently recomputable
Public keys are available via:
- https://defaultverifier.com/.well-known/jwks.json
- https://defaultverifier.com/.well-known/sar-keys.json
Keys are referenced via:
receipt_v0_1.verifier_kid
To verify a receipt:
- Extract
receipt_v0_1 - Canonicalize using RFC 8785 (JCS)
- Compute SHA256 digest
- Confirm digest matches receipt_v0_1.receipt_id
- Resolve
verifier_kidto a public key - Verify Ed25519 signature
No server interaction is required after key resolution.
SAR verifies:
- Whether an output satisfies a specification
SAR does NOT:
- Execute payments
- Enforce outcomes
- Provide identity
- Resolve disputes
SAR provides a portable, deterministic, cryptographic truth layer for agent execution.
If it matters — verify it.