Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BITCOIN_DATADIR | No | The Bitcoin data directory, used for auto-detecting authentication via the .cookie file. | |
| BITCOIN_NETWORK | No | The Bitcoin network to connect to (mainnet, testnet, signet, or regtest). | mainnet |
| SATOSHI_API_URL | No | Optional: The URL of a hosted Satoshi API instance to use instead of a local node. | |
| BITCOIN_RPC_HOST | No | The hostname or IP address of the Bitcoin node RPC server (e.g., 127.0.0.1). | |
| BITCOIN_RPC_PORT | No | The port number for the Bitcoin node RPC server (e.g., 8332). | |
| BITCOIN_RPC_USER | No | The username for Bitcoin RPC authentication. | |
| BITCOIN_RPC_PASSWORD | No | The password for Bitcoin RPC authentication. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_node_status | Get Bitcoin network status: chain, height, sync progress, disk usage, connections, version. In hosted API mode, reflects the API server's node. |
| get_peer_info | Get connected peer details: addresses, latency, services, version. In hosted API mode, shows the API server's peers. |
| get_network_info | Get network info: protocol version, relay fee, connections, warnings. In hosted API mode, reflects the API server's network view. |
| get_blockchain_info | Get blockchain info: chain, difficulty, softfork statuses, chain work, pruning. |
| analyze_block | Analyze a block: mining pool, SegWit/Taproot adoption, fee distribution, revenue. Args: height_or_hash: Block height (e.g. "939290") or block hash |
| get_block_stats | Get raw block statistics: median fee, total output, subsidy, weight, tx count. Args: height: Block height |
| get_chain_tx_stats | Get transaction rate statistics over N blocks. Args: nblocks: Number of blocks to average over (default 2016 = ~2 weeks) |
| get_chain_tips | Get chain tips: active chain, forks, and stale branches. Useful for detecting chain splits. |
| search_blocks | Get block statistics for a range of heights. Max 10 blocks. Args: start_height: Starting block height (inclusive) end_height: Ending block height (inclusive) |
| analyze_mempool | Analyze the mempool: tx count, fee buckets, congestion level, next-block minimum fee. |
| get_mempool_entry | Get details of a specific unconfirmed transaction in the mempool. Args: txid: Transaction hash (64 hex characters) |
| get_mempool_info | Get quick mempool stats: transaction count, size in bytes, min relay fee. |
| get_mempool_ancestors | Get all unconfirmed ancestor transactions of a mempool transaction. Useful for CPFP analysis. Args: txid: Transaction hash (64 hex characters) |
| analyze_transaction | Decode and analyze a transaction: inputs, outputs, fee rate, SegWit/Taproot flags, inscription detection. Args: txid: Transaction hash (64 hex characters). Local nodes need txindex=1 for confirmed txs; the hosted API handles this automatically. |
| decode_raw_transaction | Decode a raw transaction hex without looking up inputs. Args: hex_string: Raw transaction in hex format |
| check_utxo | Check if a specific transaction output is unspent (UTXO lookup). Args: txid: Transaction hash vout: Output index |
| send_raw_transaction | Broadcast a signed raw transaction to the Bitcoin network. WARNING: This sends a REAL transaction. Once broadcast, it cannot be reversed. Ensure the transaction is correctly signed and you understand the fee implications. In hosted API mode, the transaction is broadcast through the Satoshi API's node. Args: hex_string: Signed raw transaction in hex format max_fee_rate: Maximum fee rate in BTC/kvB to prevent accidental overpayment (default 0.10) |
| get_fee_estimates | Get fee rate estimates for 1/3/6/25/144 block confirmation targets in sat/vB. |
| get_fee_recommendation | Get a plain-English fee recommendation based on current estimates, with raw rate data. |
| estimate_smart_fee | Get fee estimate for a specific confirmation target. Args: conf_target: Number of blocks for confirmation (1-1008) |
| compare_fee_estimates | Compare fee estimates side-by-side with urgency labels and cost for a typical 140 vB transaction. |
| estimate_transaction_cost | Estimate Bitcoin transaction cost in sats AND USD at different urgency levels. Supports address types: p2pkh (legacy), p2sh-p2wpkh (nested segwit), p2wpkh (native segwit), p2tr (taproot). Shows how much you save by waiting. |
| get_mining_info | Get mining info: difficulty, network hashrate, current block size. |
| analyze_next_block | Predict next block: transactions, weight utilization, miner revenue, fee percentiles, top-fee txs. |
| get_mining_pool_rankings | Get top 10 Bitcoin mining pools by hashrate share over the last week. Returns pool name, percentage of total hashrate, and block count. Use this to understand mining centralization and pool dominance. |
| get_utxo_set_info | Get UTXO set statistics: total UTXOs, total supply, disk size. Note: this is a slow operation (1-2 minutes on local nodes, may vary on hosted API). |
| get_block_count | Get current block height (lightweight, fast). |
| get_situation_summary | Get a quick Bitcoin briefing: price, fees, mempool, and chain tip in one call. Use this as your first call to understand current conditions — replaces calling 5+ tools separately. |
| describe_rpc_command | Get structured help for a Bitcoin RPC command: description, arguments, examples. Args: command: RPC command name (e.g. "getblock", "sendrawtransaction") |
| list_rpc_commands | List all available RPC commands grouped by category. |
| search_blockchain | Smart search: auto-detects if query is a txid, block hash, block height, or address and returns the right data. Args: query: A txid (64 hex), block hash (64 hex starting with 0000), block height (number), or Bitcoin address |
| explain_script | Decode a Bitcoin Script hex and break down the opcodes. Args: hex_script: Script in hex format |
| get_address_utxos | Scan the UTXO set for all unspent outputs belonging to an address. Note: scans full UTXO set, may take minutes. Args: address: Bitcoin address to scan |
| validate_address | Validate a Bitcoin address and return its type (legacy/segwit/taproot), network, and script info. Use this to check if an address is valid before sending, or to identify what kind of address you're looking at. Args: address: Bitcoin address to validate (any format: P2PKH, P2SH, P2WPKH, P2WSH, P2TR) |
| get_difficulty_adjustment | Calculate difficulty adjustment progress: blocks into epoch, blocks remaining, estimated time, and projected adjustment. |
| compare_blocks | Compare block statistics between two block heights side by side. Args: height1: First block height height2: Second block height |
| get_btc_price | Get current BTC/USD price from CoinGecko (free, no API key). Returns price, 24h change, and market cap. Use this to convert sat/vB fees into dollar amounts. |
| get_supply_info | Get Bitcoin supply data: circulating supply, max supply, inflation rate, subsidy per block, and next halving estimate. |
| get_halving_countdown | Get a focused countdown to the next Bitcoin halving: blocks remaining, estimated date, and subsidy change. |
| get_market_sentiment | Get Bitcoin Fear & Greed Index: current value (0-100), classification (Extreme Fear/Fear/Neutral/Greed/Extreme Greed), and 7-day history. Use this to gauge market sentiment alongside price data. |
| decode_bolt11_invoice | Decode a BOLT11 Lightning invoice without external dependencies. Parses the human-readable part to extract network, amount, and timestamp. Does NOT verify the signature or parse tagged fields beyond basic extraction. Args: invoice: BOLT11 payment request string (starts with lnbc, lntb, or lnbcrt) |
| generate_keypair | Generate a new Bitcoin address via the connected node's wallet. Requires a local node with a wallet loaded — not available when using the hosted Satoshi API. SECURITY: Private keys are redacted by default because AI provider tool responses may be logged. Set include_private_key=True only if you understand the risk — the key will appear in your conversation history and should be considered potentially compromised for high-value use. Args: address_type: Address type — "legacy" (P2PKH), "p2sh-segwit" (P2SH-P2WPKH), "bech32" (P2WPKH, default), or "bech32m" (P2TR taproot) include_private_key: If True, include the WIF private key in the response. Defaults to False for security. |
| get_address_balance | Get the total balance, transaction count, and first/last seen times for a Bitcoin address. Uses the Satoshi API blockchain indexer when available, falls back to mempool.space. Returns total received, total sent, current balance, tx count, and timestamps. Args: address: Bitcoin address (any format: legacy, P2SH, bech32, bech32m) |
| get_address_history | Get paginated transaction history for a Bitcoin address. Uses the Satoshi API blockchain indexer when available, falls back to mempool.space. Shows each transaction with block height, timestamp, and net value change for the address. Results are ordered newest-first. Args: address: Bitcoin address (any format) offset: Skip this many transactions (for pagination, default 0) limit: Max transactions to return (default 25, max 100) |
| get_indexed_transaction | Get enriched transaction details from the blockchain indexer. Unlike analyze_transaction (which uses raw RPC), this returns resolved input addresses, spent/unspent status for each output, and block context. Falls back to mempool.space when the indexer is unavailable. Args: txid: Transaction ID (64-character hex string) |
| get_indexer_status | Check the blockchain indexer sync progress. Returns current indexed height, chain tip, sync percentage, blocks/sec, and ETA. Use this to check if the indexer is running and how far along the initial sync is. |
| analyze_psbt_security | Analyze a PSBT for ordinals inscription listing mempool sniping vulnerability. Detects whether an ordinals listing PSBT is vulnerable to front-running in the mempool. A listing is VULNERABLE when it uses SIGHASH_SINGLE|ANYONECANPAY without a 2-of-2 multisig locking step — an attacker can redirect the inscription before confirmation. A listing is PROTECTED when the inscription is locked in a 2-of-2 P2WSH multisig and the marketplace co-signs with SIGHASH_ALL, preventing any transaction modification. No Bitcoin node required — analysis is pure PSBT parsing (BIP 174). Args: psbt_hex: Hex-encoded PSBT string (BIP 174 v0) |
| explain_inscription_listing_security | Explain in plain language whether an ordinals inscription listing is snipe-resistant. Analyzes the PSBT and returns a human-readable explanation of:
Use this when you need a clear explanation for a developer or marketplace operator rather than raw analysis data. Args: psbt_hex: Hex-encoded PSBT string (BIP 174 v0) |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| analyze_fee_environment | Analyze the current Bitcoin fee environment and make a send/wait recommendation. |
| investigate_transaction | Deep-dive investigation of a specific Bitcoin transaction. |
| monitor_mempool_fees | Monitor mempool and alert when fees drop below a threshold. |
| taproot_adoption_report | Analyze Taproot (P2TR) adoption trends over recent blocks. |
| network_health_report | Generate a comprehensive Bitcoin network health report. |
| track_transaction | Track a transaction from mempool to confirmation. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| resource_connection_status | Connection status: mode (local node or hosted API), network, and whether the connection is working. |
| resource_node_status | Current status summary of the connected Bitcoin node (local or hosted API). |
| resource_current_fees | Current fee estimates. |
| resource_mempool_snapshot | Current mempool summary. |
| resource_script_opcodes | Common Bitcoin Script opcodes reference. |
| resource_address_types | Bitcoin address types and their properties. |
| resource_sighash_types | Bitcoin signature hash types reference. |