# BTC.com API MCP

> BTC.com API provides a single connection point for deep Bitcoin blockchain analysis. It lets your agent read real-time data on everything from block heights and specific transactions to an address's entire history. Plus, it monitors mining pool health, giving you current hashrate metrics and worker performance stats.

## Overview
- **Category:** data-analytics
- **Price:** Free
- **Tags:** bitcoin, blockchain-explorer, mining-pool, crypto-api, hashrate-monitor

## Description

This MCP connects your AI client directly to the Bitcoin network's raw data and a professional mining pool dashboard. You can check any block, track every transaction that passes through a specific address, or pull up the full history of unspent outputs (UTXOs). It’s not just for looking at coin balances; you can also monitor your entire mining operation—checking worker uptime, historical hashrate trends, and payment receipts. If you're building anything with blockchain data, this is it. Vinkius makes sure that once you connect to the catalog, you get access to all these specialized crypto endpoints without having to manage multiple keys or connections.

## Tools

### get_account_stats
Retrieves the current hashrate and performance statistics for your mining account.

### get_address_summary
Provides a quick overview of an address's total balance and transaction count.

### get_address_transactions
Fetches the full list of transactions associated with a specific Bitcoin address.

### get_address_utxo
Identifies and retrieves all unspent transaction outputs (UTXOs) for an account.

### get_block
Gathers detailed information about a Bitcoin block using either its unique hash or height number.

### get_block_transactions
Lists all the transactions contained within a specific, identified block.

### get_hashrate_history
Retrieves historical data points showing how your mining hashrate has changed over time.

### get_latest_block
Gets the most recent block information from the Bitcoin network instantly.

### get_payment_history
Pulls a record of past payments and financial statistics linked to your account.

### get_transaction
Retrieves the full details for any specific Bitcoin transaction, including inputs and outputs.

### get_unconfirmed_transactions
Lists transactions that are pending and waiting to be added to a block.

### get_worker_list
Provides a list of every mining worker currently registered to your pool account.

### get_worker_stats
Gathers specific performance metrics and status data for individual mining workers.

## Prompt Examples

**Prompt:** 
```
Get the latest block information from the Bitcoin network.
```

**Response:** 
```
I've retrieved the latest block. Height: 834291, Hash: 0000000000000000000... It contains 3,421 transactions and was mined at...
```

**Prompt:** 
```
Show me the balance and summary for Bitcoin address 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa.
```

**Response:** 
```
Using `get_address_summary`, I found that this address has a total balance of 99.98 BTC with 1,204 transactions recorded.
```

**Prompt:** 
```
List all my active mining workers and their current hashrate.
```

**Response:** 
```
I've fetched your worker list. You have 12 active workers. Worker 'Antminer_S19_01' is currently hashing at 104 TH/s.
```

## Capabilities

### Analyze Block Structure
You pull detailed information about any specific block using its hash or height.

### Trace Address History
You fetch a complete record of all transactions and current balances for any Bitcoin address.

### Monitor Mining Performance
You retrieve real-time stats like hashrate, worker status, and historical performance records from your pool account.

### Check Unconfirmed Activity
You review pending transactions sitting in the mempool before they are included in a block.

## Use Cases

### Auditing Funds Movement
A financial analyst needs to prove where funds originated and ended up. They ask their agent to get all transactions for a source address using `get_address_transactions`, then use the resulting hashes to pull detailed data via `get_transaction` to confirm the final recipient block.

### Investigating Network Lag
A developer notices a transaction seems stuck. They first check `get_unconfirmed_transactions` for pending activity, then use `get_block` and `get_latest_block` to see if the network is currently processing blocks faster or slower than expected.

### Optimizing Farm Capacity
A mining operator needs to know which units are struggling. They run `get_worker_list` and then use `get_worker_stats` on each unit to pinpoint exactly which machines have low hashrate or high rejection rates.

### Calculating Total Wealth
A data scientist needs a true measure of an address's liquid wealth. They run `get_address_utxo` first, and then use the resulting UTXO hashes to pull all associated transactions using `get_transaction`.

## Benefits

- Instead of cross-referencing a block explorer with your mining dashboard, you can use this MCP to get both sets of data in one query. For example, checking the `get_latest_block` status alongside your worker stats.
- Stop guessing where money went. You can trace an address's full journey by combining `get_address_summary` with specific transaction checks using `get_transaction`.
- Keep your farm running optimally. Use `get_worker_list` and `get_worker_stats` to instantly spot inactive or underperforming miners, letting you troubleshoot without logging into a separate platform.
- Move beyond simple balances. By calling `get_address_utxo`, you see the raw, unspent components of an address's value, which is critical for deep financial analysis.
- When tracking payouts, combine `get_payment_history` with block data. This lets you confirm that a payment recorded on your dashboard actually made it into the public ledger.

## How It Works

The bottom line is you get direct access to both public blockchain records and private mining pool metrics through one unified connection.

1. First, you subscribe to the MCP and provide your BTC.com Access Key if you need mining pool data.
2. Next, you ask your AI client to perform a specific query, like 'What was the hashrate last week?' or 'Show me transactions for this address.'
3. The MCP executes the appropriate tool call using the API and returns clean, structured data that your agent can use directly.

## Frequently Asked Questions

**How do I check my mining hashrate history using get_hashrate_history?**
You simply ask your agent to retrieve the hashrate history. The tool provides time-series data, letting you see how stable or volatile your pool's performance has been over days or weeks.

**Do I need get_account_stats for every query?**
No, not always. `get_account_stats` gives an overview. If you want to know the specific transactions that led to a balance change, use `get_address_transactions` instead.

**What is the difference between get_transaction and get_block_transactions?**
`get_block_transactions` lists all activity within one single block. `get_transaction` lets you focus on one specific transaction, giving you its full input/output breakdown.

**Can I use this MCP to track payments received via get_payment_history?**
Yes, the MCP supports that by calling `get_payment_history`. This allows your agent to pull a record of past financial activity directly from your pool account.

**How do I use get_address_utxo to check if a Bitcoin address has funds ready for immediate spending?**
It provides the exact unspent transaction outputs (UTXOs) tied to an address. This is critical because it tells you precisely which chunks of BTC are available right now, rather than just giving a total balance figure.

**What happens if I try to run get_worker_list without setting the required BTC.com Access Key?**
The function will fail authentication because it requires credentials. You must set your access key first before calling get_worker_list or any other pool-related tool.

**How do I use get_unconfirmed_transactions to see pending activity on the blockchain?**
It retrieves data from the mempool, showing transactions that have been broadcast but not yet included in a finalized block. This helps track network congestion and pending payments.

**What is the difference between get_address_summary and using get_address_transactions?**
The summary gives you high-level metrics, like total balance and transaction count. However, get_address_transactions provides a full list of every single historical transaction associated with that address.

**Can I check the balance of a specific Bitcoin address without an API key?**
Yes. Explorer tools like `get_address_summary` and `get_address_transactions` are public and do not require a BTC_COM_ACCESS_KEY.

**How do I monitor the status of my mining workers?**
You can use `get_worker_list` to see all workers and their status (Active/Inactive/Dead), or `get_worker_stats` with a specific Worker ID for detailed metrics.

**Does this server support unconfirmed transactions?**
Yes, the `get_unconfirmed_transactions` tool allows you to fetch a list of transactions currently in the Bitcoin mempool.