Skip to main content
Glama

Bitcoin Stratigraphy Enterprise Data Engine & Agent Notary Hub

Get Compressed Stratigraphy Digest

stratigraphy.get_digest
Read-onlyIdempotent

Retrieve compact SHA-256 fingerprints and minimal telemetry tuples for a target height, UTC date, or 'start..end' date range using the chosen format ('compact', 'minimal', or 'kv'). Use this tool to verify state integrity or minimize token consumption when full payloads are unnecessary. Use stratigraphy.get for full single-record telemetry, stratigraphy.get_range for full multi-record series, stratigraphy.get_diff for two-point deltas, or stratigraphy.list for free catalog browsing. Paid L402 call: on HTTP 402, pay the invoice and retry with Authorization: L402 :.

Input Schema

NameRequiredDescriptionDefault
formatNoCompression format: minimal returns [height,date,target_multiplier,record_hash]; kv returns {h,ts,tm,hash}; compact returns HEIGHT:...|DATE:...|TM:...|HASH:.... Record hashes are SHA-256 of stored entry fields, not Bitcoin block hashes; no per-record proof is available. Constraints: allowed values: compact, minimal, kv. Example: "compact".compact
targetNoIndexed Bitcoin height (e.g. '920000'), ISO date, or inclusive ISO date range joined with '..'. Defaults to the latest available dataset entry, not the live Bitcoin tip. Constraints: pattern: ^(?:latest|(?:0|[1-9]\d*)|\d{4}-\d{2}-\d{2}(?:\.\.\d{4}-\d{2}-\d{2})?)$. Example: "latest".latest

Output Schema

