Intramedial is in restricted beta. At sign up or sign in, you have to provide the beta tester password you received or request one at preview@intramedial.com. Thank you.
Loading…
ledger.blameModule 10
Plane module
Ledger, replay and blame
Trace every touch to one resource in order, and replay any event to rebuild the receipt that shows it actually happened.
ledger.blame walks this workspace's ledger for one resource and returns its touches most-recent-first, matched by exact resource or subject, never a loose text search. ledger.replay rebuilds an event's receipt and grades it honestly if the recomputed root disagrees with what was stored.
Agents act when the plane says yes, and the record says why.
Put admission in front of your MCP servers, repositories, SaaS tools and cloud accounts. Every agent gets a lease or a reason – and you keep the lever to stop any of them.
From replay: the rebuilt ReceiptV0, with rootHex, the Merkle proof and any witnesses.
standing
The receipt's grade: witnessed, issuer-signed, self-attested, unchecked or forged.
rootHex
The sealed batch's Merkle root an event's leaf is proven against.
Mechanism
Step by step
How it works
Events are sealed in Merkle batches
Thirty-two leaves fill a sealed batch, written to object storage with its own root; up to 256 leaves stay unsealed in the live store if object storage is not bound.
blame matches structurally
An event counts as touching a resource only if its own resource or subject field equals the one given, not because the resource's name appears anywhere in the payload text.
Touches come back most-recent-first
The returned events are in reverse time order for that one resource, with lastTouch naming the latest and any fields it never recorded listed in unknown.
replay rebuilds, and checks itself
Replaying an event re-derives its Merkle proof. If the rebuilt root does not match the stored one, the receipt's witness claims are stripped rather than shipped as if verified.
Try it
Live demo
Run it from this page
POST/api/v1/acp/ledger/blame
{
"resource": "repo:payments/main"
}
Runs in a shared demo workspace with a demo key: anyone can see what it holds, so send nothing private. ledger.blame docs
Responses
Press Run to send the request on the left to the shared demo workspace.
Runs in a shared demo workspace with a demo key: anyone can see what it holds, so send nothing private.
Code
Live example
A real request
A request in the shape the API accepts, and an example response in the shape the module returns.
Before taking an action on a contested resource, an operator blames it to see every agent that changed it, in order, and who touched it last.
Rebuilding proof an action happened
replay reconstructs the receipt for one event, so a dispute about whether something actually occurred can be settled from the ledger itself.
Checking a receipt's own honesty
A rebuilt receipt whose root does not match the stored one comes back with its witness claims stripped, so a mismatch cannot be mistaken for a verified proof.
Grading how strongly a receipt stands
standing tells an auditor whether a receipt is independently witnessed or only self-attested by the plane, without them having to verify it by hand.
When to use something else
A text search across event payloads. Matching is structural, on resource or subject fields only.
Reaching across workspaces. blame and replay only ever read this workspace's own ledger.
Minting a witnessed receipt. The kernel never claims witnessed on its own; that grade needs an outside witness to actually confirm it.
Evidence
Guarantees
What it does, and what it does not
A module is a strong claim about a narrow thing. Rely on it for exactly what it is.
It does
A batch's Merkle root is computed over the leaves it actually sealed; thirty-two leaves fill a batch before it is sealed to object storage.
blame's matches are structural equality on resource or subject, not a substring search that could false-match an unrelated event.
A replayed receipt whose rebuilt root disagrees with the stored one never ships its witness claims as if they were verified.
It does not
That every field of an event is present. lastTouch can legitimately report missing actor, lease or ruling fields in unknown.
That a receipt graded issuer-signed has been independently witnessed. The plane does not mint witnessed receipts on its own say-so.
That replay checks anything beyond the one event it was given; it does not scan the resource's whole history.
Details
Build notes
Before you build
Two Merkle systems, not one
This ledger's batching and ledger-bundles.snapshot's audit-chain sealing use separate Merkle implementations over different data; do not describe them as the same mechanism.
Unsealed events still answer
If object storage is not bound, leaves simply stay unsealed in the Durable Object rather than blocking reads or writes.
Witnessing is opaque unless configured
Witness ids such as an OTS digest are recorded as strings the kernel does not itself verify over the network; without a production fetch configured, witnessing is a no-op.
Limits and metering
blame and replay are both read actions and change nothing.
Object-storage batch size is 32 leaves per sealed batch, with up to 256 unsealed leaves held if storage is unavailable.
standing grades only the receipt it is handed; it does not look the event up itself.
Access
API & MCP
REST and MCP
Authenticate with a workspace API key as a Bearer token. The base URL is https://api.intramedial.com.
REST endpoints
POST/api/v1/acp/ledger/blameList one resource's touches, most recent first.
POST/api/v1/acp/ledger/replayRebuild an event's receipt and grade its standing.
MCP actions
MCPcoordination.ledger.blameBlame a resource as an MCP action.
MCPcoordination.ledger.replayReplay an event as an MCP action.