spArxx.io | Zero-Knowledge Blockchain Timestamping
Server Details
Built for human creators. Register a timestamp on Polygon proving you made something, the moment you did. Your file is never uploaded, watermarked, or altered: only its cryptographic fingerprint ever reaches spArxx.io, zero-knowledge by design. A human still provisions the account behind the connection. This is deliberate, since this registration only means something with a human behind it.
The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 84.4% over 41 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 6 tools
Each tool targets a distinct operation: create, read (get/list evidence), verify, and cost lookups. The only mild overlap is verify_certificate vs. get_evidence, since both surface receipt data, though their intended purposes and auth requirements are clearly described.
All six tools follow a clean verb_noun snake_case pattern (create_timestamp, get_balance, get_evidence, get_pricing, list_evidence, verify_certificate). The only wrinkle is descriptions referencing internal names like 'timestamp_register', but the actual tool names are fully consistent.
Six tools is well-scoped for a timestamping service covering the create-poll-verify workflow plus cost pre-checks. Each tool earns its place with no redundant surface.
Core lifecycle is covered: create a timestamp, list evidence, fetch a full receipt kit, verify proofs, and check pricing/balance. Logically immutable records need no delete/update, so the only minor gap is any explicit status-check tool separate from get_evidence.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- Changed
create_timestamp1 field changed- changed
Output schema / properties / data / properties / cost_deducted / descriptionPrevious value: -"Actual spArks deducted for this call. Dynamic. Driven by the TIMESTAMP_COST env var (default 25), not a fixed 1 spark."New value: +"Actual spArks deducted for this call. Dynamic: TIMESTAMP COST or AGENTIC TIMESTAMP COST depending on channel (see get_pricing), not a fixed 1 spark."
- Changed
get_evidence2 fields changed- changed
Input schema / properties / pathParams / properties / id / descriptionPrevious value: -"evidence_id returned by create_timestamp or list_evidence."New value: +"evidence_id returned when a timestamp is created, or from list_evidence." - changed
Output schema / properties / data / properties / custody_status / descriptionPrevious value: -"Custody tier (BLUEPRINT.md). MVP is self-custody only. The client is responsible for keeping this receipt with the original file."New value: +"Custody tier. MVP is self-custody only. The client is responsible for keeping this receipt with the original file."
- Changed
get_pricing2 fields changed- changed
Output schema / properties / data / properties / service_costs / properties / timestamp_register / descriptionPrevious value: -"Standard spArks cost of a create_timestamp call (TIMESTAMP_COST env var, default 25)."New value: +"Standard spArks cost of creating a timestamp: applies when a person creates one in the spArxx.io web or mobile apps, and to standard API calls (TIMESTAMP COST, currently 25, promotional)." - changed
Output schema / properties / data / properties / service_costs / properties / timestamp_register_agentic / descriptionPrevious value: -"spArks cost of a create_timestamp call made via an MCP agent key (AGENTIC_TIMESTAMP_COST env var, default 20). This is a flat service rate for this channel, not a discount on spArks themselves."New value: +"spArks cost when an AI agent creates the timestamp itself through an MCP agent connection (AGENTIC TIMESTAMP COST, currently 20, promotional). This is a flat service rate for this channel, not a discount on spArks themselves. If this connection doesn't let you create timestamps, quote timestamp_register instead: the person will create it in the spArxx.io apps at the standard rate."
- Changed
list_evidence1 field changed- changed
Output schema / properties / data / items / properties / origin_channel / descriptionPrevious value: -"Set to 'mcp_agent' when this item was created via an MCP agent key; null otherwise (web/mobile channel tracking is not yet implemented. See EVIDENCE_CUSTODY_TRACKING_BLUEPRINT.md)."New value: +"Set to 'mcp_agent' when this item was created via an MCP agent key; null otherwise (web/mobile channel tracking is not yet implemented)."
1 tool update
- Changed
get_evidence7 fields changed- added
Output schema / properties / data / properties / blockchain / anyOfAdded value: +[ + { + "properties": { + "block_height": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "description": "Decimal block number the transaction was mined in." + }, + "contract_address": { + "description": "The TimestampRegistry contract address that storeHash(bytes32) was called on.", + "type": "string" + }, + "explorer_url": { + "format": "uri", + "type": "string" + }, + "network": { + "type": "string" + }, + "tx_hash": { + "type": "string" + } + }, + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / data / properties / blockchain / descriptionPrevious value: -"Present only once status is 'submitted' and a transaction hash exists."New value: +"Present only once status is 'submitted' and a transaction hash exists; null otherwise." - removed
Output schema / properties / data / properties / blockchain / propertiesRemoved value: -{ - "block_height": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "description": "Decimal block number the transaction was mined in." - }, - "contract_address": { - "description": "The TimestampRegistry contract address that storeHash(bytes32) was called on.", - "type": "string" - }, - "explorer_url": { - "format": "uri", - "type": "string" - }, - "network": { - "type": "string" - }, - "tx_hash": { - "type": "string" - } -} - removed
Output schema / properties / data / properties / blockchain / typeRemoved value: -"object" - added
Output schema / properties / data / properties / receipt_data / anyOfAdded value: +[ + { + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / data / properties / receipt_data / descriptionPrevious value: -"Structured receipt payload (shape varies: includes identity_claim block also surfaced publicly via verify_certificate)."New value: +"Structured receipt payload (shape varies: includes identity_claim block also surfaced publicly via verify_certificate). Null until status is 'submitted'." - removed
Output schema / properties / data / properties / receipt_data / typeRemoved value: -"object"
3 tool updates
- Changed
create_timestamp8 fields changed- added
Input schema / properties / body / properties / codename / anyOfAdded value: +[ + { + "maxLength": 100, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / body / properties / codename / descriptionRemoved value: -"Optional human-friendly label for the timestamped item." - added
Input schema / properties / body / properties / disclose_identity / anyOfAdded value: +[ + { + "type": "boolean" + }, + { + "type": "null" + } +] - removed
Input schema / properties / body / properties / disclose_identity / descriptionRemoved value: -"Per-transaction override for whether this certificate's verify page/API/manifest discloses the account's name and email together, or withholds both. Omit to inherit the account's stored disclose_identity_default preference (defaults to true if never set). Ghost/guest accounts always withhold identity regardless of this value ... there is no toggle for them." - added
Input schema / properties / body / properties / mime_type / anyOfAdded value: +[ + { + "maxLength": 100, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / body / properties / mime_type / descriptionRemoved value: -"Optional MIME type of the file (e.g., 'audio/wav', 'image/png'), if known. Purely informational, and stored with the evidence record, not independently verified against file content." - added
Input schema / properties / body / properties / original_file_name / anyOfAdded value: +[ + { + "maxLength": 255, + "type": "string" + }, + { + "type": "null" + } +] - removed
Input schema / properties / body / properties / original_file_name / descriptionRemoved value: -"Optional: the file's original name, if different from file_name (e.g., before local renaming). Purely informational, stored with the evidence record."
- Changed
get_evidence14 fields changed- added
Output schema / properties / data / properties / blockchain / properties / block_height / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "type": "null" + } +] - removed
Output schema / properties / data / properties / blockchain / properties / block_height / typeRemoved value: -[ - "integer", - "null" -] - added
Output schema / properties / data / properties / file / properties / original_name / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / data / properties / file / properties / original_name / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / data / properties / file / properties / size / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "type": "null" + } +] - removed
Output schema / properties / data / properties / file / properties / size / typeRemoved value: -[ - "integer", - "null" -] - added
Output schema / properties / data / properties / origin_channel / anyOfAdded value: +[ + { + "enum": [ + "mcp_agent" + ], + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / data / properties / origin_channel / enumRemoved value: -[ - "mcp_agent", - null -] - removed
Output schema / properties / data / properties / origin_channel / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / data / properties / public_verify_url / anyOfAdded value: +[ + { + "format": "uri", + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / data / properties / public_verify_url / formatRemoved value: -"uri" - removed
Output schema / properties / data / properties / public_verify_url / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / data / properties / verification_instructions / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / data / properties / verification_instructions / typeRemoved value: -[ - "string", - "null" -]
- Changed
list_evidence14 fields changed- added
Output schema / properties / data / items / properties / blockchain_tx_hash / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / data / items / properties / blockchain_tx_hash / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / data / items / properties / explorer_url / anyOfAdded value: +[ + { + "format": "uri", + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / data / items / properties / explorer_url / formatRemoved value: -"uri" - removed
Output schema / properties / data / items / properties / explorer_url / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / data / items / properties / file_size / anyOfAdded value: +[ + { + "type": "integer" + }, + { + "type": "null" + } +] - removed
Output schema / properties / data / items / properties / file_size / typeRemoved value: -[ - "integer", - "null" -] - added
Output schema / properties / data / items / properties / mime_type / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / data / items / properties / mime_type / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / data / items / properties / origin_channel / anyOfAdded value: +[ + { + "enum": [ + "mcp_agent" + ], + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / data / items / properties / origin_channel / enumRemoved value: -[ - "mcp_agent", - null -] - removed
Output schema / properties / data / items / properties / origin_channel / typeRemoved value: -[ - "string", - "null" -] - added
Output schema / properties / data / items / properties / original_file_name / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - removed
Output schema / properties / data / items / properties / original_file_name / typeRemoved value: -[ - "string", - "null" -]
6 tool updates
- Changed
create_timestamp6 fields changed- changed
Input schema / properties / body / descriptionPrevious value: -"Exactly one of file_hash/client_hash and exactly one of file_size/file_size_bytes must be present — they are aliases kept for client compatibility, not two different values."New value: +"Exactly one of file_hash/client_hash and exactly one of file_size/file_size_bytes must be present. These are aliases kept for client compatibility, not two different values." - changed
Input schema / properties / body / properties / disclose_identity / descriptionPrevious value: -"Whether this certificate's verify page/API/manifest should disclose the account's name and email together, or withhold both. Omit to inherit the account's own disclose_identity_default preference. Ignored for Ghost/unclaimed accounts, which are always anonymous regardless of this value."New value: +"Per-transaction override for whether this certificate's verify page/API/manifest discloses the account's name and email together, or withholds both. Omit to inherit the account's stored disclose_identity_default preference (defaults to true if never set). Ghost/guest accounts always withhold identity regardless of this value ... there is no toggle for them." - added
Input schema / properties / body / properties / file_name / descriptionAdded value: +"The file's name as the caller knows it (e.g., 'final_mix.wav'). Used for display and is included in the receipt kit. Required; not used to derive mime_type or validate the hash." - added
Input schema / properties / body / properties / mime_type / descriptionAdded value: +"Optional MIME type of the file (e.g., 'audio/wav', 'image/png'), if known. Purely informational, and stored with the evidence record, not independently verified against file content." - added
Input schema / properties / body / properties / original_file_name / descriptionAdded value: +"Optional: the file's original name, if different from file_name (e.g., before local renaming). Purely informational, stored with the evidence record." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "correlation_id": { + "type": "string" + }, + "data": { + "properties": { + "action": { + "example": "EJECT_REQUIRED", + "type": "string" + }, + "cost_deducted": { + "description": "Actual spArks deducted for this call. Dynamic. Driven by the TIMESTAMP_COST env var (default 25), not a fixed 1 spark.", + "type": "integer" + }, + "custody_status": { + "example": "self_custody", + "type": "string" + }, + "evidence_id": { + "format": "uuid", + "type": "string" + }, + "remaining_credits": { + "type": "number" + }, + "sparks_remaining": { + "type": "number" + }, + "status": { + "example": "pending", + "type": "string" + } + }, + "type": "object" + }, + "message": { + "type": "string" + }, + "status": { + "example": "success", + "type": "string" + } + }, + "type": "object" +}
- Changed
get_balance1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "data": { + "properties": { + "credits": { + "description": "spArks balance.", + "type": "number" + }, + "formatted": { + "example": "1,250.00", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
get_evidence1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "data": { + "description": "The receipt kit: everything an agent needs to prove a hash was timestamped, without ever holding the original file. Save this alongside the original file, as it is the MCP equivalent of the browser's forced certificate download.", + "properties": { + "blockchain": { + "description": "Present only once status is 'submitted' and a transaction hash exists.", + "properties": { + "block_height": { + "description": "Decimal block number the transaction was mined in.", + "type": [ + "integer", + "null" + ] + }, + "contract_address": { + "description": "The TimestampRegistry contract address that storeHash(bytes32) was called on.", + "type": "string" + }, + "explorer_url": { + "format": "uri", + "type": "string" + }, + "network": { + "type": "string" + }, + "tx_hash": { + "type": "string" + } + }, + "type": "object" + }, + "created_at": { + "format": "date-time", + "type": "string" + }, + "custody_status": { + "description": "Custody tier (BLUEPRINT.md). MVP is self-custody only. The client is responsible for keeping this receipt with the original file.", + "enum": [ + "self_custody" + ], + "type": "string" + }, + "disclose_identity": { + "description": "Whether this specific timestamp's certificate/manifest/verify page discloses the account's name and email together, or withholds both. Frozen at creation time. Does not change retroactively if the account's default preference changes later.", + "type": "boolean" + }, + "file": { + "properties": { + "hash": { + "type": "string" + }, + "name": { + "type": "string" + }, + "original_name": { + "type": [ + "string", + "null" + ] + }, + "size": { + "type": [ + "integer", + "null" + ] + } + }, + "type": "object" + }, + "id": { + "format": "uuid", + "type": "string" + }, + "origin_channel": { + "description": "Set to 'mcp_agent' when this item was created via an MCP agent key.", + "enum": [ + "mcp_agent", + null + ], + "type": [ + "string", + "null" + ] + }, + "public_verify_url": { + "description": "Human-viewable, Cloudflare Turnstile-protected confirmation page. Hand this to the human to open in their own browser. Do not fetch it programmatically, as it is not meant for agent traffic and will likely be blocked.", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "receipt_data": { + "description": "Structured receipt payload (shape varies: includes identity_claim block also surfaced publicly via verify_certificate).", + "type": "object" + }, + "status": { + "enum": [ + "pending", + "submitted", + "failed" + ], + "type": "string" + }, + "verification_instructions": { + "description": "Step-by-step instructions for an agent to independently confirm the timestamp using only public blockchain data (recompute the hash locally, fetch the transaction, decode its calldata). Requires no trust in spArxx.io beyond the public chain itself. Present only once blockchain data is available.", + "type": [ + "string", + "null" + ] + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
get_pricing1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "data": { + "properties": { + "currency": { + "example": "credits", + "type": "string" + }, + "exchange_rate": { + "properties": { + "credits_per_usd": { + "type": "number" + }, + "text": { + "type": "string" + } + }, + "type": "object" + }, + "service_costs": { + "properties": { + "timestamp_register": { + "description": "Standard spArks cost of a create_timestamp call (TIMESTAMP_COST env var, default 25).", + "type": "integer" + }, + "timestamp_register_agentic": { + "description": "spArks cost of a create_timestamp call made via an MCP agent key (AGENTIC_TIMESTAMP_COST env var, default 20). This is a flat service rate for this channel, not a discount on spArks themselves.", + "type": "integer" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "meta": { + "properties": { + "api_version": { + "type": "string" + }, + "environment": { + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" +}
- Changed
list_evidence1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "data": { + "items": { + "properties": { + "blockchain_tx_hash": { + "type": [ + "string", + "null" + ] + }, + "created_at": { + "format": "date-time", + "type": "string" + }, + "explorer_url": { + "description": "Public block-explorer link for blockchain_tx_hash. Null until the timestamp job has settled on-chain.", + "format": "uri", + "type": [ + "string", + "null" + ] + }, + "file_hash": { + "description": "SHA-256 hex digest, 64 characters.", + "type": "string" + }, + "file_name": { + "type": "string" + }, + "file_size": { + "type": [ + "integer", + "null" + ] + }, + "id": { + "format": "uuid", + "type": "string" + }, + "mime_type": { + "type": [ + "string", + "null" + ] + }, + "origin_channel": { + "description": "Set to 'mcp_agent' when this item was created via an MCP agent key; null otherwise (web/mobile channel tracking is not yet implemented. See EVIDENCE_CUSTODY_TRACKING_BLUEPRINT.md).", + "enum": [ + "mcp_agent", + null + ], + "type": [ + "string", + "null" + ] + }, + "original_file_name": { + "type": [ + "string", + "null" + ] + }, + "status": { + "enum": [ + "pending", + "submitted", + "failed" + ], + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + } + }, + "type": "object" +}
- Changed
verify_certificate2 fields changed- changed
Input schema / properties / queryParams / properties / cf-turnstile-response / descriptionPrevious value: -"Cloudflare Turnstile CAPTCHA token. Required for anonymous callers in any environment with a Turnstile secret key configured — in practice, always in production. Skipped only in an unconfigured local dev environment, or when the request is already authenticated via the MCP agent guard (Claude Code / Custom Connector)."New value: +"Cloudflare Turnstile CAPTCHA token. Required for anonymous callers in any environment with a Turnstile secret key configured. In practice, always in production. Skipped only in an unconfigured local dev environment, or when the request is already authenticated via the MCP agent guard (Claude Code / Custom Connector)." - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "data": { + "description": "Public receipt data, identity_claim redacted per privacy rules above.", + "type": "object" + }, + "status": { + "example": "success", + "type": "string" + } + }, + "type": "object" +}
6 tool updates
- First observed
create_timestamp - First observed
get_balance - First observed
get_evidence - First observed
get_pricing - First observed
list_evidence - First observed
verify_certificate
Related MCP Servers
- AlicenseNot gradedqualityCmaintenancePerplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.2Apache 2.0
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs113 npm54 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.164 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.