Intramedial está en beta restringida. Al registrarte o iniciar sesión, debes indicar la contraseña de beta tester que recibiste o solicitar una en preview@intramedial.com. Gracias.
Cargando…
Código abierto
Verificación libre
Lo necesario para comprobar un recibo sin nosotros.
Un recibo solo vale algo si quien lo emitió no es el único capaz de comprobarlo. Por eso los verificadores, el formato, las claves y el material de prueba son públicos. Esta página lista cada pieza, su licencia, dónde está hoy y cómo usarla.
Los agentes actúan cuando el plano dice sí, y el registro dice por qué.
Pasa por Intramedial acciones de agentes, hashes de contenido, pruebas de API, DNS, webhooks, llamadas LLM y commits. Obtén un recibo firmado que cualquiera verifica, sin fiarse de nadie.
La verificación tiene que ser posible sin Intramedial.
Verificar es una operación: una firma Ed25519 sobre una forma canónica del recibo, comprobada con una clave pública. Dos implementaciones independientes con el mismo recibo y clave llegan a la misma respuesta. Todo lo que esa operación necesita está publicado.
El reciboEl JSON que te dieron
Clave públicaDel conjunto publicado, o una copia que fijasteledger-bundles-keys.json
El formatoJSON canónico RFC 8785 y Ed25519RFC 8785 · RFC 8032
La parte que podría disputar un registro, Intramedial o tú, no puede ser la única capaz de verificarlo.
La comprobación es determinista: un verificador escrito desde el formato da el mismo veredicto que el nuestro.
Un recibo que verificó al emitirse sigue verificando mientras su clave siga publicada, y las claves viejas siguen publicadas.
La verificación abierta no hace cierto todo recibo. Una firma válida prueba quién firmó qué bytes y que nada cambió después; en hechos declarados no prueba que el hecho ocurriera. Lo que no prueba un recibo →
02
Resumen
Estado de un vistazo
Cada fila dice qué existe hoy. Si algo no está publicado, lo decimos y señalamos la vía que funciona ya. No prometemos fecha para lo no publicado.
Ambas librerías verifican lo mismo: recibos de cualquier tool y paquetes de artefactos firmados con prueba de inclusión Merkle. Ambas devuelven los mismos motivos de fallo y fijan el mismo vector firmado, así que una deriva en canonicalización o codificación hace fallar cualquiera de los tests.
intramedial-verifyJavaScript y TypeScript
Aún sin publicar
Sin dependencias, solo con WebCrypto. Verifica un recibo con un conjunto de claves que le pasas, sin red, u obtiene antes las claves publicadas. Si un runtime no tiene Ed25519, devuelve unsupported_runtime en vez de juzgar el recibo.
04
Especificación
Especificación del formato
El formato que implementan ambos verificadores está escrito como especificación normativa, v1, bajo licencia MIT. Es pública para que verificar sea posible sin fiarse de nuestro verificador. Su contenido está hoy en los docs; la especificación pasará a su propio repositorio público.
Los siete miembros firmados y la regla de que el type del cuerpo sea el del sobre.
05
Clave pública
Claves publicadas
Las claves públicas Ed25519 que firman recibos se sirven sin autenticación, abiertas a peticiones cross-origin y cacheables una hora. Las claves viejas siguen publicadas, así que los recibos viejos siguen verificando. Las privadas están en AWS KMS y nunca se exportan.
Dónde se sirve el conjunto
https://intramedial.com/.well-known/ledger-bundles-keys.jsonEl conjunto JWK, en el sitio. Redirige a la ruta API; sigue redirecciones.
https://ledger-bundles.api.intramedial.com/.well-known/ledger-bundles-keys.jsonEl mismo conjunto, en el host.
06
Casos de prueba
Vectores test
Un recibo de respuesta conocida, firmado con una clave fija desechable, está en los docs y fijado en los tests de ambos verificadores. Pasa tu implementación por él antes de confiarle recibos reales.
verdict.jsonshape only, not a vector
{
"ok": true,
:
}
07
Acción de CI
La GitHub Action commit-attest
Una pequeña Action compuesta que lee el commit con git, hace hash del mensaje de commit en el runner y pide un recibo commit.attest firmado. El texto del mensaje nunca sale del runner.
github.enforcehosted moduleDoc. público
El código está completo bajo licencia MIT y aún no se ha publicado. Un workflow que la use falla en el paso de preparación hasta entonces, así que hoy usa el paso curl de los docs. Hace lo mismo.
Cuando esté publicada
08
Detección
Archivos MCP y discovery
Los agentes y asistentes de código buscan archivos descriptivos en direcciones previsibles. Son públicos, se generan con las mismas definiciones que el servidor MCP y no piden cuenta. Manda la respuesta del servidor real; si un archivo y los docs difieren, ganan los docs.
/.well-known/mcp/server.json
El nombre del servidor MCP, el endpoint HTTP streamable y los modos de acceso que admite.
/.well-known/mcp/tools.json
Las tools con sus esquemas de entrada y salida, tal como las da tools/list.
/.well-known/agent-card.json
La identidad del agente gateway, sus transportes y una capacidad por acción, para clientes A2A.
09
Sin publicar
También en el repositorio, sin publicar
El repositorio contiene más código fuente del que esta página enumera arriba. Nada de eso está publicado ni documentado como paquete todavía, así que no hay pasos de instalación. Lo enumeramos para que nada de esto sea una sorpresa más adelante.
mcp-server stdioAún sin publicar
Una segunda implementación Python independiente del formato de recibo, sin código compartido con el emisor.
Licencia
MIT
Código
10
Comunidad
Avisar de fallos y contribuir.
Aún no hay repositorio público donde abrir issues o pull requests; cada paquete pasará a su propio repositorio público. Hasta entonces, estos son los canales que existen.
Un fallo de seguridad
En un verificador, las claves o el formato. Escríbenos en privado y no publiques detalles hasta que hayamos podido arreglarlo.
Un verificador que discrepa del vector, un ejemplo de los docs que falla o un manifiesto que no coincide con el servidor real. Envía la entrada y lo que esperabas.
Compruébalo ya.
Pega un recibo en el verificador. La comprobación corre en tu navegador; la única petición de red es la descarga de claves.
Las mismas funciones en snake case, escritas solo con la librería estándar, con un pequeño verificador Ed25519 propio, así que toda la superficie de confianza cabe en pocos archivos legibles.
La firma no coincide con los bytes canónicos bajo la clave indicada.
kind
Ninguna clave publicada tiene ese ID de clave.
reason
La entrada no tiene forma de recibo.
details
En un paquete: la prueba de inclusión no se pliega a la raíz anclada.
§2
Canonicalización
RFC 8785 exacto: orden de claves, forma numérica, escapes y qué debe rechazarse.
§3Firma e ID de clave
Ed25519 sobre los bytes canónicos, base64url sin relleno, y cómo se deriva el ID de clave.
§4Cuerpos tool
Los miembros del cuerpo de cada tool, digests de watch incluidos.
§5Sobre de artefacto
El hermano abierto del recibo para artefactos de cumplimiento.
§6Paquetes y anclaje
Hash de hojas y nodos con prefijo de dominio, y cómo se pliega una inclusión.
§7Descubrir claves
Dónde se sirven las claves, sus cabeceras y por qué rotar es aditivo.
§8Pasos de verificación
Los cuatro pasos y los motivos de fallo legibles por máquina.
§9Versionado
Los cambios aditivos no rompen verificadores v1; un documento v1 verifica con reglas v1 siempre.
Los bytes que se firman
Quita signature, serializa el resto en forma canónica y verifica la firma Ed25519 sobre esos bytes UTF-8. Es la cadena canónica del vector de prueba de abajo.
Para la verificación más sólida, obtén una clave una vez, guarda tu kid y tu x en tus propios registros y verifica contra esa copia. Todas las ubicaciones anteriores las servimos nosotros, así que compararlas protege contra una ruta defectuosa, no contra un Intramedial comprometido. Claves de firma y rotación →
"kind"
"notarian-bundle"
Resultado esperado
Entrada
Veredicto
El recibo y las claves publicados
ok: true
El mismo recibo con byteLength cambiado a 5
ok: false
El mismo recibo con otro ID de clave
ok: false
Un objeto con solo una versión
ok: false
El cuerpo del vector es material de prueba ilustrativo. Su clave es de prueba y no firma nada real.
Un verificador sin red más amplio para otras pruebas firmadas de la plataforma, como paquetes y exportaciones encadenadas.
Licencia
Aún sin licencia de código abierto
Código
contracts/
Adaptadores de frameworksAún sin publicar
Un paquete base y uno por framework de agentes que convierten una ejecución del framework en peticiones de atestación. Los frameworks son de sus autores; solo los adaptadores son nuestros.