Release v0.6.0 Payments Track Updated: April 2026

Agent-to-Agent (A2A)
Accountability Protocol v0.6.0

Collusion-resistant accountability for AI-driven payments and high-value agent execution.

Author: TrustAgentAI Core Team

Table of Contents

// 01

Abstract

TrustAgentAI A2A Accountability Protocol v0.6.0 extends the previous A2A receipt model with a hardened evidence lifecycle for AI-driven financial actions.

Earlier versions established signed Intent, Acceptance, Execution, optional Ack, DAG-based receipt history, Merkle anchoring, and Content Provenance. Version 0.6.0 focuses on a harder operational question:

If an AI agent moves money on behalf of a user, can the system prove which agent acted, under whose authority, when it happened, and whether any party later attempted to alter or hide the record?

A signature can stop an outsider from forging a transaction. It does not fully solve insider disputes, record deletion, ambiguous key rotation, missing content, or two counterparties presenting conflicting histories after the fact.

New in v0.6.0: the protocol adds durable custodied keys, append-only hash-chain continuity, independent inline witness co-signing, public checkpoint anchoring with heartbeat, encrypted WORM content storage, key transparency, and disciplined degraded-mode operation.

// 02

Threat Model NEW v0.6

v0.6.0 is designed for high-value workflows where AI agents trigger financial actions such as refunds, payouts, wire transfers, vendor payments, inter-company settlements, or regulated operational changes.

Outsider forgery
An attacker attempts to fabricate an agent action without valid signing authority.
Record deletion
A party deletes or suppresses a signed record after execution.
Key ambiguity
A party claims a key had been rotated, revoked, or replaced before the event.
Counterparty dispute
Two systems later disagree about which action was requested, accepted, or executed.
Bilateral collusion
Two primary counterparties attempt to fabricate, alter, or hide the transaction history.
Witness outage
An independent witness or anchoring dependency becomes temporarily unavailable.
Explicit limitation

v0.6.0 does not claim to solve all collusion scenarios. In particular, collusion between an independent witness and one primary party remains an open threat model.

// 03

Terminology

Agent A / Initiator
The AI agent, service, or workload initiating a high-value action.
Agent B / Executor
The AI agent, tool, MCP server, or financial service receiving and executing the request.
Trust Proxy
A sidecar or middleware component that verifies authority, applies policy, signs receipts, and enforces execution rules.
Independent Witness NEW v0.6
A third-party witness service that co-signs high-value transactions before finality and maintains an independent evidence surface.
WORM Store NEW v0.6
An encrypted write-once-read-many evidence store preserving recoverable full transaction records without exposing plaintext to unauthorized parties.
Key-Transparency Registry NEW v0.6
An append-only registry for key creation, rotation, revocation, and endorsement history.
Degraded Mode NEW v0.6
A constrained operational state used when witness or anchoring dependencies are unavailable. Degraded actions are capped, labeled, and reconciled later.
// 04

Evidence Lifecycle

The base A2A flow remains: Intent → Acceptance → Execution → optional Ack. v0.6.0 hardens the evidence lifecycle around this flow.

1
Intent Envelope
The initiator records a signed, time-bounded, replay-resistant intent bound to authority, tool context, and arguments hash.
2
Acceptance Receipt
The executor validates policy, authority, nonce, expiry, and tool binding, then signs an acceptance or rejection.
3
Execution Envelope
The executor signs the result status and output hash, binding the outcome to the intent and acceptance.
4
Witness Co-Signature NEW v0.6
For high-value actions, an independent witness co-signs the transaction evidence before finality.
5
Hash-Chain + WORM + Checkpoint NEW v0.6
Evidence is appended to a local hash-chain, preserved in encrypted WORM storage, and periodically committed to public checkpoint anchors.
Intent
  → Acceptance
  → Execution
  → Witness Co-Signature
  → Append-Only Hash-Chain
  → Encrypted WORM Store
  → Public Checkpoint Anchor
  → Dispute Pack
// 05

Data Formats

Hash Target Rule
Artifact hashes MUST be computed as SHA-256(JCS(envelope WITHOUT "signatures")), where JCS is RFC 8785 canonical JSON. This allows multiple signatures without changing the base envelope hash.

5.1 Intent Envelope

{
  "envelope_type": "IntentEnvelope",
  "spec_version": "0.6",
  "trace_id": "urn:uuid:550e8400-e29b-41d4-a716-446655440000",
  "timestamp": "2026-04-20T10:15:30.123Z",
  "expires_at": "2026-04-20T10:16:00.000Z",

  "initiator": {
    "did": "did:workload:refund-agent-01",
    "vc_ref": "urn:credential:refund-limit-policy-099"
  },

  "target": {
    "did": "did:workload:payment-mcp-server",
    "mcp_deployment_id": "payments-prod-cluster-1",
    "tool_name": "issue_refund",
    "tool_schema_hash": "sha256:e3b0...285",
    "mcp_session_id": "sess_98765abc"
  },

  "payload": {
    "args_hash": "sha256:a5b9...9f1",
    "nonce": "8f42d9a1"
  },

  "signatures": [{
    "role": "proxy",
    "kid": "did:workload:proxy-A#key-7",
    "alg": "EdDSA",
    "signed_digest": "sha256:c4d3...e21",
    "value": "eyJhbGciOiJFZERTQSJ9..."
  }]
}

