Skip to content

Agent Receipt Schema

An Agent Receipt is a W3C Verifiable Credential with type AgentReceipt. This page documents the full schema with all required and optional fields.

FIELD MAP — jump to sectiontop-levelissuerprincipalactionintentoutcomeauthorizationdelegationchainproofrequiredoptionalcryptographic
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://agentreceipts.ai/context/v1"
],
"id": "urn:receipt:550e8400-e29b-41d4-a716-446655440000",
"type": ["VerifiableCredential", "AgentReceipt"],
"version": "0.1.0",
"issuer": {
"id": "did:agent:claude-cowork-instance-abc123",
"type": "AIAgent",
"name": "Claude Cowork",
"operator": {
"id": "did:org:anthropic",
"name": "Anthropic"
},
"model": "claude-sonnet-4-6",
"session_id": "session_xyz789"
},
"validFrom": "2026-03-31T14:30:00Z",
"credentialSubject": {
"principal": {
"id": "did:user:otto-abc",
"type": "HumanPrincipal"
},
"action": {
"id": "act_7f3a1b2c-d4e5-46f7-a8b9-c0d1e2f3a4b5",
"type": "filesystem.file.delete",
"risk_level": "high",
"target": {
"system": "local",
"resource": "/tmp/old-report.pdf"
},
"parameters_hash": "sha256:a3f1c2d4e5b6a7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1d6",
"timestamp": "2026-03-31T14:30:00Z",
"trusted_timestamp": null
},
"intent": {
"conversation_hash": "sha256:b4e2d1f3a5c6b7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1e7",
"prompt_preview": "Clean up old reports in /tmp",
"prompt_preview_truncated": true,
"reasoning_hash": "sha256:c5f3e2d4a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2f8"
},
"outcome": {
"status": "success",
"error": null,
"reversible": false,
"reversal_method": null,
"reversal_window_seconds": null,
"state_change": {
"before_hash": "sha256:d604f3e5a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0a1b2c3a9",
"after_hash": "sha256:e7a504f6a8b9c0d1e2f3a4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4ba"
}
},
"authorization": {
"scopes": ["filesystem:write"],
"granted_at": "2026-03-31T14:00:00Z",
"expires_at": "2026-03-31T15:00:00Z",
"grant_ref": null
},
"chain": {
"sequence": 1,
"previous_receipt_hash": null,
"chain_id": "chain_session_xyz789"
}
},
"proof": {
"type": "Ed25519Signature2020",
"created": "2026-03-31T14:30:01Z",
"verificationMethod": "did:agent:claude-cowork-instance-abc123#key-1",
"proofPurpose": "assertionMethod",
"proofValue": "z..."
}
}
FieldRequiredDescription
@contextYesJSON-LD context. Must include the W3C VC v2 and Agent Receipt context URIs in order.
idYesGlobally unique identifier. Must be urn:receipt:<uuid>.
typeYesMust be ["VerifiableCredential", "AgentReceipt"].
versionYesSpec version. Must be "0.1.0" for this version.
issuerYesThe agent or platform that issued the receipt.
validFromYesISO 8601 datetime when the receipt was issued. May differ from action.timestamp.
credentialSubjectYesThe receipt payload.
proofYesCryptographic proof.
FieldRequiredDescription
idYesDID or URI identifying the agent instance.
typeNoShould be "AIAgent".
nameNoHuman-readable agent name.
operator.idConditionalDID or URI of the operating entity. Required when operator is present.
operator.nameConditionalHuman-readable operator name. Required when operator is present.
modelNoModel identifier (e.g. claude-sonnet-4-6).
session_idNoOpaque session identifier.
FieldRequiredDescription
idYesDID or URI identifying the human or org.
typeNo"HumanPrincipal" or "OrganizationPrincipal".
FieldRequiredDescription
idYesUnique action ID. Format: act_<uuid>.
typeYesAction type from the taxonomy.
risk_levelYeslow, medium, high, or critical.
target.systemNoThe system or service acted upon.
target.resourceNoThe specific resource within the system.
parameters_hashNosha256: prefixed hash of action parameters (RFC 8785 canonical JSON).
timestampYesISO 8601 datetime when the action was executed.
trusted_timestampNoBase64-encoded RFC 3161 TimeStampToken, or null.
FieldRequiredDescription
conversation_hashNosha256: hash of the conversation context.
prompt_previewNoPlain-text preview of the triggering prompt (may be truncated).
prompt_preview_truncatedNotrue if preview was truncated.
reasoning_hashNosha256: hash of the agent’s reasoning trace.
FieldRequiredDescription
statusYessuccess, failure, or pending.
errorNoError message if status is failure.
reversibleNotrue if the action can be undone.
reversal_methodNoMachine-readable reversal method (e.g. gmail:undo_send).
reversal_window_secondsNoSeconds within which reversal is possible.
reversal_ofNourn:receipt:<uuid> of the original receipt this receipt reverses. Present only on reversal receipts.
state_change.before_hashConditionalsha256: hash of state before. Required when state_change is present.
state_change.after_hashConditionalsha256: hash of state after. Required when state_change is present.
FieldRequiredDescription
scopesConditionalAuthorization scopes. Required when authorization is present.
granted_atConditionalWhen authorization was granted. Required when authorization is present.
expires_atNoWhen authorization expires.
grant_refNoReference to authorization grant (e.g. Grantex token).

Present when this chain was spawned by delegation from another agent. All fields are required when delegation is present.

FieldRequiredDescription
parent_chain_idConditionalchain_id of the delegating agent’s chain. Required when delegation is present.
parent_receipt_idConditionalid of the receipt in the parent chain where delegation occurred. Required when delegation is present.
delegator.idConditionalDID or URI of the delegating agent (the parent chain’s issuer). Required when delegation is present.
FieldRequiredDescription
chain_idYesOpaque identifier grouping receipts into a chain.
sequenceYesMonotonically increasing integer, starting at 1.
previous_receipt_hashYessha256: hash of previous receipt, or null for first in chain.
FieldRequiredDescription
typeYesMust be "Ed25519Signature2020".
createdYesISO 8601 datetime when the proof was created.
verificationMethodYesDID URL of the signing key.
proofPurposeYesMust be "assertionMethod".
proofValueYesMultibase-encoded (z-prefixed base58btc) Ed25519 signature.

A machine-readable JSON Schema (draft 2020-12) is available at schema/action-receipt.schema.json.