Timestamp & verify evidence on-chain, free. Proofpack: a portable BEEF+BUMP proof bundle per txid.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
the page to capture
wait for lazy-loaded content; slower but better for long or image-heavy pages
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
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.
| Argument | Type | Description |
|---|---|---|
| url* | string | the page to capture |
| thorough | boolean | wait for lazy-loaded content; slower but better for long or image-heavy pages |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "the page to capture"
},
"thorough": {
"type": "boolean",
"description": "wait for lazy-loaded content; slower but better for long or image-heavy pages"
}
}
}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).
| Argument | Type | Description |
|---|---|---|
| hashes* | array | sha256 hex digests to timestamp together |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"hashes"
],
"properties": {
"hashes": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9a-fA-F]{64}$"
},
"maxItems": 5000,
"minItems": 1,
"description": "sha256 hex digests to timestamp together"
}
}
}Fetch the manifest for a previous archive_url capture: when it was taken, and its proof. Free.
| Argument | Type | Description |
|---|---|---|
| hash* | string | the capture hash returned by archive_url |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"hash"
],
"properties": {
"hash": {
"type": "string",
"pattern": "^[0-9a-fA-F]{64}$",
"description": "the capture hash returned by archive_url"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| label | string | optional public note stored with the proof |
| sha256* | string | sha256 hex digest of the exact bytes you want to timestamp |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"sha256"
],
"properties": {
"label": {
"type": "string",
"maxLength": 200,
"description": "optional public note stored with the proof"
},
"sha256": {
"type": "string",
"pattern": "^[0-9a-fA-F]{64}$",
"description": "sha256 hex digest of the exact bytes you want to timestamp"
}
}
}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).
| Argument | Type | Description |
|---|---|---|
| txid* | string | the confirmed transaction id to package a proof bundle for |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"txid"
],
"properties": {
"txid": {
"type": "string",
"pattern": "^[0-9a-fA-F]{64}$",
"description": "the confirmed transaction id to package a proof bundle for"
}
}
}Report whether anchoring is currently working. Call this if a tool reports something stored but not anchored.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}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.
| Argument | Type | Description |
|---|---|---|
| beef | string | a BEEF envelope (BRC-62) as hex — easiest input; carries the tx and its merkle path |
| bump | string | a BUMP (BRC-74) merkle path as hex; must be paired with txid |
| txid | string | 64-hex txid; required with bump, or with a raw TSC proof |
| index | integer | the transaction's index in the block (raw TSC proof only) |
| nodes | array | TSC merkle branch nodes as hex, or "*" for a duplicated node (raw TSC proof only) |
| height | integer | block height (raw TSC proof only) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"beef": {
"type": "string",
"description": "a BEEF envelope (BRC-62) as hex — easiest input; carries the tx and its merkle path"
},
"bump": {
"type": "string",
"description": "a BUMP (BRC-74) merkle path as hex; must be paired with txid"
},
"txid": {
"type": "string",
"description": "64-hex txid; required with bump, or with a raw TSC proof"
},
"index": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "the transaction's index in the block (raw TSC proof only)"
},
"nodes": {
"type": "array",
"items": {
"type": "string"
},
"description": "TSC merkle branch nodes as hex, or \"*\" for a duplicated node (raw TSC proof only)"
},
"height": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "block height (raw TSC proof only)"
}
}
}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).
| Argument | Type | Description |
|---|---|---|
| url* | string | the page to fetch |
| thorough | boolean | wait for lazy-loaded content |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "the page to fetch"
},
"thorough": {
"type": "boolean",
"description": "wait for lazy-loaded content"
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| sha256* | string | the sha256 hex digest to look up |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"sha256"
],
"properties": {
"sha256": {
"type": "string",
"pattern": "^[0-9a-fA-F]{64}$",
"description": "the sha256 hex digest to look up"
}
}
}