Skip to main content
Glama

Notarize a SHA256 Digest with OpenTimestamps

proof.notarize

PURPOSE & BOUNDARIES: Create a detached OpenTimestamps .ots receipt for an agent-supplied SHA256 digest using public calendars. Do NOT use this as evidence of immediate Bitcoin confirmation or as a replacement for proof.verify. USAGE GUIDELINES: Submit exactly one 64-character hexadecimal hash; decode otsProofHex into binary to save the .ots file. BEHAVIOR & CONSEQUENCES: Submits a randomized commitment to public calendars, returns pending_calendar, and fails explicitly if calendars are unavailable. Costs 250 sats via L402; X-L402-Batch-Size: 100 purchases 100 tool-scoped calls for 25000 sats.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hashYesExactly 64 hexadecimal characters representing the agent state or data SHA256 digest; no 0x prefix. Constraints: minLength: 64; maxLength: 64; pattern: ^[0-9a-fA-F]{64}$. Example: "abababababababababababababababababababababababababababababababab".

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
hashYesThe original SHA256 digest, normalized to lowercase. Constraints: pattern: ^[0-9a-f]{64}$. Example: "abababababababababababababababababababababababababababababababab".
otsStatusYesCalendar receipt only; Bitcoin inclusion must be independently upgraded and verified later. Example: "pending_calendar".
otsProofHexYesHex-encoded detached .ots file. Decode as binary and upgrade or verify later with official OpenTimestamps tools. Constraints: minLength: 2; maxLength: 1048576; pattern: ^(?:[0-9a-f]{2})+$. Example: "004f70656e54696d657374616d70730000".

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare non-idempotent, open-world, non-destructive write behavior, and the description explains WHY: a randomized commitment is submitted to public calendars, results come back as pending_calendar, and it fails explicitly when calendars are unavailable. It also discloses cost (250 sats L402, X-L402-Batch-Size: 100 for 25000 sats), which is nowhere in structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Content is dense and front-loaded into PURPOSE / USAGE / BEHAVIOR blocks, and essentially every sentence carries non-redundant information. The ALL-CAPS section labels and the pricing tail make it slightly heavier than it needs to be, but nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, yet the description still tells the agent what to do with otsProofHex and how the call can fail. Cost, batching, and failure modes are all covered, leaving no operational gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single hash parameter is fully documented in the schema, so the baseline is 3. The description's 'one 64-character hexadecimal hash' simply restates that; the extra value it adds (decode otsProofHex) concerns the return value, not the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a precise verb+resource+mechanism: create a detached OpenTimestamps .ots receipt for an agent-supplied SHA256 digest via public calendars. It also draws an explicit boundary against proof.verify and against treating the receipt as Bitcoin confirmation, which separates it from the sibling verify tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States exactly when NOT to use it ('not immediate Bitcoin confirmation', 'not a replacement for proof.verify') and the input contract ('submit exactly one 64-character hexadecimal hash'). This is explicit routing rather than implied usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources