# Bitview

> Read-only Bitcoin blockchain, mempool, mining, market, and on-chain analytics; no API key.

- name: io.github.bitcoinresearchkit/bitview
- version: 0.12.2
- connection class: R0 (autonomous)
- trust: 93/100
- quality: 94/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.bitcoinresearchkit%2Fbitview
- tools: https://api.protogrid.dev/v1/servers/io.github.bitcoinresearchkit%2Fbitview/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "bitview": {
      "type": "http",
      "url": "https://mcp.bitview.space/"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 97
- freshness: 85
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-94% ~updated-48d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 94/100 (strong)

### protocol: 100 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- pass `protocol.list_ttl`: tool list is cacheable (ttlMs 3600000)

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 86 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 79 of 79 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- warn `tools.token_cost`: about 18,014 tokens to load every tool
- warn `tools.api_dump`: 79 tools, 97% named like REST operations: looks like an API mapped one endpoint per tool

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 79, about 18,014 tokens to load them all
- tool set hash: d1e38d05759e086d568ef04bc12fa264
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.bitcoinresearchkit/bitview.svg)](https://protogrid.dev/servers/io.github.bitcoinresearchkit/bitview)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://mcp.bitview.space/ (streamable-http, auth none, reachable true, uptime30d 0.9351852)

## Packages

_none_

## Tools (79)

- `get_address`: Retrieve address information including current balance and transaction counts. Supports all standard Bitcoin address types (P2PKH, P2SH, P2WPKH, P2WSH, P2TR).

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-address)*

REST operation: `GET /api/address/{address}`.
- `get_address_confirmed_txs`: Get the first 25 confirmed transactions for an address. For pagination, request `GET /api/address/{address}/txs/chain/{after_txid}` with the last returned txid.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-address-transactions-chain)*

REST operation: `GET /api/address/{address}/txs/chain`.
- `get_address_confirmed_txs_after`: Get the next 25 confirmed transactions strictly older than `after_txid` (Esplora-canonical pagination form, matches mempool.space).

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-address-transactions-chain)*

REST operation: `GET /api/address/{address}/txs/chain/{after_txid}`.
- `get_address_hash_prefix_matches`: Find addresses by address type and by the first 1-16 hex nibbles of RapidHash v3 over the raw address payload bytes. Intended for privacy-preserving client-side wallet discovery without sending raw addresses or xpubs. Fetch metadata with `GET /api/address/{address}`.

REST operation: `GET /api/address/hash-prefix/{addr_type}/{prefix}`.
- `get_address_mempool_txs`: Get unconfirmed transactions for an address from the mempool, newest first (up to 50).

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-address-transactions-mempool)*

REST operation: `GET /api/address/{address}/txs/mempool`.
- `get_address_txs`: Get transaction history for an address, newest first. Returns up to 50 mempool transactions plus a confirmed page sized to fill the response to 50 total (chain floor of 25, so 25-50 confirmed depending on mempool weight). To paginate further confirmed history, request `GET /api/address/{address}/txs/chain/{after_txid}` with the last returned txid.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-address-transactions)*

REST operation: `GET /api/address/{address}/txs`.
- `get_address_utxos`: Get unspent transaction outputs (UTXOs) for an address. Returns txid, vout, value, and confirmation status for each UTXO.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-address-utxo)*

REST operation: `GET /api/address/{address}/utxo`.
- `get_block`: Retrieve block information by block hash. Returns block metadata including height, timestamp, difficulty, size, weight, and transaction count.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-block)*

REST operation: `GET /api/block/{hash}`.
- `get_block_by_height`: Retrieve the block hash at a given height. Returns the hash as plain text.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-height)*

REST operation: `GET /api/block-height/{height}`.
- `get_block_by_timestamp`: Find the block closest to a given UNIX timestamp.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-timestamp)*

REST operation: `GET /api/v1/mining/blocks/timestamp/{timestamp}`.
- `get_block_fee_rates`: Get block fee rate percentiles (min, 10th, 25th, median, 75th, 90th, max) for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-feerates)*

REST operation: `GET /api/v1/mining/blocks/fee-rates/{time_period}`.
- `get_block_fees`: Get average total fees per block for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-fees)*

REST operation: `GET /api/v1/mining/blocks/fees/{time_period}`.
- `get_block_header`: Returns the hex-encoded 80-byte block header.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-header)*

REST operation: `GET /api/block/{hash}/header`.
- `get_block_rewards`: Get average coinbase reward (subsidy + fees) per block for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-rewards)*

