Confirm a caller-supplied JWKS directory document is the SAME document the caller pinned out-of-band at onboarding time, before art-130 trusts its internal shape. Computes sha256(canonicalize(directory_jwks)) and compares it to a caller-supplied pinned_digest. This tool never fetches, stores, serves, or redistributes anyone's keys: both the document and the digest are supplied by you.
🔒 All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data — use synthetic or anonymised inputs only.
Scope
Stage in the visa-tap-agent-verification chain (art-129 → nonce-replay-check → art-609 → art-130), placed BEFORE art-130 so a substituted directory fails before its internal shape is even checked. What this checks: sha256(canonicalize(directory_jwks)) === pinned_digest, where canonicalize() is this codebase's one JCS/RFC-8785 canon (recursive key-sort by Unicode code point, array order preserved), hashed as lowercase hex. What it cannot know: whether your out-of-band pinning process itself was sound, since the digest-pinning check's correctness depends entirely on how and when you captured pinned_digest. Hard rail: this tool never fetches a directory from the network and never serves keys to others, it only does arithmetic over two documents you already hold.
Presets
Result
Execution Hash & §4 Artifact
SHA-256 execution hash (JCS canonical, RFC 8785):
Chain Handoff → art-130
Pass execution_hash as a parent hash when calling validate_signature_directory (art-130) to continue the visa-tap-agent-verification chain. The pin-check runs first, so a substituted directory never reaches art-130's shape check.
Ask your agent
Copy this paragraph into Claude, OpenClaw, or any MCP-aware agent to run this exact tool, with this sample, and verify the artifact.
Run the AINumbers MCP tool `check_jwks_pinned_directory`. Task: Confirm a caller-supplied JWKS directory document matches a caller-pinned SHA-256 digest, before art-130 trusts its shape.
Call it with arguments: {"policy_parameters":{"directory_jwks":{"keys":[{"kty":"OKP","crv":"Ed25519","kid":"key-2026-06","x":"WrHvnND7oaWfvrGxUU3FNeJaQDwYj4K3e5fl0fH5p2g"}]},"pinned_digest":"45d28be3698cb02c2a658ecb15c292076254ca24cd797bc75a39dacd244a028d"}}
Verify before trusting: call `verify_execution_hash` on mcp.ainumbers.co (https://mcp.ainumbers.co/mcp) with the parameter `claimed_hash` set to the returned `execution_hash`, passing the full artifact the run returned (the object containing `policy_parameters` + `output_payload` + `execution_hash`; equivalently `policy_parameters` + `output_payload` with `claimed_hash`), not the bare hash string, or re-run the in-page WebMCP tool `check_jwks_pinned_directory`.
Return the ledger link https://ledger.ainumbers.co/ so a human can re-verify without contacting us.
PII rule: All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data — use synthetic or anonymised inputs only.
Open the tool with the sample prefilled: https://ainumbers.co/chaingraph/art-609-jwks-pinned-directory-check.html#p=v1.H4sIAAAAAAAA_wHUACv_eyJkaXJlY3RvcnlfandrcyI6eyJrZXlzIjpbeyJrdHkiOiJPS1AiLCJjcnYiOiJFZDI1NTE5Iiwia2lkIjoia2V5LTIwMjYtMDYiLCJ4IjoiV3JIdm5ORDdvYVdmdnJHeFVVM0ZOZUphUUR3WWo0SzNlNWZsMGZINXAyZyJ9XX0sInBpbm5lZF9kaWdlc3QiOiI0NWQyOGJlMzY5OGNiMDJjMmE2NThlY2IxNWMyOTIwNzYyNTRjYTI0Y2Q3OTdiYzc1YTM5ZGFjZDI0NGEwMjhkIn0rQUzv1AAAAA