5.2 Witness Receipt NEW v0.6

{
  "envelope_type": "WitnessReceipt",
  "spec_version": "0.6",
  "trace_id": "urn:uuid:550e8400-e29b-41d4-a716-446655440000",
  "timestamp": "2026-04-20T10:15:31.180Z",

  "witness": {
    "did": "did:workload:independent-witness-01",
    "jurisdiction": "US",
    "service_policy_hash": "sha256:ab12...ff9"
  },

  "observed": {
    "intent_hash": "sha256:c4d3...e21",
    "acceptance_hash": "sha256:8f42...1a2",
    "execution_hash": "sha256:9f86...d46",
    "hash_chain_head": "sha256:3a91...c0f"
  },

  "decision": "WITNESSED",
  "finality_required": true,

  "signatures": [{
    "role": "witness",
    "kid": "did:workload:independent-witness-01#key-3",
    "alg": "EdDSA",
    "signed_digest": "sha256:77b4...31c",
    "value": "eyJhbGciOiJFZERTQSJ9..."
  }]
}

5.3 Checkpoint Anchor

{
  "checkpoint_type": "PublicCheckpoint",
  "spec_version": "0.6",
  "checkpoint_id": "chk_20260420_000042",
  "timestamp": "2026-04-20T10:16:00.000Z",
  "chain_head": "sha256:3a91...c0f",
  "merkle_root": "sha256:0b54...9ab",
  "entry_count": 128,
  "anchor_ref": {
    "network": "base-sepolia",
    "tx_hash": "0x63d0...8c0b"
  },
  "heartbeat_status": "ON_TIME"
}

5.4 Key Transparency Event NEW v0.6

{
  "event_type": "KEY_ROTATION",
  "spec_version": "0.6",
  "subject_did": "did:workload:proxy-A",
  "timestamp": "2026-04-20T09:00:00.000Z",

  "previous_kid": "did:workload:proxy-A#key-6",
  "new_kid": "did:workload:proxy-A#key-7",
  "new_public_key_hash": "sha256:f14a...91c",

  "endorsement": {
    "signed_by": "did:workload:proxy-A#key-6",
    "signed_digest": "sha256:ab87...d11"
  },

  "registry_entry_hash": "sha256:0f98...c3e"
}

5.5 Degraded Mode Marker NEW v0.6

{
  "degraded_mode": true,
  "reason": "WITNESS_UNAVAILABLE",
  "started_at": "2026-04-20T10:14:00.000Z",
  "max_value_usd": 50,
  "max_duration_seconds": 300,
  "reconciliation_deadline": "2026-04-20T10:24:00.000Z",
  "requires_post_facto_witness": true
}
// 06

Validation Rules

Time and Replay

  • expires_at MUST be strictly greater than timestamp.
  • Verifier MUST reject if current_time > expires_at + skew_tolerance.
  • Recommended skew tolerance is 5 seconds.
  • Nonce uniqueness MUST be enforced per (initiator.did, nonce).

Witness Finality

  • High-value actions SHOULD require a valid WitnessReceipt before finality.
  • Witness signature MUST verify against the current key-transparency registry state at the time of the action.
  • Witness MUST bind intent, acceptance, execution, and hash-chain head into the signed observation.

Key Transparency

  • Key rotation MUST be endorsed by the prior valid key unless an explicit recovery process is invoked.
  • Revocation events MUST be append-only and MUST NOT silently overwrite prior key state.
  • Dispute verification MUST use key state as of the event timestamp, not current database state.
// 07

Independent Inline Witness NEW v0.6

The independent witness is an inline co-signing party for high-value transactions. It does not replace the initiator or executor. It creates an additional evidence surface outside the two primary parties.

The witness MAY see only cryptographic commitments and policy metadata, not raw transaction contents. The witness signs what it observed: the transaction hashes, timestamps, policy reference, chain head, and finality state.

Design goal

Convert “our logs say one thing, your logs say another” into “what did the independently witnessed receipt say at the time of finality?”

// 08

Append-Only Hash-Chain NEW v0.6

v0.6.0 adds hash-chain continuity on top of the DAG ledger. Each local evidence entry references the previous chain head. Editing or deleting prior entries breaks continuity or creates a provable gap.

{
  "entry_id": 104594,
  "trace_id": "urn:uuid:550e...",
  "event_type": "WITNESS_RECORD",
  "prev_entry_hashes": [
    "sha256:f8a...1b9",
    "sha256:2c4...e81"
  ],
  "prev_chain_head": "sha256:3a91...c0f",
  "artifact": { /* WitnessReceipt */ },
  "entry_hash": "sha256:7a2...8c4",
  "new_chain_head": "sha256:5bc...9aa"
}
// 09

