Skip to main content
Glama

Bitcoin Timestamp Verify

btc_timestamp_verify
Read-only

Verify an OpenTimestamps proof (.ots as base64, from btc-timestamp or any ots client): upgrades pending proofs from the calendars, checks each Bitcoin attestation against the real block's merkle root and returns status (confirmed, pending), block height and time, the upgraded proof, and whether your text, hash or URL matches. Price: $0.003 USDC per call, paid inside this MCP call via x402 (USDC on Base, Solana, Polygon or Arbitrum). x402 MCP clients such as @x402/mcp pay automatically. Free sample: call with the example input {"ots_base64":"AE9wZW5UaW1lc3RhbXBzAABQcm9vZgC/ieLohOiSlAEIA7ogTlDRJuRnTABeBNguhMITZngK8fQ71Uo3gWtqs0AD8cgBAQAAAAHkgvnTLsw7ple2nYmAEIV7VEV6kEl5gv9W+XxOxY5vmAEAAABrSDBFAiEAslOt0dHPkIRDOKR1oE/xP8nnvSQrB3Yt6gf1YIst42cCIACyaMqcM0KzdpzdBiiRMXzc74eqwxC2hV6dk4mOu+jsASECDY5NEH0rM5sAUO/dS0oJJFqgVgSPElOWN06moqsHCcb/////AmUz5gUAAAAAGXapFAvwV9QPu6Z0SGJRX1tVojEN5XcviKyghgEAAAAAABl2qRTwBoisAAAAAAgI8SCph/cWxTORPDFMeONdNYhMrJQ/pCysSdKyxp9AA/hfiAgI8SDexVs0h+Hj9yKkm1WneDIVhieF9KOss5KEYBn3HcZKnQgI8SCyyhj0heCAR44CXas9RktBbA4ey2Ypya786MghTQQkMggI8CARsOkGYRlv9LCBPD7aFBurXpFgSDe996DJ3zfbDjoRmAgI8CDDS8GkoQk//RSMAWseZkdCkU6Tnvq+TT01ZRWRSybZ4ggI8CDD5ufDjGn2ryTCvjTrrEglft5h7AohuVNeREMne+MGRggI8SAHmL+GBuAAJOXV1UvwyWD2Kd+52taRV0VbbyZSwOjegQgI8CA/mtptYLqiRABrsKrVFEitL6+51LZIegmZz/JrkfD1NggI8SDHAwGelZqN0/rvdIm7MoukhVdHWOcJHwFGTrZYcsl1yAgI8CDL/v/1E/+EuRXj/tb515lnZjD4Nk6ipsdVf62UpbXXiAgI8SAL4jcJhZkTur1EYLvd+O0hPnyHc6Sx+s4w+Kz98JO3BQgIAAWIlg1z1xkBA/fvFQ==","text":"Hello World!\n"}.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoURL whose current bytes to compare
hashNoSHA-256 hex to compare
textNoOriginal content to compare
ots_base64Yes.ots file as base64

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description goes well beyond them by disclosing that the call reaches out to the calendar servers to upgrade proofs, that it costs $0.003 USDC per call paid in-band via x402 across four chains, and that x402 MCP clients pay automatically. It does not cover failure modes (invalid proof, calendar timeout) or latency, which keeps it short of a 5.

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

Conciseness3/5

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

Purpose, scope, pricing and payment are front-loaded well, but the single paragraph is overloaded and the inline free-sample input dumps roughly 1.5 KB of raw base64 mid-sentence, which dominates the description's length. The example has value as a zero-cost trial, yet its size hurts readability and would be better placed in a structured example field.

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?

With no output schema, the description carries the return-value burden and does so: status (confirmed, pending), block height and time, the upgraded proof, and whether the supplied text, hash or URL matches. Combined with full parameter coverage and the cost/payment disclosure, an agent has everything needed to call and interpret this tool.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds relational meaning the schema lacks: it explains that the optional text/hash/url inputs are used to test whether the caller's content matches the timestamped material, and it embeds a concrete sample input showing the ots_base64 plus text pairing. That clarifies how the optional comparison parameters are meant to be used together.

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?

States a specific verb (verify) and resource (an OpenTimestamps proof, .ots as base64) and spells out exactly what the verification entails: upgrading pending proofs from the calendars and checking each Bitcoin attestation against the real block's merkle root. It also names the producing sibling (btc-timestamp) and any ots client, so an agent can place it in the workflow without opening the schema.

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

Usage Guidelines3/5

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

The description implies the workflow — proofs produced by btc-timestamp or another ots client are verified here — and that pending proofs get upgraded, which tells the agent when this step applies. However, it never states an explicit when-to-use rule, a when-not-to-use rule, or an alternative tool for the same job; the routing is left to inference from the sibling name.

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