Seal a signed evidence bundle
Seal the audit log into a Merkle-rooted, signed bundle and check it offline with the published key.
ledger.bundles-snapshot
Seal the audit log into a Merkle-rooted, signed bundle and check it offline with the published key.
ledger.bundles-snapshotPut 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.
An auditor or a customer asks for the record, and you want to hand over something they can check without asking Intramedial. A bundle seals a range of the hash-chained audit log under a Merkle root and an Ed25519 signature.
The code reads the key from INTRAMEDIAL_KEY. Keep it in your shell or your secret store, never in a file you commit. Calls that need a signed-in person cannot use a key: the console makes them.
Post an empty body for the full history to date, or give scope, rangeStart and rangeEnd for a slice. With no signing key for your region the call answers 503.
The bundle holds the Merkle root, the record count and the signature. otsProof is null until the daily anchor confirms a Bitcoin block.
{
"bundle": {
"bundleId": "lb_20261101_wnam_01",
"workspaceId": "ws_acme",
"jurisdiction": "wnam",
: ,
: ,
: ,
: ,
: ,
: ,
:
}
}ledger.bundles-snapshotledger-bundles-snapshot
curl -sS -X POST https://api.intramedial.com/api/v1/ledger-bundles/snapshot \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{}'const res = await fetch("https://api.intramedial.com/api/v1/ledger-bundles/snapshot", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/ledger-bundles/snapshot",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={},
timeout=30,
)
print(res.status_code, res.json())The matching public key is published without authentication at a well-known JWK address. Pick the entry named by signingKeyId; the public verify route and the offline verifier use the same key.
curl -sS https://api.intramedial.com/.well-known/ledger-bundles-keys.jsonconst keys = await (await fetch("https://api.intramedial.com/.well-known/ledger-bundles-keys.json")).json();
console.log(keys);import requests
print(requests.get("https://api.intramedial.com/.well-known/ledger-bundles-keys.json", timeout=30).json())Use the verify page, or @intramedial/verifier.
Copied from: /docs/ledger-bundles-snapshot
ledger.blame does not read.The ledger is append-only and sealed under Merkle roots. The time on an entry is Intramedial's own clock, and a signed bundle can be checked offline with the published key.
List who touched a resource, most recent first, then rebuild one event with its Merkle proof.
ledger.blameInvoke the EU AI Act Article 12 export, then read the coverage report that maps the evidence you hold to controls and names the gaps.
compliance.packRead the five exit objectives, record a real drill, export every covered class under a Merkle-rooted manifest and verify the export.
exit.objectivesOne short email when we add recipes to the cookbook. No other mail, and you can unsubscribe from any message.
No key or account: Try it on the coordination.admit module page runs the real kernel in your browser. Use a workspace key for your own workspace.