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…
Open source
Independent check
What is open today, and what is still source only.
A signed ledger bundle is worth more if the party that wrote it is not the only one able to check it. The verifier source is MIT and runs offline. None of it is on a registry yet. This page lists each piece, its licence and where it lives.
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.
Checking a bundle is one operation: an Ed25519 signature over a Merkle-rooted set of records, checked against a public key. The verifier source has no dependency on our services. The bundle format is described in the module docs.
The bundleThe JSON you were given
A public keyFrom the bundle's key set, or a copy you pinnedledger-bundles-keys.json
The formatRFC 8785 canonical JSON and Ed25519RFC 8785 · RFC 8032
The party that might dispute a record, Intramedial or you, cannot be the only one able to check it.
The check is deterministic, so a verifier anyone builds from the format gives the same verdict as ours.
A bundle checked offline against a key you stored keeps verifying, even if our services are gone for good.
Open verification does not make every record true. A valid signature shows who signed which bytes and that nothing changed afterwards; it does not show that the events were correct. What a bundle does not prove →
02
Overview
Status at a glance
Each row says what exists today. Where something is not published, we say so and point to what works now. No date is promised for the unpublished items.
Two libraries have complete source: an offline verifier for signed evidence, and a base package with a typed client for agent frameworks. Both are MIT and neither is on npm yet, so build them from a checkout of the repository today. Each has a readme.
intramedial-verifyJavaScript and TypeScript
Not published yet
Checks signed evidence with the same WebCrypto code the runtime uses. It has no dependency on Intramedial and makes no network call: you give it the document and a key set you fetched yourself. The package is @intramedial/verifier.
04
Specification
The ledger bundle format
The bundle a snapshot returns is described in the ledger-bundles module docs: its fields, how it is signed and how the key is found. There is no standalone specification yet, and no date is promised for one. The module docs remain the reference for now, and the verifier source shows the rest.
Bundle id, workspace, jurisdiction, scope, range, record count and Merkle root.
05
Public keys
Published keys
The public Ed25519 key of each jurisdiction is meant to be served without a login. We have not confirmed that from this site, so read the paths as documented, not guaranteed. The private keys are held as Worker secrets in each region.
Where the key set is served
https://intramedial.com/.well-known/ledger-bundles-keys.jsonThe key set at the path the module docs name, on the site host itself.
https://ledger-bundles.api.intramedial.com/.well-known/ledger-bundles-keys.jsonThe set on the worker's own host.
06
Known answers
Test vectors
No known-answer vector is published yet. The verifier's own tests carry fixtures in the repository. A public vector with a throwaway key is planned, and no date is promised for it.
verdict.jsonshape only, not a vector
{
"ok": true,
"kind":
}
07
CI action
The GitHub write gate module
github.enforce asks Intralock whether an agent may act on a repository and posts the verdict to GitHub as a check run or a commit status. It is a hosted module, not a package you install.
github.enforcehosted modulePublic document
No GitHub Action is published for Intramedial. A repository calls the module's API instead, with the request shown below. A workflow that references an Action name would fail until one exists.
The request body.
08
Discovery
MCP and discovery files
Agents and coding assistants look for description files at predictable addresses. These are public, generated from the same action definitions as the MCP server, and need no account. The live server's answer is authoritative; where a file and the docs differ, the docs win.
/.well-known/mcp/server.json
The MCP server's name, the streamable HTTP endpoint and the sign-in modes it accepts.
/.well-known/mcp/tools.json
The tools with their input and output schemas, as tools/list returns them.
/.well-known/agent-card.json
The gateway agent's identity, transports and one capability per action, for A2A clients.
09
Unpublished
Also in the repository, not published
The repository holds more source than this page lists above. None of it is published or documented as a package yet, so there are no install steps. We list it so that nothing here is a surprise later.
mcp-server stdioNot published yet
A stdio MCP server that forwards to the platform's HTTP MCP endpoint, so the tool logic stays in one place.
Licence
MIT
Source
10
Community
Report issues and contribute.
There is no public repository to open issues or pull requests against yet. Until one exists, these are the channels that exist today, and none of them is a ticket queue.
A security problem
In the verifier, the key set or the bundle format. Email us privately and do not post details before we have had time to fix it.
A verifier that disagrees with its own tests, a doc example that fails, or a manifest that does not match the live server. Send the input and what you expected.
See it running.
Open the Fleet Map to see agents, leases and approvals as they happen. The verifier runs from a checkout, offline.
A base class and run protocol for agent adapters, with a typed client over the agentic action API. Each framework gets its own small package on top. All are MIT and kept in one workspace.
True when the evidence verified, false when it did not pass the check.
kind
The kind of evidence that was checked.
reason
Why a check failed, in plain words.
details
Extra facts about the check, such as the result of an anchor check.
§2
Canonical form
The verifier canonicalises JSON as RFC 8785 describes before it hashes.
§3Signature and key ID
Ed25519 with the key named in signingKeyId, chosen for the request's jurisdiction.
§4Sealed records
The audit-log records sealed in the range, committed by the root.
§5Scope and range
An optional scope and range; with none, the whole history to date.
§6Anchoring in Bitcoin
otsProof stays null until the daily anchor confirms a block in Bitcoin.
§7Key discovery
One public key per jurisdiction, served as a JWK set at a well-known path.
§8Verification procedure
Pick the key by ID, check the root, then check the signature.
§9Versioning
No versioning policy is published yet, so none is promised here until one exists.
What the signature covers
The bundle carries a Merkle root over its records and an Ed25519 signature. The verifier recomputes the root from the records, then checks the signature. The example is from the docs.
For the strongest check, fetch a key once, store its kid and x in your own records, and verify against that copy. Every location above is served by us, so comparing them protects against one bad route, not a compromised Intramedial. Bundle keys in the docs →
"notarian-bundle"
Expected results
Input
Verdict
A bundle and its key set as sealed
ok: true
The same bundle with one record altered, say
ok: false
The same bundle with a different key ID
ok: false
Any JSON that is not a bundle
ok: false
The verdicts show the shape only. They come from no signed vector, and no test key is published.
The shared contracts package: action and schema definitions the platform and its clients use. It is private, with no licence.
Licence
No open-source licence granted yet
Source
contracts/
Per-framework adaptersNot published yet
One small package per agent framework, built on the adapter framework above. The frameworks belong to their own authors; only the adapters are ours, as MIT code.