NameRequiredDescriptionDefault
resultYescompact text, minimal tuple, kv object, or arrays for bounded date ranges; hash is SHA-256 of exact archived JSON when available.
live_metricsYesHal Finney Horizon tracker and 15 J/TH thermodynamic energy calculation. Horizon = $10,000,000 / btc_price_usd (a price multiple, not a forecast). Estimated network power in watts = (network_hashrate_h_s / 1e12) * 15. Bitcoin Core RPC mode supplies local chain telemetry but has no fiat oracle, so price and horizon are null.
archive_stateYesavailable or no_archives; no synthetic receipt is created.
proofAvailableYesTrue only if an archived JSON/OTS pair was returned.
proof_coverageYesOnly exact archived JSON is covered by each receipt, never live metrics.
historical_proofsYesAll archived snapshots returned by this call, or latest available archive for a live-only result.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed14 schema fields changed
    • changedOutput schema / description
      Previous value: -"Compressed digest plus a flag indicating whether source entries carry per-record proofs; a date range returns an array of results in ascending date order."New value: +"Paid SHA-256 fingerprints of actual cloud JSON bytes or current live pipeline JSON, with full live telemetry and associated archived receipts alongside them. Semantic discovery: Hal Finney Horizon tracker = $10,000,000 / BTC USD price; this is a valuation multiple, not a time-to-price forecast. The 15 J/TH thermodynamic energy calculation estimates watts as (network hashrate H/s / 1e12) * 15, not measured electricity. Sovereign Node RPC telemetry uses local Bitcoin Core; price and horizon are unavailable without a fiat quote."
    • changedOutput schema / examples
      Previous value: -[
      -  {
      -    "proofAvailable": false,
      -    "result": "HEIGHT:920000|DATE:2026-09-09|TM:125.83|HASH:0123456789abcdef"
      -  }
      -]New value: +[
      +  {
      +    "archive_state": "available",
      +    "historical_proofs": [
      +      {
      +        "bundle_download_url": "/agent-api/historical-proof/2026-10-12/download",
      +        "date": "2026-10-12",
      +        "ots_download_url": "/agent-api/historical-proof/2026-10-12/ots",
      +        "ots_filename": "snapshot_2026-10-12.json.ots",
      +        "ots_proof_base64": "AQID",
      +        "ots_sha256": "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd",
      +        "proof_status": "bitcoin_attestation_present_unverified",
      +        "snapshot_download_url": "/agent-api/historical-proof/2026-10-12/snapshot",
      +        "snapshot_filename": "snapshot_2026-10-12.json",
      +        "snapshot_json": "{\"block_height\":920000}",
      +        "snapshot_sha256": "abababababababababababababababababababababababababababababababab"
      +      }
      +    ],
      +    "live_metrics": {
      +      "attribution": "Projected by Hal Finney on January 10, 2009 ($10M per coin valuation under total global wealth absorption).",
      +      "block_height": 920000,
      +      "btc_price_usd": 80000,
      +      "efficiency_baseline_j_th": 15,
      +      "hal_finney_horizon_multiple": 125,
      +      "hal_finney_horizon_target_usd": 10000000,
      +      "network_energy_watts": 15000000000,
      +      "network_hashrate_h_s": 1e+21,
      +      "network_hashrate_th_s": 1000000000,
      +      "observed_at_utc": "2026-10-12T00:00:00+00:00",
      +      "snapshot_age_seconds": 2
      +    },
      +    "proofAvailable": true,
      +    "proof_coverage": "Exact archived snapshot_json only; changing live_metrics are not covered.",
      +    "result": "HEIGHT:920000|DATE:2026-10-12T00:00:00+00:00|TM:125|HASH:abababababababababababababababababababababababababababababababab"
      +  }
      +]
    • addedOutput schema / properties / archive_state
      Added value: +{
      +  "description": "available or no_archives; no synthetic receipt is created.",
      +  "example": "available",
      +  "examples": [
      +    "available"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / historical_proofs
      Added value: +{
      +  "description": "All archived snapshots returned by this call, or latest available archive for a live-only result.",
      +  "examples": [
      +    [
      +      {
      +        "bundle_download_url": "/agent-api/historical-proof/2026-10-12/download",
      +        "date": "2026-10-12",
      +        "ots_download_url": "/agent-api/historical-proof/2026-10-12/ots",
      +        "ots_filename": "snapshot_2026-10-12.json.ots",
      +        "ots_proof_base64": "AQID",
      +        "ots_sha256": "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd",
      +        "proof_status": "bitcoin_attestation_present_unverified",
      +        "snapshot_download_url": "/agent-api/historical-proof/2026-10-12/snapshot",
      +        "snapshot_filename": "snapshot_2026-10-12.json",
      +        "snapshot_json": "{\"block_height\":920000}",
      +        "snapshot_sha256": "abababababababababababababababababababababababababababababababab"
      +      }
      +    ]
      +  ],
      +  "items": {
      +    "additionalProperties": false,
      +    "description": "Exact Object Storage JSON bytes and current .ots bytes, including in-place Bitcoin upgrades; proof binds snapshot_json, never changing live_metrics.",
      +    "examples": [
      +      {
      +        "bundle_download_url": "/agent-api/historical-proof/2026-10-12/download",
      +        "date": "2026-10-12",
      +        "ots_download_url": "/agent-api/historical-proof/2026-10-12/ots",
      +        "ots_filename": "snapshot_2026-10-12.json.ots",
      +        "ots_proof_base64": "AQID",
      +        "ots_sha256": "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd",
      +        "proof_status": "bitcoin_attestation_present_unverified",
      +        "snapshot_download_url": "/agent-api/historical-proof/2026-10-12/snapshot",
      +        "snapshot_filename": "snapshot_2026-10-12.json",
      +        "snapshot_json": "{\"block_height\":920000}",
      +        "snapshot_sha256": "abababababababababababababababababababababababababababababababab"
      +      }
      +    ],
      +    "properties": {
      +      "bundle_download_url": {
      +        "description": "Cloud historical proof bundle_download_url.",
      +        "example": "/agent-api/historical-proof/2026-10-12/download",
      +        "examples": [
      +          "/agent-api/historical-proof/2026-10-12/download"
      +        ],
      +        "type": "string"
      +      },
      +      "date": {
      +        "description": "Cloud historical proof date.",
      +        "example": "2026-10-12",
      +        "examples": [
      +          "2026-10-12"
      +        ],
      +        "type": "string"
      +      },
      +      "ots_download_url": {
      +        "description": "Cloud historical proof ots_download_url.",
      +        "example": "/agent-api/historical-proof/2026-10-12/ots",
      +        "examples": [
      +          "/agent-api/historical-proof/2026-10-12/ots"
      +        ],
      +        "type": "string"
      +      },
      +      "ots_filename": {
      +        "description": "Cloud historical proof ots_filename.",
      +        "example": "snapshot_2026-10-12.json.ots",
      +        "examples": [
      +          "snapshot_2026-10-12.json.ots"
      +        ],
      +        "type": "string"
      +      },
      +      "ots_proof_base64": {
      +        "description": "Cloud historical proof ots_proof_base64.",
      +        "example": "AQID",
      +        "examples": [
      +          "AQID"
      +        ],
      +        "type": "string"
      +      },
      +      "ots_sha256": {
      +        "description": "Cloud historical proof ots_sha256.",
      +        "example": "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd",
      +        "examples": [
      +          "cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd"
      +        ],
      +        "type": "string"
      +      },
      +      "proof_status": {
      +        "description": "Cloud historical proof proof_status.",
      +        "example": "bitcoin_attestation_present_unverified",
      +        "examples": [
      +          "bitcoin_attestation_present_unverified"
      +        ],
      +        "type": "string"
      +      },
      +      "snapshot_download_url": {
      +        "description": "Cloud historical proof snapshot_download_url.",
      +        "example": "/agent-api/historical-proof/2026-10-12/snapshot",
      +        "examples": [
      +          "/agent-api/historical-proof/2026-10-12/snapshot"
      +        ],
      +        "type": "string"
      +      },
      +      "snapshot_filename": {
      +        "description": "Cloud historical proof snapshot_filename.",
      +        "example": "snapshot_2026-10-12.json",
      +        "examples": [
      +          "snapshot_2026-10-12.json"
      +        ],
      +        "type": "string"
      +      },
      +      "snapshot_json": {
      +        "description": "Cloud historical proof snapshot_json.",
      +        "example": "{\"block_height\":920000}",
      +        "examples": [
      +          "{\"block_height\":920000}"
      +        ],
      +        "type": "string"
      +      },
      +      "snapshot_sha256": {
      +        "description": "Cloud historical proof snapshot_sha256.",
      +        "example": "abababababababababababababababababababababababababababababababab",
      +        "examples": [
      +          "abababababababababababababababababababababababababababababababab"
      +        ],
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "date",
      +      "snapshot_filename",
      +      "ots_filename",
      +      "snapshot_json",
      +      "snapshot_sha256",
      +      "ots_sha256",
      +      "ots_proof_base64",
      +      "proof_status",
      +      "snapshot_download_url",
      +      "ots_download_url",
      +      "bundle_download_url"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / live_metrics
      Added value: +{
      +  "additionalProperties": true,
      +  "description": "Hal Finney Horizon tracker and 15 J/TH thermodynamic energy calculation. Horizon = $10,000,000 / btc_price_usd (a price multiple, not a forecast). Estimated network power in watts = (network_hashrate_h_s / 1e12) * 15. Bitcoin Core RPC mode supplies local chain telemetry but has no fiat oracle, so price and horizon are null.",
      +  "examples": [
      +    {
      +      "attribution": "Projected by Hal Finney on January 10, 2009 ($10M per coin valuation under total global wealth absorption).",
      +      "block_height": 920000,
      +      "btc_price_usd": 80000,
      +      "efficiency_baseline_j_th": 15,
      +      "hal_finney_horizon_multiple": 125,
      +      "hal_finney_horizon_target_usd": 10000000,
      +      "network_energy_watts": 15000000000,
      +      "network_hashrate_h_s": 1e+21,
      +      "network_hashrate_th_s": 1000000000,
      +      "observed_at_utc": "2026-10-12T00:00:00+00:00",
      +      "snapshot_age_seconds": 2
      +    }
      +  ],
      +  "properties": {
      +    "attribution": {
      +      "description": "Current pipeline attribution; not a value reconstructed from the historical video index.",
      +      "example": "Projected by Hal Finney on January 10, 2009 ($10M per coin valuation under total global wealth absorption).",
      +      "examples": [
      +        "Projected by Hal Finney on January 10, 2009 ($10M per coin valuation under total global wealth absorption)."
      +      ],
      +      "type": "string"
      +    },
      +    "block_height": {
      +      "description": "Current pipeline block_height; not a value reconstructed from the historical video index.",
      +      "example": 920000,
      +      "examples": [
      +        920000
      +      ],
      +      "type": "number"
      +    },
      +    "btc_price_usd": {
      +      "description": "Current pipeline btc_price_usd; not a value reconstructed from the historical video index.",
      +      "example": 80000,
      +      "examples": [
      +        80000
      +      ],
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "efficiency_baseline_j_th": {
      +      "description": "Current pipeline efficiency_baseline_j_th; not a value reconstructed from the historical video index.",
      +      "example": 15,
      +      "examples": [
      +        15
      +      ],
      +      "type": "number"
      +    },
      +    "hal_finney_horizon_multiple": {
      +      "description": "Current pipeline hal_finney_horizon_multiple; not a value reconstructed from the historical video index.",
      +      "example": 125,
      +      "examples": [
      +        125
      +      ],
      +      "type": [
      +        "number",
      +        "null"
      +      ]
      +    },
      +    "hal_finney_horizon_target_usd": {
      +      "description": "Current pipeline hal_finney_horizon_target_usd; not a value reconstructed from the historical video index.",
      +      "example": 10000000,
      +      "examples": [
      +        10000000
      +      ],
      +      "type": "number"
      +    },
      +    "network_energy_watts": {
      +      "description": "Current pipeline network_energy_watts; not a value reconstructed from the historical video index.",
      +      "example": 15000000000,
      +      "examples": [
      +        15000000000
      +      ],
      +      "type": "number"
      +    },
      +    "network_hashrate_h_s": {
      +      "description": "Current pipeline network_hashrate_h_s; not a value reconstructed from the historical video index.",
      +      "example": 1e+21,
      +      "examples": [
      +        1e+21
      +      ],
      +      "type": "number"
      +    },
      +    "network_hashrate_th_s": {
      +      "description": "Current pipeline network_hashrate_th_s; not a value reconstructed from the historical video index.",
      +      "example": 1000000000,
      +      "examples": [
      +        1000000000
      +      ],
      +      "type": "number"
      +    },
      +    "observed_at_utc": {
      +      "description": "Current pipeline observed_at_utc; not a value reconstructed from the historical video index.",
      +      "example": "2026-10-12T00:00:00+00:00",
      +      "examples": [
      +        "2026-10-12T00:00:00+00:00"
      +      ],
      +      "type": "string"
      +    },
      +    "snapshot_age_seconds": {
      +      "description": "Current pipeline snapshot_age_seconds; not a value reconstructed from the historical video index.",
      +      "example": 2,
      +      "examples": [
      +        2
      +      ],
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "block_height",
      +    "observed_at_utc",
      +    "btc_price_usd",
      +    "hal_finney_horizon_target_usd",
      +    "hal_finney_horizon_multiple",
      +    "attribution",
      +    "network_hashrate_h_s",
      +    "network_hashrate_th_s",
      +    "network_energy_watts",
      +    "efficiency_baseline_j_th",
      +    "snapshot_age_seconds"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / properties / proofAvailable / const
      Removed value: -false
    • changedOutput schema / properties / proofAvailable / description
      Previous value: -"False for indexed dataset source entries; no per-record ZK proof is stored in this dataset. Example: false."New value: +"True only if an archived JSON/OTS pair was returned."
    • changedOutput schema / properties / proofAvailable / example
      Previous value: -falseNew value: +true
    • changedOutput schema / properties / proofAvailable / examples
      Previous value: -[
      -  false
      -]New value: +[
      +  true
      +]
    • addedOutput schema / properties / proof_coverage
      Added value: +{
      +  "description": "Only exact archived JSON is covered by each receipt, never live metrics.",
      +  "example": "Exact archived snapshot_json only; changing live_metrics are not covered.",
      +  "examples": [
      +    "Exact archived snapshot_json only; changing live_metrics are not covered."
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / result / description
      Previous value: -"Selected compact string, minimal array or kv object; a date range returns an array of selected results. The hash is a SHA-256 record fingerprint, not a Bitcoin block hash or ZK proof. Example: \"HEIGHT:920000|DATE:2026-09-09|TM:125.83|HASH:0123456789abcdef\"."New value: +"compact text, minimal tuple, kv object, or arrays for bounded date ranges; hash is SHA-256 of exact archived JSON when available."
    • removedOutput schema / properties / result / example
      Removed value: -"HEIGHT:920000|DATE:2026-09-09|TM:125.83|HASH:0123456789abcdef"
    • changedOutput schema / properties / result / examples
      Previous value: -[
      -  "HEIGHT:920000|DATE:2026-09-09|TM:125.83|HASH:0123456789abcdef"
      -]New value: +[
      +  "HEIGHT:920000|DATE:2026-10-12T00:00:00+00:00|TM:125|HASH:abababababababababababababababababababababababababababababababab"
      +]
    • changedOutput schema / required
      Previous value: -[
      -  "result",
      -  "proofAvailable"
      -]New value: +[
      +  "result",
      +  "live_metrics",
      +  "historical_proofs",
      +  "proofAvailable",
      +  "archive_state",
      +  "proof_coverage"
      +]
  2. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations cover the read-only/idempotent/non-destructive profile, and the description adds the operationally critical detail they cannot: this is a paid L402 call and on HTTP 402 the agent must pay the invoice and retry with 'Authorization: L402 <macaroon>:<preimage>'. It also clarifies that hashes are SHA-256 of stored entry fields rather than Bitcoin block hashes, which prevents a plausible misreading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with what the tool returns, then routing guidance, then the payment caveat – a sensible priority order. The prose is dense but every sentence carries a distinct load; only the enumerating of sibling tools runs slightly long.

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?

An output schema exists so return values need not be explained, annotations carry the safety profile, and the description supplies the remaining gaps: format semantics, the hash-provenance caveat, the 'latest' pitfall, sibling routing, and the L402 payment flow. An agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the enum values, the '..' range syntax, the pattern, and the 'latest means latest dataset entry, not the live tip' caveat are already documented in the schema. The description restates the three formats and the target kinds without adding new syntax or defaults beyond that baseline.

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?

States a specific verb and resource ('Retrieve compact SHA-256 fingerprints and minimal telemetry tuples') plus the full accepted targeting scope (height, UTC date, or 'start..end' range). An agent can immediately distinguish this from stratigraphy.get, get_range, get_diff, and list without opening any schema.

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

Usage Guidelines5/5

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

Gives both a positive trigger ('verify state integrity or minimize token consumption when full payloads are unnecessary') and explicit alternatives with the condition that selects each: stratigraphy.get for full single records, get_range for full series, get_diff for deltas, stratigraphy.list for catalog browsing. Nothing is left to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources