Cross-agent provenance.
When one agent's decision triggers another's, the receipts can be linked into a verifiable chain of custody — even across organizations. Pass the upstream receipt's ID as parent_receipt_id when you certify, and the whole chain becomes traceable: a bad outcome from a multi-agent workflow can be traced to the exact failing link.
Linking a decision to its parent
Every certify_decision / POST /v1/receipts call optionally accepts parent_receipt_id:
POST /v1/receipts
{ "agent_id": "fulfillment_bot",
"user_intent": "...",
"agent_output": "...",
"parent_receipt_id": "rcpt_5e9a32bbf50d452c8b9aac7d" }The parent is bound into the receipt's execution_hash, so the link itself is tamper-evident — you can't rewrite a decision's lineage after the fact.
Walking the chain
GET /v1/receipts/{id}/history (MCP: get_decision_history) walks parent_receipt_id upstream and returns the ordered chain — target → parent → … → root — with a depth count and a complete flag.
- Cycles are detected and the chain is truncated with a note.
- A depth cap (100) bounds pathological chains.
- A dangling parent — a receipt issued by another organization's ledger and not present here — is recorded as an unfound node that ends the chain. Receipts are public by ID, so cross-tenant traversal needs no special access.
Replaying a decision
GET /v1/receipts/{id}/replay (MCP: replay_decision) reconstructs a decision from its stored off-chain record: the original request (user intent, agent output, tools used, context) and the evaluation. Unlike the public receipt metadata, replay returns the actual decision content, so it is owner/admin only.
Why this is the moat
The chain only verifies if every link shares the same issuer, signing key, and ledger — which is exactly what a single Agent Cert network provides. Provenance across systems is structurally impossible for a per-vendor editable log to offer, and it's what lets an auditor, court, or insurer trust a multi-agent outcome end to end.
See also
- MCP server reference — get_decision_history, replay_decision
- Compliance & Article 12
- How verification works