Skip to main content
Glama

Markovian Provenance Stamp

markovian_stamp

Commit any data (an AI output, a decision, a record) into a public, witnessed transparency log and get back a verifiable, tamper-evident provenance stamp (canonical markovian-provenance/v1). It proves the data existed and was committed at this time; it does NOT assert the data is correct (provenance, not truth). No wallet, account, or funding is required, the first stamp just works, and only the SHA-256 hash of your data is sent to the public API, the raw data is never stored. The returned merkle_root is the handle: save it, then call markovian_verify(merkle_root) to prove integrity later, or pass prior stamps in derived_from to build a lineage you can walk with markovian_trace. Typical use: stamp an agent output the moment it is produced, so anyone can later confirm it was not altered.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYesExact bytes/string to stamp. Hashed server-side; raw data is not stored.
labelNoOptional human label for the stamp.
walletNoOptional. Omit and the protocol mints an ephemeral committer for you. Provide one to attribute the stamp.
derived_fromNoOptional lineage. A list of prior stamps this output was derived from, each {merkle_root, data_hash}. Bound inside the committed bytes so the link is tamper-evident; the payload is published so markovian_trace can walk it.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
issuerNoThe committer handle, as named in the transparency-log leaf. Attribution metadata, not a cryptographic identity.
schemaYes
verifyYes
walletYesCompatibility alias for issuer (kept because existing clients require it).
data_hashYes
stamped_atYes
attestationYes
merkle_rootYes
block_heightNoLegacy field, null for stamps after 2026-07. Historical values are internal sequence heights of a retired chain (never a Bitcoin block).
zk_commitmentNoLegacy field, null for stamps after 2026-07. Historical values are Pedersen points that shipped without an opening, so clients could never check them.

TDQS

A4.9/5.0
Behavior5/5

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

Discloses multiple traits beyond annotations: sends only SHA-256 hash, never stores raw data, requires no wallet/account, returns merkle_root as handle, and proves existence/time but not correctness. These details add context annotations can't convey.

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

Conciseness5/5

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

Every sentence contributes distinct information, structured from core action to caveats, privacy, and usage. Length is appropriate for the tool's complexity, and the key action is front-loaded.

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?

Covers purpose, usage guidelines, behavioral constraints, privacy, output handle, and lineage, all in one cohesive description. Output schema exists for return format, so no gap there. For a 4-parameter external-facing tool, this is complete.

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 already covers all 4 params, so baseline is 3. Description adds key semantics: data is hashed server-side, derived_from creates tamper-evident lineage, wallet can be omitted for ephemeral committer. This elevates above baseline.

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?

Description uses 'Commit' to specify the action, identifies the resource (data) and output (provenance stamp). It explicitly names sibling tools markovian_verify and markovian_trace and contrasts its role (stamping) with verification and tracing, fully distinguishing it.

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?

Provides a concrete use case: 'stamp an agent output the moment it is produced' and clarifies it is for provenance, not correctness. It also states no account/funding required, reducing selection barriers, and refers to alternative tools for verification/tracing.

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.

TDQS

A4.8/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: creating a stamp, tracing a lineage, and verifying a stamp. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tools follow a consistent naming pattern with the 'markovian_' prefix and a concise verb (stamp, trace, verify). This makes the tool set predictable and easy to navigate.

Tool Count5/5

Three tools is a well-scoped set for a provenance server, covering the core operations without unnecessary bloat. Every tool earns its place.

Completeness5/5

The domain is immutable provenance, and the set covers the full lifecycle: create, trace, and verify. There are no missing operations or dead ends.

Resources