REST operation: `GET /api/v1/mining/blocks/rewards/{time_period}`.
- `get_blocks`: Retrieve the last 10 blocks. Returns block metadata for each block.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-blocks)*

REST operation: `GET /api/blocks`.
- `get_blocks_from_height`: Retrieve up to 10 blocks going backwards from the given height. For example, height=100 returns blocks 100, 99, 98, ..., 91. Height=0 returns only block 0.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-blocks)*

REST operation: `GET /api/blocks/{height}`.
- `get_block_sizes_weights`: Get average block sizes and weights for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-sizes-weights)*

REST operation: `GET /api/v1/mining/blocks/sizes-weights/{time_period}`.
- `get_block_status`: Retrieve the status of a block. Returns whether the block is in the best chain and, if so, its height and the hash of the next block.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-status)*

REST operation: `GET /api/block/{hash}/status`.
- `get_blocks_v1`: Retrieve the last 15 blocks with extended data including pool identification and fee statistics.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-blocks-v1)*

REST operation: `GET /api/v1/blocks`.
- `get_blocks_v1_from_height`: Retrieve up to 15 blocks with extended data going backwards from the given height.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-blocks-v1)*

REST operation: `GET /api/v1/blocks/{height}`.
- `get_block_tip_hash`: Returns the hash of the last block.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-tip-hash)*

REST operation: `GET /api/blocks/tip/hash`.
- `get_block_tip_height`: Returns the height of the last block.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-tip-height)*

REST operation: `GET /api/blocks/tip/height`.
- `get_block_txid`: Retrieve a single transaction ID at a specific index within a block. Returns plain text txid.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-transaction-id)*

REST operation: `GET /api/block/{hash}/txid/{index}`.
- `get_block_txs_from_index`: Retrieve transactions in a block by block hash, starting from the specified index. Returns up to 25 transactions at a time.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-transactions)*

REST operation: `GET /api/block/{hash}/txs/{start_index}`.
- `get_block_v1`: Returns block details with extras by hash.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-block-v1)*

REST operation: `GET /api/v1/block/{hash}`.
- `get_cpfp`: Returns ancestors and descendants for a CPFP (Child Pays For Parent) transaction, including the effective fee rate of the package.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-children-pay-for-parent)*

REST operation: `GET /api/v1/cpfp/{txid}`.
- `get_difficulty_adjustment`: Get current difficulty adjustment progress and estimates.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-difficulty-adjustment)*

REST operation: `GET /api/v1/difficulty-adjustment`.
- `get_difficulty_adjustments`: Get historical difficulty adjustments including timestamp, block height, difficulty value, and percentage change.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-difficulty-adjustments)*

REST operation: `GET /api/v1/mining/difficulty-adjustments`.
- `get_difficulty_adjustments_by_period`: Get historical difficulty adjustments for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-difficulty-adjustments)*

REST operation: `GET /api/v1/mining/difficulty-adjustments/{time_period}`.
- `get_fullrbf_replacements`: Same response shape as `GET /api/v1/replacements`, but limited to trees where at least one predecessor was non-signaling (full-RBF).

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-fullrbf-replacements)*

REST operation: `GET /api/v1/fullrbf/replacements`.
- `get_hashrate`: Get network hashrate and difficulty data for all time.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-hashrate)*

REST operation: `GET /api/v1/mining/hashrate`.
- `get_hashrate_by_period`: Get network hashrate and difficulty data for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-hashrate)*

REST operation: `GET /api/v1/mining/hashrate/{time_period}`.
- `get_historical_price`: Get historical BTC/USD price. Optionally specify a UNIX timestamp to get the price at that time.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-historical-price)*

REST operation: `GET /api/v1/historical-price`.
- `get_indexes`: Returns all available indexes with their accepted query aliases. Use any alias when querying series.

REST operation: `GET /api/series/indexes`.
- `get_mempool`: Get current mempool statistics including transaction count, total vsize, total fees, and fee histogram.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-mempool)*

REST operation: `GET /api/mempool`.
- `get_mempool_blocks`: Projected blocks for fee estimation. Block 0 reflects Bitcoin Core's actual next-block selection; blocks 1+ are a fee-tier approximation.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-mempool-blocks-fees)*

REST operation: `GET /api/v1/fees/mempool-blocks`.
- `get_mempool_hash`: Returns an opaque hash that changes whenever the projected next block changes. Same value as the mempool ETag. Useful as a freshness/liveness signal: if it stays constant for tens of seconds on a live network, the mempool sync loop has stalled.

