Skip to main content
Glama

Issue an Article-50 transparency receipt

ledgerproof_issue_receipt

Issue an EU AI Act Article 50 transparency receipt for AI-generated content, anchored to Bitcoin via LedgerProof.

Instructions

Produce an EU AI Act Article 50 transparency record for a piece of AI-generated content and register it with LedgerProof. Provide EXACTLY ONE of artifact (the raw content; hashed locally, never uploaded) or precomputed_sha256 (a SHA-256 hex you computed yourself), plus the AI-system and deployer metadata. Mirrors the SDK's publishAiArticle50. Returns {sequence, entry_hash, verify_url, anchor_status}. anchor_status is ALWAYS 'pending' on issuance because Bitcoin anchoring is asynchronous (a daily Merkle root is written to an OP_RETURN, which costs a Bitcoin tx fee) — poll ledgerproof_check_anchor until it becomes 'anchored'. Do not issue on loose triggers.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
artifactNoRaw AI-generated content (text). Hashed locally with SHA-256; the bytes are never sent to the LedgerProof API. Mutually exclusive with precomputed_sha256. Rejected over Streamable HTTP.
precomputed_sha256NoSHA-256 (hex) of the artifact, computed by the caller (e.g. via ledgerproof_hash_artifact). Keeps raw payloads off the wire. Mutually exclusive with artifact. Required over Streamable HTTP.
artifact_content_typeNoMIME type of the artifact, e.g. text/plain, image/png.text/plain
artifact_bytesNoByte length of the artifact. Used with precomputed_sha256 since the raw bytes are unavailable to the server.
aiSystemIdYesIdentifier of the AI system, e.g. 'openai/gpt-4o'.
deployerNameYesLegal name of the deployer organization (not an email/person).
contentCategoryYesArticle-50 content category.
aiSystemVersionNoVersion of the AI system, if known.
supervisoryAuthorityNoRelevant supervisory authority, if applicable.
generationTypeNoHow the content was produced.
sourceContentHashNoSHA-256 of source content for manipulated/assisted media.
perceptualHashNoPerceptual hash (algorithm, value, bits) for media.
transparencyMarkerNoTransparency marker label (defaults to LPR-EU-AI-ACT-50).
isPublicInterestNoWhether the content is in the public interest.
enforcementDateNoArticle-50 enforcement date (defaults to 2026-08-02).
profileVersionNoLPR profile version (defaults to EU-AI-ACT-50-v1.1).
Behavior5/5

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

The description discloses critical behavioral traits beyond annotations: the anchor_status is always 'pending' first due to asynchronous Bitcoin anchoring, and it instructs users to poll ledgerproof_check_anchor. It also notes that the artifact is hashed locally and never uploaded. There is no contradiction with annotations.

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?

The description is a single paragraph of six sentences, front-loaded with the core action. Every sentence provides essential information (purpose, parameter rules, async behavior, caution). No redundant or extraneous content.

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?

Given 16 parameters, 3 required, no output schema, the description covers the return fields (sequence, entry_hash, verify_url, anchor_status) and explains the asynchronous nature. It references the SDK and provides guidance on polling. This is sufficient for the complexity of the 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 description coverage is 100%, so baseline is 3. The description adds meaning beyond schema by explaining the mutual exclusivity of artifact and precomputed_sha256, the context for artifact_bytes, and the difference in usage over Streamable HTTP. These clarifications elevate the score.

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?

The description clearly states that the tool produces an EU AI Act Article 50 transparency record and registers it with LedgerProof. It uses specific verbs ('Produce... and register') and distinguishes itself from siblings like ledgerproof_check_anchor and ledgerproof_verify_receipt by focusing on issuance.

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

Usage Guidelines4/5

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

The description explains when to use the tool (issuing a receipt) and provides conditional guidance such as 'Provide EXACTLY ONE of artifact or precomputed_sha256' and 'Required over Streamable HTTP'. It also cautions 'Do not issue on loose triggers.' However, it does not explicitly state when not to use this tool versus alternatives, though the sibling tools are distinct enough.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vsdawkins-creator/ledgerproof-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server