Skip to content

Layer 4 — Post-execution receipt as complement to the Execution Guard #6

@giskard09

Description

@giskard09

RFC_EXECUTION_GUARD.md has a clean three-layer model (intent nonce → execution guard → correlation ID). One layer that would complete it for regulated and financial workflows: a post-execution receipt — proof of what ran, verifiable by a party that doesn't trust the runtime.

The gap the current model leaves open

The guard proves "this ran exactly once." That's sufficient for the agent loop.

For external auditors, regulators, and counterparties, the question is different: "can you prove what ran, independently of the system that ran it?" An idempotency record in durable storage answers to the same runtime that wrote it. A receipt anchored externally answers to anyone.

The interface

execution_id / request_id (Layer 1) → action_ref (linking key in the receipt). Same ID derived from tool arguments before execution, two surfaces:

  • Layer 2 uses it to gate re-execution
  • Layer 4 uses it as the content-addressed key for the post-execution trail

payment_hash is the natural cross-rail key for the settlement layer — links the payment primitive to the execution receipt without coupling the two systems.

Layer 4 proposed

Layer 1: Intent nonce       — caller-derived stable ID
Layer 2: Execution guard    — insert-if-not-exists at side-effect boundary
Layer 3: Correlation ID     — shared ID across composed tool boundaries
Layer 4: Execution receipt  — post-execution proof, anchored externally,
                               independently verifiable

We've been building this layer: Mycelium Trails. On-chain execution receipts anchored on Base mainnet, keyed by action_ref = SHA-256 of agent_id + action_type + scope + timestamp.

If you're extending the RFC, happy to propose a formal Layer 4 interface spec here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions