Maestro Bitcoin Skill
A comprehensive skill for interacting with the Bitcoin blockchain through the Maestro API platform, providing access to 7 distinct API services with 119 total endpoints.
Overview
This skill provides complete access to Maestro's Bitcoin API suite:
- Blockchain Indexer API (37 endpoints) - Real-time UTXO data with metaprotocol support
- Esplora API (29 endpoints) - Blockstream-compatible REST API
- Node RPC API (24 endpoints) - JSON-RPC protocol access
- Event Manager API (9 endpoints) - Real-time webhooks and monitoring
- Market Price API (8 endpoints) - OHLC data and price analytics
- Mempool Monitoring API (9 endpoints) - Mempool-aware operations
- Wallet API (6 endpoints) - Address-level activity tracking
Key Capabilities
- Query addresses, transactions, blocks, and UTXOs
- Broadcast transactions with multiple methods
- Track BRC20 tokens, Runes, and Inscriptions (Ordinals)
- Monitor mempool and estimate fees
- Set up webhooks for blockchain events
- Access market price data and DEX trading info
- Mempool-aware balance and UTXO queries
- Historical balance tracking
- Collection and metaprotocol statistics
Configuration
API Key Setup
This skill requires a Maestro API Key. Set the MAESTRO_API_KEY environment variable:
export MAESTRO_API_KEY="your_api_key_here"
Add to ~/.bashrc or ~/.zshrc for persistence:
echo 'export MAESTRO_API_KEY="your_api_key_here"' >> ~/.bashrc
source ~/.bashrc
Getting an API Key
- Sign up at Maestro Dashboard
- Create a new project
- Select Bitcoin as the blockchain
- Select your network (Mainnet or Testnet4)
- Copy the API key from your project dashboard
Network Configuration
The skill supports both mainnet and testnet. Set MAESTRO_NETWORK to switch:
# Use mainnet (default)
export MAESTRO_NETWORK="mainnet"
# Use testnet4
export MAESTRO_NETWORK="testnet"
Usage
Primary Interface: Shell Script
The main interface is through scripts/call_maestro.sh, which provides access to all 7 API services.
Quick Examples
# Get latest block height
./scripts/call_maestro.sh get-latest-height
# Get address balance
./scripts/call_maestro.sh get-balance bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh
# Get address UTXOs
./scripts/call_maestro.sh get-utxos bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh
# Get transaction details
./scripts/call_maestro.sh get-tx <tx_hash>
# Broadcast transaction
./scripts/call_maestro.sh broadcast-tx <hex_tx>
# Get mempool info
./scripts/call_maestro.sh get-mempool-info
# Estimate fee for 6 blocks
./scripts/call_maestro.sh estimate-fee 6
# Get BRC20 tokens
./scripts/call_maestro.sh list-brc20
# Get runes for address
./scripts/call_maestro.sh get-address-runes bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh
Available Commands by Service
Blockchain Indexer Commands
Address Operations:
get-balance <address>- Get address satoshi balanceget-utxos <address>- Get address UTXOsget-address-txs <address>- Get address transactionsget-address-activity <address>- Get address satoshi activityget-address-stats <address>- Get address statisticsget-balance-history <address>- Get historical balanceget-address-runes <address>- Get runes for addressget-address-rune-activity <address>- Get rune activityget-address-rune-utxos <address>- Get rune UTXOsget-address-brc20 <address>- Get BRC20 tokens for addressget-address-inscriptions <address>- Get inscriptions for addressget-address-inscription-activity <address>- Get inscription activity
Block Operations:
get-block <height_or_hash>- Get block informationget-block-txs <height_or_hash>- Get transactions in blockget-block-inscriptions <height_or_hash>- Get inscription activity in block
Transaction Operations:
get-tx <tx_hash>- Get transaction informationget-tx-metaprotocols <tx_hash>- Get transaction with metaprotocolsget-tx-output <tx_hash> <index>- Get transaction output infoget-tx-inscriptions <tx_hash>- Get inscription activity in transaction
BRC20 Operations:
list-brc20- List all BRC20 tokensget-brc20 <ticker>- Get BRC20 token infoget-brc20-holders <ticker>- Get BRC20 token holders
Runes Operations:
list-runes- List all runesget-rune <rune_id>- Get rune informationget-rune-activity <rune_id>- Get rune activityget-rune-holders <rune_id>- Get rune holdersget-rune-utxos <rune_id>- Get rune UTXOs
Inscriptions Operations:
get-inscription <inscription_id>- Get inscription infoget-inscription-content <inscription_id>- Get inscription contentget-inscription-activity <inscription_id>- Get inscription activityget-collection <collection_symbol>- Get collection metadataget-collection-stats <collection_symbol>- Get collection statisticsget-collection-inscriptions <collection_symbol>- Get collection inscriptions
Esplora API Commands
esplora-address-info <address>- Get address informationesplora-address-txs <address>- Get address transactionsesplora-address-utxos <address>- Get address UTXOsesplora-block <hash>- Get block informationesplora-block-txs <hash>- Get block transactionsesplora-tx <txid>- Get transaction informationesplora-tx-hex <txid>- Get transaction hexesplora-broadcast <tx_hex>- Broadcast transactionesplora-mempool- Get mempool informationesplora-tip-height- Get blockchain tip height
Node RPC Commands
rpc-get-latest-block- Get latest blockrpc-get-latest-height- Get latest block heightrpc-get-block <height_or_hash>- Get block inforpc-get-block-miner <height_or_hash>- Get block miner inforpc-get-info- Get blockchain inforpc-get-mempool-info- Get mempool inforpc-get-mempool-txs- Get mempool transactionsrpc-get-mempool-tx <tx_hash>- Get mempool transaction inforpc-get-tx <tx_hash>- Get transaction inforpc-decode-tx <hex>- Decode transactionrpc-broadcast-tx <hex>- Broadcast transactionrpc-estimate-fee <blocks>- Estimate fee
Event Manager Commands
event-list-triggers- List all event triggersevent-create-trigger <json>- Create event triggerevent-get-trigger <id>- Get trigger detailsevent-delete-trigger <id>- Delete triggerevent-list-logs- List event logsevent-get-log <id>- Get event log details
Market Price Commands
market-btc-price <timestamp>- Get BTC price at timestampmarket-rune-price <rune_id> <timestamp>- Get rune pricemarket-list-dexs- List supported DEXsmarket-list-runes- Get rune registrymarket-ohlc <dex> <symbol>- Get OHLC data for runemarket-trades <dex> <symbol>- Get trades for rune
Mempool Monitoring Commands
mempool-get-balance <address>- Get balance (mempool-aware)mempool-get-utxos <address>- Get UTXOs (mempool-aware)mempool-get-runes <address>- Get runes (mempool-aware)mempool-get-rune-utxos <address>- Get rune UTXOs (mempool-aware)mempool-get-fee-rates- Get mempool block fee ratesmempool-broadcast <hex>- Broadcast with propagation trackingmempool-get-tx-meta <tx_hash>- Get tx metaprotocols (mempool-aware)
Wallet API Commands
wallet-get-activity <address>- Get wallet activity (mempool-aware)wallet-get-meta-activity <address>- Get metaprotocol activitywallet-get-balance-history <address>- Get historical balancewallet-get-inscription-activity <address>- Get inscription activitywallet-get-rune-activity <address>- Get rune activitywallet-get-stats <address>- Get address statistics (mempool-aware)
References
- API Reference: Complete endpoint documentation
- Examples: Common use case examples
- Official Docs: Maestro documentation
Features
Metaprotocol Support
Full support for Bitcoin metaprotocols:
- BRC20 Tokens: Query tokens, holders, and balances
- Runes: Track rune balances, activity, and UTXOs
- Inscriptions (Ordinals): Query inscriptions, collections, and content
Mempool Awareness
Several endpoints offer mempool-aware queries that include pending transactions:
- Balance queries
- UTXO queries
- Rune and inscription tracking
- Transaction metaprotocols
Event-Driven Architecture
Set up webhooks to monitor:
- Address activity
- Block confirmations
- Transaction events
- Metaprotocol operations
Rate Limiting
Maestro implements two-tier rate limiting:
- Daily credit limits based on subscription
- Per-second request caps
Check rate limit headers in responses:
X-RateLimit-Limit-SecondX-RateLimit-Remaining-SecondX-Maestro-Credits-LimitX-Maestro-Credits-Remaining
Notes
- All endpoints require valid API key authentication
- The
/v0version prefix must be included in all API calls - Cursor-based pagination is available for listing endpoints
- Block height filtering available via
fromandtoparameters - Support for both mainnet and testnet4 networks
- Comprehensive error handling with standard HTTP status codes