intramedial-verifyJavaScriptとTypeScript依存関係はゼロで、WebCryptoのみを使います。渡された鍵セットに対してネットワーク通信なしでレシートを検証するか、先に公開鍵を取得してから検証します。Ed25519のない実行環境では、レシートを判定する代わりにunsupported_runtimeを返します。
- ライセンス
検証は1つの操作だけで完結します。レシートの正規形に対するEd25519署名を、公開鍵に照らして確認するのです。同じレシートと同じ鍵を与えられれば、2つの独立した実装は必ず同じ答えに至ります。この操作に必要となるものは、すべて公開しています。
ledger-bundles-keys.jsonRFC 8785 · RFC 8032オープンな検証は、すべてのレシートを真実にするものではありません。有効な署名が証明するのは、誰がどのバイト列に署名し、その後何も変わっていないことです。申告された事実については、それが起きたことは証明しません。 レシートが証明しないことは →
各行は現時点で存在するものを示します。公開されていないものはその旨を明記し、現在使える方法を案内します。未公開の項目について、日付は約束しません。
| 項目 | ライセンス | 所在 | 状況 |
|---|---|---|---|
JavaScriptとTypeScriptの検証ツール@intramedial/verifier | MIT | npm | まだ未公開です |
どちらのライブラリも同じ2つを検証します。あらゆるツールのレシートと、Merkle包含証明付きの署名済みアーティファクトバンドルです。どちらも同じ失敗理由を返し、同じ署名済みテストベクターを固定しているため、正規化やエンコードにずれが生じればどちらのテストスイートも失敗します。
intramedial-verifyJavaScriptとTypeScript依存関係はゼロで、WebCryptoのみを使います。渡された鍵セットに対してネットワーク通信なしでレシートを検証するか、先に公開鍵を取得してから検証します。Ed25519のない実行環境では、レシートを判定する代わりにunsupported_runtimeを返します。
両方の検証ツールが実装しているワイヤー形式は、MITライセンスのもとで規範的な仕様書v1として文書化されています。当社の検証ツールを信頼しなくても検証が可能になるように、公開しているものです。現在その内容は資料の中で公開しており、仕様書そのものは今後、専用の公開リポジトリへ移す予定です。
ledger-bundlesmodule docsno licence stated公開している文書署名される7つのメンバーと、本文のtypeがエンベロープのtypeと等しいという規則。
レシートに署名するEd25519公開鍵は、認証なしで提供され、クロスオリジンのリクエストに開放され、1時間キャッシュできます。古い鍵も公開され続けるため、古いレシートも検証でき続けます。秘密鍵はAWS KMSに保管され、決してエクスポートされません。
https://intramedial.com/.well-known/ledger-bundles-keys.jsonサイト上のJWKセット。APIのルートへリダイレクトされます。それに従ってください。https://ledger-bundles.api.intramedial.com/.well-known/ledger-bundles-keys.json同じセットを、APIホスト上で提供。/api/v1/ledger-bundles/anchors固定の使い捨て鍵で署名された既知解のレシートを、資料に掲載し、両方の検証ツールのテストスイートに固定しています。実際のレシートで信頼する前に、お客様の実装をこれで実行してください。
{
"ok": true,
"kind": "notarian-bundle"
}チェックアウトされたコミットをgitで読み取り、コミットメッセージをランナー上でハッシュ化して、署名付きのcommit.attestレシートを要求する小さな複合Actionです。メッセージの本文がランナーの外に出ることはありません。
github.enforcehosted module公開している文書ソースはMITライセンスのもとで完成していますが、まだ公開していません。公開されるまでは、これを参照するワークフローはセットアップの段階で失敗します。現時点では資料にあるcurlのステップをお使いください。同じことを行います。
エージェントやコーディングアシスタントは、予測可能なアドレスで説明ファイルを探します。これらは公開されており、MCPサーバーと同じアクション定義から生成され、アカウントは不要です。稼働中のサーバーの応答が正であり、ファイルと資料が異なる場合は資料が優先されます。
/.well-known/mcp/server.jsonMCPサーバーの名前、ストリーミング可能なHTTPのエンドポイント、受け付けるサインイン方式。
/.well-known/mcp/tools.jsonツールと、その入力・出力スキーマを、tools/listが返すとおりに記載します。
/.well-known/agent-card.jsonA2Aクライアント向けの、ゲートウェイエージェントの識別情報、トランスポート、アクションごとの機能。
リポジトリには、このページに上記で一覧したものより多くのソースがあります。そのいずれも、まだパッケージとして公開もドキュメント化もされていないため、インストール手順はありません。後で驚かれることのないよう、一覧にしています。
mcp-server stdioまだ未公開ですレシート形式の、2つ目となる独立したPython実装です。発行側の実装とはコードを一切共有していません。
adapters/packages/mcp-server/issueやプルリクエストを送れる公開リポジトリは、まだありません。各パッケージは、それぞれ専用の公開リポジトリへ移す予定です。それまでの間は、以下が現在利用できる窓口です。
検証ツール、鍵セット、形式に関するもの。非公開でメールし、当社が修正する時間を取れるまで詳細を投稿しないでください。
検証ツールにレシートを貼り付けてください。確認はブラウザー内で行われ、唯一のネットワーク通信は鍵のダウンロードです。
Pythonの検証ツール@intramedial/adapter-framework | MIT | PyPI | まだ未公開です |
レシートとアーティファクト形式 v1ledger-bundles | 記載なし | 現在は資料内、専用リポジトリを予定 | 公開している文書 |
公開している署名鍵ledger-bundles-keys.json | 公開データ | intramedial.comとapi.intramedial.com | まだ未公開です |
既知解のテストベクターno public vector | 記載なし | 資料と、両検証ツールのテストスイート | まだ未公開です |
commit.attestのGitHub Actiongithub.enforce | 記載なし | GitHubで公開予定 | 公開している文書 |
MCPと探索用のマニフェストserver.json · tools.json | 記載なし | intramedial.com/.well-known | 公開している文書 |
これらの名前のものをインストールしても、それが信頼できる発行元から提供されたものでない場合は使用しないでください。
cd verifier npm install && npm run build npx intramedial-verify bundle.json --keys keys.json
verifyNotarianBundleWithKeys()verifyTopsSealWithKeys()verifyAuditChainExport()verifyArtifactWithKeys()鍵の取得はネットワーク障害時に例外を投げるため、ネットワークのエラーがレシートの判定として報告されることはありません。
adapter-frameworkPython同じ関数をスネークケースで提供し、小さな自己完結型のEd25519検証器も含めて標準ライブラリのみで書かれています。そのため、信頼の対象となる範囲全体が、読み通せる数個のファイルに収まります。
adapters/packages/adapter-frameworknpm run buildでビルドします
cd adapters npm install npm run build
okkindreasondetailsRFC 8785に厳密に準拠:キーの順序、数値の形式、エスケープ、そして拒否すべきもの。
正規化バイト列に対するEd25519署名、パディングなしのbase64url、そして鍵IDの導出方法。
各ツールの本文が持つメンバー(監視のダイジェストを含む)。
コンプライアンス用の、種類を限定しないレシートの兄弟形式。
ドメイン接頭辞付きのリーフとノードのハッシュ、そして包含証明の畳み込み方。
鍵セットの提供場所、そのヘッダー、そしてローテーションが追加的である理由。
4つの手順と、機械で読み取れる形式の失敗理由の一覧。
追加的な変更ならv1の検証ツールは動き続け、v1の文書は永続的にv1の規則で検証されます。
signatureを取り除き、残りを正規形でシリアライズして、そのUTF-8バイト列に対するEd25519署名を検証します。これが、下記のテストベクターの正規化文字列です。
{
"bundleId": "lb_20261101_wnam_01",
"workspaceId": "ws_acme",
"jurisdiction": "wnam",
"scope": "default",
"recordCount": 4820,
"merkleRoot": "8f1c2a9e...",
"signingKeyId": "lb-wnam-2026-10",
"ed25519Signature": "base64-signature",
"otsProof": null
}/api/v1/ledger-bundles/snapshot現在有効な署名鍵のメタデータです。{
"kty": "OKP",
"crv": "Ed25519",
"x": "…",
"kid": "…",
"alg": "EdDSA",
"use": "sig",
"jurisdiction": "wnam"
}curl -sSL https://ledger-bundles.api.intramedial.com/.well-known/ledger-bundles-keys.json -o keys.json jq -r '.keys[].kid' keys.json
最も強力な確認のために、鍵を一度取得し、そのkidとxを自身の記録に保存し、そのコピーに対して検証してください。上記のすべての場所は当社が提供しているため、それらを比較することで防げるのは1つの不正なルートであり、Intramedial自体が侵害された場合ではありません。 署名鍵とローテーション →
| 入力 | 判定 |
|---|---|
| 公開されたとおりのレシートと鍵セット | ok: true |
| byteLengthの値を5に書き換えた、同じレシート | ok: false |
| 鍵IDだけが異なっている、同じレシート | ok: false |
| versionのみを持つオブジェクト | ok: false |
ベクターの本文は説明用のテスト資料です。その鍵はテスト用の鍵で、実際のものには何も署名しません。
verifier/test · runtime/ledger-bundles/test{
"repo": "acme/payments",
"actorDid": "did:web:acme.example:agent:billing",
"sha": "9fceb02d0ae598e95dc970b74767f19372d61af8",
"action": "write"
}reposhaactionActionはAuthorizationヘッダーのみを送信するため、ワークスペースのキーでは動作しますが、個人用アクセストークンでは動作しません。
/openapi.json型付きクライアントを生成するための、OpenAPI文書としてのRESTの全体像。
/llms.txt言語モデル向けに書かれた、サイトとすべての資料ページのプレーンテキストの地図。
/AGENTS.mdすべてのアクションを例とともに説明する、1つのMarkdown文書。
curl -s https://intramedial.com/.well-known/mcp/server.json | jq .endpoints curl -s https://intramedial.com/.well-known/mcp/tools.json | jq '.tools[].name'
これらのファイルにはライセンスを記載していません。対象はホスト型サービスであるmcp.intramedial.comのMCPサーバーで、インストールするパッケージではありません。
contractsパッケージまだ未公開ですアーティファクトバンドルやハッシュ連鎖のエクスポートなど、他の種類の署名済み証拠に対応した、より広範なオフライン検証ツール。
contracts/フレームワーク用アダプターまだ未公開です基本パッケージと、フレームワークごとに1つのパッケージで、フレームワークの実行を証明リクエストに変換します。各フレームワークはその作者のものであり、当社のものはアダプターだけです。
adapters/packages/形式の仕様とベクターがあれば作成できます。ぜひお知らせください。ベクターと照合して、一緒に確認することができます。
標準のセキュリティ連絡先ファイルを/.well-known/security.txtで公開しています。
まだ未公開ですプルリクエスト:予定しています。公開リポジトリができた時点で、このページからリンクし、貢献のライセンスについて説明します。