Evidence
Decision receipts
Evidence that does not depend solely on project promises.
Decision Receipts records policy and mandate hashes, outcomes, denial reasons, and execution evidence.
What a receipt holds#
| Field | Meaning |
|---|---|
id, agentId, decidedAt | Which decision, and when |
mode | live or dry_run |
outcome, reasons | The result and any denial codes |
request | The proposed transaction |
cover, mandate, simulation | Each check and its result |
certificateId, policyHash | The certificate in force |
mandateVersion, mandateHash | The mandate in force |
humanApproved | Whether a person approved it |
execution | Execution evidence, or null |
hash | Hash of the receipt |
signature | Ed25519 signature of the hash |
Receipt Verifier#
Lets anyone check a receipt against its hashes without an account.
bash
curl -X POST https://dapp.covergate.app/api/v1/receipts/verify \
-H "content-type: application/json" \
-d '{ "receipt": { } }'Send the receipt without its hash field. The response returns the computed hash, whether it matches a stored decision, decidedAt, and the signature.
Check a receipt offline#
Every new decision is signed with CoverGate's Ed25519 receipt key. Fetch the public key once from GET /api/v1/receipts/key, keep it, and you can check a receipt with no call to CoverGate. A changed receipt fails the check.
js
import { verifyDecision } from "./covergate.mjs";
const valid = await verifyDecision(decision, publicKey);See JavaScript SDK.
Audit Export#
Exports decisions and receipts for an agent.
bash
curl -O https://dapp.covergate.app/api/v1/agents/<agent id>/export.csv