bsv.cx

Timestamp & verify evidence on-chain, free. Proofpack: a portable BEEF+BUMP proof bundle per txid.

Should I use this

Quality & Safety

A
Description quality
94%
Schema completeness
91%
Naming quality
84%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'archive_url' description lacks action verbin archive_url

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,447Tokens (tool definitions)
~910 BTypical response size
Moderate attention impact (1.13% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "bsv-cx": {
      "url": "https://bsv.cx/mcp"
    }
  }
}

Remote endpoints

https://bsv.cx/mcpstreamable-http

What it can do

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡notarize_hash(sha256, label)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "sha256": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{64}$",
      "description": "sha256 hex digest of the exact bytes you want to timestamp"
    },
    "label": {
      "description": "optional public note stored with the proof",
      "type": "string",
      "maxLength": 200
    }
  },
  "required": [
    "sha256"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢verify_hash(sha256)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "sha256": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{64}$",
      "description": "the sha256 hex digest to look up"
    }
  },
  "required": [
    "sha256"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡spv_verify(beef, bump, txid, height, index, ...)

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.

Input Schema

{
  "type": "object",
  "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"
    },
    "txid": {
      "description": "64-hex txid; required with bump, or with a raw TSC proof",
      "type": "string"
    },
    "height": {
      "description": "block height (raw TSC proof only)",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "index": {
      "description": "the transaction's index in the block (raw TSC proof only)",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "nodes": {
      "description": "TSC merkle branch nodes as hex, or \"*\" for a duplicated node (raw TSC proof only)",
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢proofpack(txid)

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).

Input Schema

{
  "type": "object",
  "properties": {
    "txid": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{64}$",
      "description": "the confirmed transaction id to package a proof bundle for"
    }
  },
  "required": [
    "txid"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡archive_url(url, thorough)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "description": "the page to capture"
    },
    "thorough": {
      "description": "wait for lazy-loaded content; slower but better for long or image-heavy pages",
      "type": "boolean"
    }
  },
  "required": [
    "url"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_archive(hash)

Fetch the manifest for a previous archive_url capture: when it was taken, and its proof. Free.

Input Schema

{
  "type": "object",
  "properties": {
    "hash": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{64}$",
      "description": "the capture hash returned by archive_url"
    }
  },
  "required": [
    "hash"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢verifiable_fetch(url, thorough)

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).

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "type": "string",
      "format": "uri",
      "description": "the page to fetch"
    },
    "thorough": {
      "description": "wait for lazy-loaded content",
      "type": "boolean"
    }
  },
  "required": [
    "url"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪batch_timestamp(hashes)

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).

Input Schema

{
  "type": "object",
  "properties": {
    "hashes": {
      "minItems": 1,
      "maxItems": 5000,
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[0-9a-fA-F]{64}$"
      },
      "description": "sha256 hex digests to timestamp together"
    }
  },
  "required": [
    "hashes"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪service_status

Report whether anchoring is currently working. Call this if a tool reports something stored but not anchored.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools
verifiedversion not recorded9 tools