REST operation: `GET /api/mempool/hash`.
- `get_mempool_recent`: Get the last 10 transactions to enter the mempool.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-mempool-recent)*

REST operation: `GET /api/mempool/recent`.
- `get_oracle_histogram_outputs`: Unfiltered output value histogram for a confirmed point. A block height (`840000`) gives every output in that block, coinbase included, binned by value on the oracle log scale; a calendar date (`YYYY-MM-DD`) sums every block that day. A flat array of log-scale bins.

REST operation: `GET /api/oracle/histogram/outputs/{point}`.
- `get_oracle_histogram_outputs_live`: Live unfiltered output value histogram for the forming mempool block. Every live output is binned by value on the oracle log scale; no oracle payment filters are applied. A flat array of log-scale bins, all zero when no mempool is configured.

REST operation: `GET /api/oracle/histogram/outputs/live`.
- `get_oracle_histogram_payments`: Smoothed histogram of oracle-eligible payment outputs for a confirmed point. A block height (`840000`) gives that block's oracle payment histogram; a calendar date (`YYYY-MM-DD`) gives the average of that day's per-block payment histograms. A flat array of log-scale bins.

REST operation: `GET /api/oracle/histogram/payments/{point}`.
- `get_oracle_histogram_payments_live`: Live smoothed histogram of oracle-eligible payment outputs, binned by output value on the oracle log scale. It combines the committed oracle window with the forming mempool block. A flat array of log-scale bins.

REST operation: `GET /api/oracle/histogram/payments/live`.
- `get_pool`: Get detailed information about a specific mining pool including block counts and shares for different time periods.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pool)*

REST operation: `GET /api/v1/mining/pool/{slug}`.
- `get_pool_blocks`: Get the 10 most recent blocks mined by a specific pool.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pool-blocks)*

REST operation: `GET /api/v1/mining/pool/{slug}/blocks`.
- `get_pool_blocks_from`: Get 10 blocks mined by a specific pool before (and including) the given height.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pool-blocks)*

REST operation: `GET /api/v1/mining/pool/{slug}/blocks/{height}`.
- `get_pool_hashrate`: Get hashrate history for a specific mining pool.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pool-hashrate)*

REST operation: `GET /api/v1/mining/pool/{slug}/hashrate`.
- `get_pools`: Get list of all known mining pools with their identifiers.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pools)*

REST operation: `GET /api/v1/mining/pools`.
- `get_pools_hashrate`: Get hashrate data for all mining pools.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pool-hashrates)*

REST operation: `GET /api/v1/mining/hashrate/pools`.
- `get_pools_hashrate_by_period`: Get hashrate data for all mining pools for a time period. Valid periods: `1m`, `3m`, `6m`, `1y`, `2y`, `3y`.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pool-hashrates)*

REST operation: `GET /api/v1/mining/hashrate/pools/{time_period}`.
- `get_pool_stats`: Get mining pool statistics for a time period. Valid periods: `24h`, `3d`, `1w`, `1m`, `3m`, `6m`, `1y`, `2y`, `3y`.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-mining-pools)*

REST operation: `GET /api/v1/mining/pools/{time_period}`.
- `get_precise_fees`: Recommended fee rates by confirmation target, with up to three decimal places and support for sub-sat/vB rates.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-recommended-fees-precise)*

REST operation: `GET /api/v1/fees/precise`.
- `get_prices`: Returns bitcoin latest price (on-chain derived, USD only).

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-price)*

REST operation: `GET /api/v1/prices`.
- `get_replacements`: Returns up to 25 most-recent RBF replacement trees across the whole mempool. Each entry has the same shape as `tx_rbf().replacements`.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-replacements)*

REST operation: `GET /api/v1/replacements`.
- `get_reward_stats`: Get mining reward statistics for the last N blocks including total rewards, fees, and transaction count.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-reward-stats)*

REST operation: `GET /api/v1/mining/reward-stats/{block_count}`.
- `get_series`: Fetch data for a specific series at the given index. Use query parameters to filter by date range and format (json/csv).

REST operation: `GET /api/series/{series}/{index}`.
- `get_series_bulk`: Fetch multiple series in a single request. Supports filtering by index and date range. Returns an array of SeriesData objects. For a single series, use `get_series` instead.

REST operation: `GET /api/series/bulk`.
- `get_series_count`: Returns the number of series available per index type.

REST operation: `GET /api/series/count`.
- `get_series_info`: Returns the optional description, supported indexes, and value type for the specified series.

REST operation: `GET /api/series/{series}`.
- `get_series_latest`: Returns the single most recent value for a series, unwrapped (not inside a SeriesData object).

