JIDEC: Bitcoin-anchored public verification ledger (NENRIN)
Cite and independently verify Bitcoin-anchored construction-estimate audit records.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"jidec": {
"url": "https://jidec.horizonshield.dev/mcp"
}
}
}Puntos de conexión remotos
https://jidec.horizonshield.dev/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (4)
🟢jidec_cite(citation)
Resolve and INDEPENDENTLY verify any JIDEC citation. Accepts 'jidec:path:<sha>', 'jidec:entry:<n>', a bare 64-hex id, or a ledger URL. Fetches the record's exact bytes, recomputes SHA-256 locally, and confirms it equals the cited id. Returns integrity, Bitcoin anchoring status, the parsed record (verification path, claim, or v0 spec entry), and an explicit statement of what the proof does and does not cover. No trust in HORIZON SHIELD is required to accept the result.
Esquema de entrada
{
"type": "object",
"properties": {
"citation": {
"type": "string",
"description": "jidec:path:<sha> | jidec:entry:<n> | 64-hex | ledger URL"
}
},
"required": [
"citation"
]
}Esquema de salida
{
"type": "object",
"properties": {
"lookup": {
"type": "string",
"enum": [
"ok",
"absent"
],
"description": "ok = the ledger was read and the record exists. absent = the ledger was read and there is no such record. A read that FAILED never appears here: it comes back as a tool error (isError: true), so a consumer can never mistake this server's own failure for a statement about the ledger's contents."
},
"citation": {
"type": "string"
},
"resolved_entry": {
"type": [
"number",
"string",
"null"
]
},
"integrity": {
"type": "object",
"description": "The whole point: claimed vs recomputed. match:false is an integrity FAILURE, which is a finding, not an error.",
"properties": {
"claimed_sha256": {
"type": "string"
},
"recomputed_sha256": {
"type": "string"
},
"match": {
"type": "boolean"
}
},
"required": [
"match"
]
},
"bitcoin": {
"type": "object",
"properties": {
"status": {
"type": "string"
}
}
},
"record_kind": {
"type": "string"
},
"trust_note": {
"type": "string"
},
"limits": {
"type": "string"
}
},
"required": [
"lookup",
"integrity"
],
"additionalProperties": true
}🟢jidec_replay(citation)
Re-observe an anchored JIDEC verification path against the live system right now and report drift. Returns MATCH (the live system still matches what was anchored) or DRIFT (it changed), node by node. Nodes that cannot be re-observed server-side are reported as deferred, never counted as drift.
Esquema de entrada
{
"type": "object",
"properties": {
"citation": {
"type": "string",
"description": "jidec:path:<sha> | jidec:entry:<n> | ledger URL"
}
},
"required": [
"citation"
]
}Esquema de salida
{
"type": "object",
"properties": {
"lookup": {
"type": "string",
"enum": [
"ok",
"absent"
],
"description": "ok = the ledger was read and the record exists. absent = the ledger was read and there is no such record. A read that FAILED never appears here: it comes back as a tool error (isError: true), so a consumer can never mistake this server's own failure for a statement about the ledger's contents."
},
"verdict": {
"type": "string",
"description": "MATCH or DRIFT. Nodes that could not be re-observed are deferred, never counted as drift."
}
},
"required": [
"lookup"
],
"additionalProperties": true
}🟢jidec_list_paths
List the anchored JIDEC verification paths (most recent first), with purpose, verdict and Bitcoin anchoring status.
Esquema de entrada
{
"type": "object",
"properties": {}
}Esquema de salida
{
"type": "object",
"properties": {
"lookup": {
"type": "string",
"enum": [
"ok",
"absent"
],
"description": "ok = the ledger was read and the record exists. absent = the ledger was read and there is no such record. A read that FAILED never appears here: it comes back as a tool error (isError: true), so a consumer can never mistake this server's own failure for a statement about the ledger's contents."
},
"count": {
"type": "number",
"description": "How many anchored paths the ledger returned. 0 means the ledger answered and holds none. It never means the ledger could not be read, that is an error."
},
"paths": {
"type": "array",
"items": {
"type": "object"
}
}
},
"required": [
"lookup",
"count"
],
"additionalProperties": true
}🟢jidec_how_to_verify(citation)
Return the step-by-step recipe for verifying a JIDEC record WITHOUT trusting HORIZON SHIELD: which bytes to fetch, which hashes to recompute, which OpenTimestamps proof to check, which algorithm commit to check out, and what must match. Use this when you want to confirm the result yourself rather than repeat an assertion.
Esquema de entrada
{
"type": "object",
"properties": {
"citation": {
"type": "string",
"description": "jidec:path:<sha> | jidec:entry:<n> | 64-hex | ledger URL"
}
},
"required": [
"citation"
]
}Esquema de salida
{
"type": "object",
"properties": {
"lookup": {
"type": "string",
"enum": [
"ok",
"absent"
],
"description": "ok = the ledger was read and the record exists. absent = the ledger was read and there is no such record. A read that FAILED never appears here: it comes back as a tool error (isError: true), so a consumer can never mistake this server's own failure for a statement about the ledger's contents."
},
"citation": {
"type": "string"
},
"resolved_entry": {
"type": [
"number",
"string",
"null"
]
},
"path_id": {
"type": "string"
},
"recipe": {
"type": [
"object",
"string"
]
}
},
"required": [
"lookup"
],
"additionalProperties": true
}Comunidad
Evidencia