Intramedial est en bêta restreinte. À l’inscription ou à la connexion, vous devez fournir le mot de passe de bêta-testeur que vous avez reçu ou en demander un à preview@intramedial.com. Merci.
Chargement…
Open source
Contrôle autonome
Tout ce qu’il faut pour vérifier un reçu sans nous.
Un reçu ne vaut que si son émetteur n’est pas le seul à pouvoir le vérifier. Vérificateurs, format, clés et matériel de test sont donc publics. Cette page liste chaque élément, sa licence, où il se trouve aujourd’hui et comment l’utiliser.
Les agents agissent quand le plan dit oui, et le registre dit pourquoi.
Faites passer actions d’agents, hash de contenu, contrôles d’API, requêtes DNS, webhooks, appels LLM et commits git par Intramedial. Obtenez un reçu signé vérifiable par tous – sans nous croire.
La vérification doit être possible sans Intramedial.
Vérifier tient en une opération : une signature Ed25519 sur une forme canonique du reçu, contrôlée avec une clé publique. Deux implémentations indépendantes, même reçu et même clé, donnent la même réponse. Tout ce qu’il faut est publié.
Le reçu signéLe JSON qu’on vous a remis
Clé publiqueDu jeu de clés publié, ou une copie épingléeledger-bundles-keys.json
Le formatJSON canonique RFC 8785 et Ed25519RFC 8785 · RFC 8032
La partie qui pourrait contester un enregistrement, Intramedial ou vous, ne peut pas être la seule capable de le vérifier.
Le contrôle est déterministe : un vérificateur écrit par quiconque d’après le format rend notre verdict.
Un reçu valide à l’émission le reste tant que sa clé est publiée, et les anciennes clés restent publiées.
Une vérification ouverte ne rend pas chaque reçu vrai. Une signature valide prouve qui a signé quels octets et que rien n’a changé depuis ; pour un fait déclaré, elle ne prouve pas qu’il a eu lieu. Ce qu’un reçu ne prouve pas →
02
Aperçu
Le statut en bref
Chaque ligne dit ce qui existe aujourd’hui. Ce qui n’est pas publié est signalé, avec la voie qui marche déjà. Aucune date n’est promise pour les éléments non publiés.
Les deux bibliothèques vérifient les mêmes choses : les reçus de tout outil, et les bundles d’artefacts signés avec preuve d’inclusion Merkle. Mêmes raisons d’échec, même vecteur de test signé épinglé : un écart de canonisation ou d’encodage fait échouer l’une ou l’autre suite.
intramedial-verifyJavaScript et TypeScript
Pas encore publié
Zéro dépendance, rien que WebCrypto. Vérifie un reçu contre un jeu de clés fourni, sans appel réseau, ou charge d’abord les clés publiées. Si le runtime n’a pas d’Ed25519, renvoie unsupported_runtime au lieu de juger le reçu.
04
Spécification
La spécification du format
Le format de transport des deux vérificateurs est écrit en spécification normative, v1, sous licence MIT. Elle est publique pour qu’on puisse vérifier sans croire notre vérificateur. Son contenu est publié dans les docs ; la spécification doit rejoindre son propre dépôt public.
Les sept membres signés et la règle : le type du corps égale celui de l’enveloppe.
05
Clés publiques
Clés publiées
Les clés publiques Ed25519 qui signent les reçus sont servies sans authentification, ouvertes au cross-origin et en cache une heure. Les anciennes clés restent publiées : les anciens reçus restent vérifiables. Les clés privées sont dans AWS KMS et jamais exportées.
Où le jeu de clés est servi
https://intramedial.com/.well-known/ledger-bundles-keys.jsonLe jeu JWK, sur le site. Redirige vers la route API ; suivez les redirections.
https://ledger-bundles.api.intramedial.com/.well-known/ledger-bundles-keys.jsonLe même jeu, sur l’hôte API.
06
Cas de test
Vecteurs test
Un reçu à réponse connue, signé par une clé jetable fixe, figure dans les docs et est épinglé dans les tests des deux vérificateurs. Passez-y votre implémentation avant de lui confier de vrais reçus.
verdict.jsonshape only, not a vector
{
"ok": true,
:
}
07
Action CI
La GitHub Action commit-attest
Une petite Action composite qui lit le commit extrait avec git, hache son message sur le runner et demande un reçu commit.attest signé. Le texte du message ne quitte jamais le runner.
github.enforcehosted moduleDoc publique
La source est complète, sous licence MIT, mais pas encore publiée. D’ici là, un workflow qui la référence échoue à l’étape de set-up : utilisez l’étape curl des docs. Elle fait la même chose.
Après publication
08
Découverte
MCP, fichiers découverte
Agents et assistants de code cherchent des fichiers de description à des adresses prévisibles. Ceux-ci sont publics, générés des mêmes définitions d’actions que le serveur MCP, sans compte. La réponse du serveur fait foi ; si un fichier et les docs diffèrent, les docs priment.
/.well-known/mcp/server.json
Le nom du serveur MCP, l’endpoint HTTP streamable et les modes de connexion acceptés.
/.well-known/mcp/tools.json
Les outils avec leurs schémas d’entrée et de sortie, tels que tools/list les rend.
/.well-known/agent-card.json
09
Non publié
Aussi dans le dépôt, pas encore publié
Le dépôt contient plus de sources que cette page n’en liste ci-dessus. Rien n’en est publié ni documenté comme paquet pour l’instant, donc aucune étape d’installation. Nous le listons pour que rien ici ne soit une surprise plus tard.
mcp-server stdioPas encore publié
Une seconde implémentation Python indépendante du format de reçu, sans code partagé avec l’émetteur.
Licence
MIT
Source
10
Communauté
Signaler un bug, contribuer.
Il n’y a pas encore de dépôt public pour ouvrir issues ou pull requests ; chaque paquet doit rejoindre son propre dépôt public. D’ici là, voici les canaux qui existent.
Problème de sécurité
Dans un vérificateur, le jeu de clés ou le format. Écrivez-nous en privé, sans publier de détails avant que nous ayons pu corriger.
Un vérificateur en désaccord avec le vecteur, un exemple de doc qui échoue, un manifeste qui ne colle pas au serveur. Envoyez l’entrée et le résultat attendu.
Vérifiez-en un.
Collez un reçu dans le vérificateur. Le contrôle tourne dans le navigateur ; seul le chargement de clé passe par le réseau.
Les mêmes fonctions en snake case, écrites avec la seule bibliothèque standard, dont un petit vérificateur Ed25519 autonome : toute la surface de confiance tient en quelques fichiers lisibles.
La signature ne correspond pas aux octets canoniques sous la clé nommée.
kind
Aucune clé publiée n’a l’ID de clé du reçu.
reason
L’entrée n’a pas la forme d’un reçu.
details
Pour un bundle : la preuve d’inclusion ne mène pas à la racine ancrée.
§2
Canonisation JSON
RFC 8785 à la lettre : ordre des clés, nombres, échappement et ce qu’il faut rejeter.
§3Signature et ID de clé
Ed25519 sur les octets canoniques, base64url sans remplissage, et dérivation de l’ID de clé.
§4Corps d’outil
Les membres du corps de chaque outil, digests de veille compris.
§5Enveloppe d’artefact
La variante ouverte du reçu pour les artefacts de conformité.
§6Bundles et ancrage
Hachage de feuilles et nœuds à préfixes de domaine, repli d’une preuve d’inclusion.
§7Découverte clés
Où est servi le jeu de clés, ses en-têtes, pourquoi la rotation est additive.
§8Procédure de vérification
Les quatre étapes et les raisons d’échec lisibles par machine.
§9Versionnage
Les ajouts gardent les vérificateurs v1 valables ; un document v1 se vérifie en v1 à jamais.
Les octets qui sont signés
Retirez signature, sérialisez le reste en forme canonique et vérifiez la signature Ed25519 sur ces octets UTF-8. C’est la chaîne canonique du vecteur de test ci-dessous.
Pour la vérification la plus solide, récupérez une clé une fois, conservez son kid et son x dans vos propres enregistrements, et vérifiez par rapport à cette copie. Tous les emplacements ci-dessus sont servis par nous : les comparer protège contre une seule mauvaise route, pas contre un Intramedial compromis. Clés de signature, rotation →
"kind"
"notarian-bundle"
Résultats attendus
Entrée
Verdict
Le reçu et le jeu de clés publiés
ok: true
Le même reçu, avec byteLength changé en 5
ok: false
Le même reçu avec un autre ID de clé
ok: false
Un objet avec une version seule
ok: false
Le corps du vecteur est du matériel de test illustratif. Sa clé est de test et ne signe rien de réel.
Un vérificateur hors ligne plus large pour les autres preuves signées de la plateforme, tels bundles d’artefacts et exports chaînés par hash.
Licence
Pas encore de licence open source
Source
contracts/
Adaptateurs de frameworksPas encore publié
Un paquet de base et un paquet par framework d’agents, qui changent une exécution en demandes d’attestation. Les frameworks sont à leurs auteurs ; seuls les adaptateurs sont à nous.
Le fichier standard de contact sécurité est publié sur /.well-known/security.txt.
Pas encore publiéPull requests : prévues. Quand les dépôts publics existeront, cette page y renverra et dira sous quelle licence vont les contributions.