REST operation: `GET /api/series/{series}/{index}/latest`.
- `get_series_len`: Returns the total number of data points for a series at the given index.

REST operation: `GET /api/series/{series}/{index}/len`.
- `get_series_version`: Returns the current version of a series. Changes when the series data is updated.

REST operation: `GET /api/series/{series}/{index}/version`.
- `get_sync_status`: Returns the sync status of the indexer, including indexed height, tip height, blocks behind, and last indexed timestamp.

REST operation: `GET /api/server/sync`.
- `get_transaction_times`: Returns timestamps when transactions were first seen in the mempool. Returns 0 for mined or unknown transactions.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-times)*

REST operation: `GET /api/v1/transaction-times`.
- `get_tx`: Retrieve complete transaction data by transaction ID (txid). Returns inputs, outputs, fee, size, and confirmation status.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction)*

REST operation: `GET /api/tx/{txid}`.
- `get_tx_by_index`: Retrieve the transaction ID (txid) at a given global transaction index. Returns the txid as plain text.

REST operation: `GET /api/tx-index/{index}`.
- `get_tx_hex`: Retrieve the raw transaction as a hex-encoded string. Returns the serialized transaction in hexadecimal format.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-hex)*

REST operation: `GET /api/tx/{txid}/hex`.
- `get_tx_merkleblock_proof`: Get the merkleblock proof for a transaction (BIP37 format, hex encoded).

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-merkleblock-proof)*

REST operation: `GET /api/tx/{txid}/merkleblock-proof`.
- `get_tx_merkle_proof`: Get the merkle inclusion proof for a transaction.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-merkle-proof)*

REST operation: `GET /api/tx/{txid}/merkle-proof`.
- `get_tx_outspend`: Get the spending status of a transaction output. Returns whether the output has been spent and, if so, the spending transaction details.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-outspend)*

REST operation: `GET /api/tx/{txid}/outspend/{vout}`.
- `get_tx_outspends`: Get the spending status of all outputs in a transaction. Returns an array with the spend status for each output.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-outspends)*

REST operation: `GET /api/tx/{txid}/outspends`.
- `get_tx_rbf`: Returns the RBF replacement tree for a transaction, if any. Both `replacements` and `replaces` are null when the tx has no known RBF history within the mempool monitor's retention window.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-rbf-history)*

REST operation: `GET /api/v1/tx/{txid}/rbf`.
- `get_tx_status`: Retrieve the confirmation status of a transaction. Returns whether the transaction is confirmed and, if so, the block height, hash, and timestamp.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-transaction-status)*

REST operation: `GET /api/tx/{txid}/status`.
- `get_urpd`: URPD for the most recent available date in the cohort. The response's `date` field echoes which date was served. Returns `{ cohort, date, weight, aggregation, close, total_supply, buckets }`. `close` and each bucket's `price_floor`, `realized_cap`, and `unrealized_pnl` are USD; `total_supply` and bucket `supply` are BTC. `unrealized_pnl` can be negative.

REST operation: `GET /api/urpd/{cohort}`.
- `get_urpd_at`: URPD for a (cohort, date) pair. Returns `{ cohort, date, weight, aggregation, close, total_supply, buckets }` where each bucket is `{ price_floor, supply, realized_cap, unrealized_pnl }`. `close`, `price_floor`, `realized_cap`, and `unrealized_pnl` are USD; `total_supply` and `supply` are BTC. `unrealized_pnl` can be negative.

REST operation: `GET /api/urpd/{cohort}/{date}`.
- `list_series`: Paginated flat list of all available series names. Use `page` query param for pagination.

REST operation: `GET /api/series/list`.
- `list_urpd_cohorts`: Cohorts for which URPD data is available. Returns names like `all`, `sth`, `lth`, `utxos_under_1h_old`.

REST operation: `GET /api/urpd`.
- `list_urpd_dates`: Dates for which a URPD snapshot is available for the cohort and selected `weight`. One entry per UTC day, sorted ascending.

REST operation: `GET /api/urpd/{cohort}/dates`.
- `search_series`: Search series by name or descriptive terms. Matches metric names, descriptions, formulas, cohort aliases, partial words, and common typos.

REST operation: `GET /api/series/search`.
- `validate_address`: Validate a Bitcoin address and get information about its type and scriptPubKey. Returns `isvalid: false` with an error message for invalid addresses.

*[Mempool.space docs](https://mempool.space/docs/api/rest#get-address-validate)*

REST operation: `GET /api/v1/validate-address/{address}`.