Checkpoint Anchoring + Heartbeat

Public checkpoint anchoring commits compact cryptographic state to an external timeline. Raw transaction data, PII, secrets, prompts, arguments, and outputs MUST NOT be written on-chain.

The heartbeat mechanism makes downtime or anchoring failure visible. Missing checkpoints become part of the evidence record rather than silent gaps.

Field Purpose
chain_head Commits to append-only local evidence continuity.
merkle_root Commits to a batch of entries without exposing payloads.
anchor_ref External transaction or transparency-log reference.
heartbeat_status Indicates whether checkpoint cadence was normal, delayed, or missed.
// 10

Encrypted WORM Content Store NEW v0.6

Hashes prove integrity, but disputes often require recoverable evidence. v0.6.0 introduces encrypted WORM storage for full transaction records while keeping sensitive content confidential.

The store is write-once-read-many. Records may be cross-held across parties or custodians. TrustAgentAI itself SHOULD NOT have unilateral access to plaintext records. Access can be governed through customer-controlled keys, regulator escrow, or multi-party release rules.

Privacy-preserving recovery

The ledger stores hashes and encrypted references. Raw records remain off-chain and encrypted, but can be recovered under agreed governance for audits, investigations, or disputes.

// 11

Key-Transparency Registry NEW v0.6

Key state must be auditable as of the event time. A party must not be able to silently rewrite whether a key existed, was valid, had been rotated, or had been revoked.

The key-transparency registry is append-only. Rotations require prior-key endorsement. Revocations are recorded as new events. Dispute verification uses registry state at the historical timestamp, not current database state.

KEY_CREATE
  → KEY_ROTATION endorsed by previous key
  → KEY_REVOCATION append-only event
  → HISTORICAL_KEY_STATE used during dispute verification
// 12

Degraded-Mode Discipline NEW v0.6

Distributed systems fail. A witness can be unavailable, a network can partition, or anchoring can be delayed. A secure protocol should not choose only between “block everything” and “trust everything.”

v0.6.0 defines degraded mode as a constrained and auditable state. Degraded actions are capped, labeled, time-bounded, and reconciled when the missing dependency returns.

  • Degraded receipts MUST be explicitly marked.
  • High-value thresholds MUST be lowered during degraded mode.
  • Each degraded action MUST include a reconciliation deadline.
  • Post-facto witness reconciliation MUST be attempted before normal finality is restored.
// 13

Dispute Packs

A v0.6.0 Dispute Pack combines signed receipts, ledger continuity proofs, witness evidence, key-history evidence, WORM references, and checkpoint anchors.

Intent Envelope
Acceptance Receipt
Execution Envelope
Optional Ack Receipt
Witness Receipt
Hash-chain proof
Merkle inclusion proof
Checkpoint anchor reference
Key transparency state
Encrypted WORM object reference
Degraded-mode metadata
Policy / authority snapshot

The pack does not eliminate all trust. It makes trust assumptions explicit, bounded, and independently verifiable.

// 14

Privacy Guidance

v0.6.0 preserves the hash-only principle for public evidence surfaces.

  • Raw arguments MUST NOT be written to public ledgers or anchors.
  • Raw outputs MUST NOT be written to public ledgers or anchors.
  • PII, secrets, API keys, prompts, and bank account details MUST NOT be stored on-chain.
  • Encrypted WORM records SHOULD be recoverable only under customer, regulator, or multi-party governance.
Public record

Public anchoring proves existence, ordering, and continuity. It does not reveal the transaction payload.

// 15

Open Threat Models

v0.6.0 is explicit about what it does not fully solve yet.

Witness + party collusion

If an independent witness colludes with one of the primary parties, v0.6.0 may not provide sufficient independent evidence. Future versions may require multi-witness quorum, threshold signatures, regulator-operated witnesses, transparency networks, or economic staking.

Compromised key custody

The protocol can record which key signed an event and what the registry stated at that time. It cannot, by itself, prove human intent if the legitimate key was compromised outside the system.

// 16

Changelog

v0.6
→ Added formal threat model for AI-driven payments and bilateral disputes
→ Added Durable, Custodied Keys
→ Added Append-Only Hash-Chain continuity
→ Added Independent Inline Witness and WitnessReceipt
→ Added Checkpoint Anchoring + Heartbeat
→ Added Encrypted WORM Content Store
→ Added Key-Transparency Registry and rotation endorsement
→ Added Degraded-Mode Discipline
→ Hardened Dispute Packs with witness, WORM, key-state, and checkpoint evidence
→ Updated spec_version to "0.6"
v0.5
Added Content Provenance Layer, ContentProvenanceReceipt, PROVENANCE_RECORD, C2PA interoperability, and privacy-preserving artifact chain of custody.
v0.4
Initial public draft. Defined A2A handshake, Intent → Acceptance → Execution, DAG ledger, Merkle batching, Dispute Pack, Risk Budgeting, and Non-repudiation.