Server definition
- Hash
- sha256:0c500f5855977462b33015bf17f45e798e1d0b6a3d40da237ddd4902835ce98f
- What it is
- What a remote MCP server returned when asked what it offers: 9 tools
The blob, as servednamed by its sha256
{
"instructions": "Timestamp and verify evidence on the Bitcoin SV blockchain. Use notarize_hash to prove a document or output existed at a point in time WITHOUT revealing it — hash the content yourself and send only the digest. Use archive_url to capture a web page as it looked right now, so a later change cannot be denied. Use verify_hash and get_archive to check any existing proof; verification is free and needs no trust in bsv.cx. Anchors are independently verified against bsv.cx's OWN block headers (synced over the BSV P2P network, not an explorer), and every proof is exportable as BEEF/BUMP (/spv/beef/:txid, /spv/bump/:txid) that any @bsv/sdk client verifies with no bsv.cx-specific code. Use proofpack to buy a portable, pre-verified BEEF+BUMP bundle for any confirmed txid in one call. Hashes are of exact bytes: re-encoding a file changes its hash.",
"tools": [
{
"description": "Capture a web page as it looks right now — screenshot and text — and anchor a hash of that capture on-chain. Use this before relying on a page you cite, so a later edit or deletion cannot be denied. Free.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"thorough": {
"description": "wait for lazy-loaded content; slower but better for long or image-heavy pages",
"type": "boolean"
},
"url": {
"description": "the page to capture",
"format": "uri",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "archive_url",
"outputSchema": null
},
{
"description": "Anchor a Merkle root over many sha256 digests in a single transaction — far cheaper per item than notarizing each one. Each hash gets an inclusion proof. Priced per call (pay over HTTP with an x402 payment — see /pay).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"hashes": {
"description": "sha256 hex digests to timestamp together",
"items": {
"pattern": "^[0-9a-fA-F]{64}$",
"type": "string"
},
"maxItems": 5000,
"minItems": 1,
"type": "array"
}
},
"required": [
"hashes"
],
"type": "object"
},
"name": "batch_timestamp",
"outputSchema": null
},
{
"description": "Fetch the manifest for a previous archive_url capture: when it was taken, and its proof. Free.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"hash": {
"description": "the capture hash returned by archive_url",
"pattern": "^[0-9a-fA-F]{64}$",
"type": "string"
}
},
"required": [
"hash"
],
"type": "object"
},
"name": "get_archive",
"outputSchema": null
},
{
"description": "Anchor a sha256 digest in a Bitcoin SV transaction, proving the content existed at this time. Send ONLY the hash — the content never leaves your machine, and bsv.cx cannot see what was hashed. Free. Idempotent: the same hash returns the same record.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"label": {
"description": "optional public note stored with the proof",
"maxLength": 200,
"type": "string"
},
"sha256": {
"description": "sha256 hex digest of the exact bytes you want to timestamp",
"pattern": "^[0-9a-fA-F]{64}$",
"type": "string"
}
},
"required": [
"sha256"
],
"type": "object"
},
"name": "notarize_hash",
"outputSchema": null
},
{
"description": "For any CONFIRMED BSV transaction id, get a freshly SPV-verified bundle: BEEF (BRC-62) and BUMP (BRC-74) plus bsv.cx's own self-synced header-tip attestation. bsv.cx fetches the Merkle proof and folds it against block headers it syncs over the BSV P2P network BEFORE serving, so you receive a bundle that already confirms — verifiable by any @bsv/sdk client with no bsv.cx-specific code. Verification itself is free at /spv/verify; this does the fetch + fold + package for you and is priced per call (pay over HTTP with an x402 payment — see /pay).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"txid": {
"description": "the confirmed transaction id to package a proof bundle for",
"pattern": "^[0-9a-fA-F]{64}$",
"type": "string"
}
},
"required": [
"txid"
],
"type": "object"
},
"name": "proofpack",
"outputSchema": null
},
{
"description": "Report whether anchoring is currently working. Call this if a tool reports something stored but not anchored.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "service_status",
"outputSchema": null
},
{
"description": "Verify ANY Bitcoin (BSV) Merkle inclusion proof — a BEEF envelope (BRC-62), a BUMP (BRC-74), or a raw TSC proof — against block headers bsv.cx syncs itself over the BSV P2P network, NOT an explorer. Returns confirmed / rejected / inconclusive. This is the trustless core: you send only the proof (never the root), we fold the root ourselves and check it against a header we hold — so you never have to trust bsv.cx. Works for ANY txid's proof, not just bsv.cx's own anchors. Free.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"beef": {
"description": "a BEEF envelope (BRC-62) as hex — easiest input; carries the tx and its merkle path",
"type": "string"
},
"bump": {
"description": "a BUMP (BRC-74) merkle path as hex; must be paired with txid",
"type": "string"
},
"height": {
"description": "block height (raw TSC proof only)",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"index": {
"description": "the transaction's index in the block (raw TSC proof only)",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"nodes": {
"description": "TSC merkle branch nodes as hex, or \"*\" for a duplicated node (raw TSC proof only)",
"items": {
"type": "string"
},
"type": "array"
},
"txid": {
"description": "64-hex txid; required with bump, or with a raw TSC proof",
"type": "string"
}
},
"type": "object"
},
"name": "spv_verify",
"outputSchema": null
},
{
"description": "Fetch a URL as readable text AND get a receipt anchoring a hash of the exact bytes returned, so you can later prove what the page said when you read it. Priced per call (pay over HTTP with an x402 payment — see /pay).",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"thorough": {
"description": "wait for lazy-loaded content",
"type": "boolean"
},
"url": {
"description": "the page to fetch",
"format": "uri",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
},
"name": "verifiable_fetch",
"outputSchema": null
},
{
"description": "Look up a sha256 across EVERY bsv.cx protocol — notary timestamps, verifiable-fetch receipts, notarized captures, web-page archives, Merkle batch roots and attestations — and return when it was anchored and the transaction that proves it. A hash anchored by any of these counts as found. Free, and never rate-limited into unavailability.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"sha256": {
"description": "the sha256 hex digest to look up",
"pattern": "^[0-9a-fA-F]{64}$",
"type": "string"
}
},
"required": [
"sha256"
],
"type": "object"
},
"name": "verify_hash",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:0c500f5855977462b33015bf17f45e798e1d0b6a3d40da237ddd4902835ce98f | sha256sum