BitVMX's Open Source Journey Continues: Bitcoin Monitoring, Coordination and Indexing components now available

Fairgate Team
·
September 19, 2025
·

We’re excited to continue expanding BitVMX’s open source stack with three new components that are core to how we track, coordinate, and interact with the Bitcoin blockchain.

These libraries have matured alongside our protocol infrastructure and are now available for public use under the MIT license. They include:

  • BitVMX Transaction Monitor – real-time tracking and news generation for transaction confirmations
  • Bitcoin Coordinator – orchestrates transaction dispatching, monitoring, and CPFP/RBF-based speedups
  • Bitcoin Indexer – blockchain indexer that stores block and tx data for analysis and monitoring

Each component has been designed with modularity, persistence, and scalability in mind—enabling robust interaction with the Bitcoin network across a wide variety of applications.


BitVMX Transaction Monitor

Real-Time Monitoring of Bitcoin Transactions

The Transaction Monitor connects to an Indexer and persistently tracks UTXOs,, and blocks. It emits “news” updates when transactions reach confirmation thresholds or statuses change.

Key Features

  • 📡 Transaction confirmation tracking
  • 🔄 Regular sync with the Bitcoin blockchain
  • 💾 Persistent monitoring state across restarts

🛠 Basic Usage


let monitor = Monitor::new(indexer, bitvmx_store, settings)?;
// Check readiness
if monitor.is_ready()? {
    println!("Monitor is fully synchronized.");
}

// Sync with latest blocks
monitor.tick()?;

// Start monitoring a tx or event
monitor.monitor(TypesToMonitor::Transactions(vec![txid], "ctx".to_string()))?;

// Acknowledge processed news
monitor.ack_news(AckMonitorNews::Transaction(txid))?;

// Stop monitoring
monitor.cancel(TypesToMonitor::Transactions(vec![txid], "ctx".to_string()))?;

// Get monitoring updates
let news = monitor.get_news()?;

// Query monitor state
let status = monitor.get_tx_status(&txid)?;
let height = monitor.get_monitor_height()?;

This component is used across BitVMX for reactive protocol logic tied to Bitcoin on-chain activity.


Bitcoin Coordinator

Orchestrating, Monitoring, and Speeding Up Bitcoin Transactions

The Bitcoin Coordinator serves as the central brain of Bitcoin-side transaction management. It dispatches transactions, tracks confirmations, and applies CPFP or RBF-based speedups when needed.

Key Features

  • 🕵️ Built-in monitoring (via Transaction Monitor)
  • 🚀 Speedup support via CPFP or RBF
  • 🔑 Integrated with Key Manager for signing
  • 💾 Persistent state via BitVMX Storage

🛠 Basic Usage


let coordinator = BitcoinCoordinator::new_with_paths(
    &config_bitcoin_client,
    storage.clone(),
    key_manager.clone(),
    None,
);
// Sync with blockchain
coordinator.tick()?;

// Monitor a transaction
let txid = ...;
let ctx = "My tx".to_string();
coordinator.monitor(TypesToMonitor::Transactions(vec![txid], ctx.clone()))?;

// Dispatch with optional speedup
coordinator.dispatch(transaction, Some(speedup_data), ctx.clone(), None)?;

// Add UTXO funding for future CPFP
coordinator.add_funding(utxo)?;

// Query transaction status
let status = coordinator.get_transaction(txid)?;

// Handle news
let news = coordinator.get_news()?;
coordinator.ack_news(AckNews::Monitor(AckMonitorNews::Transaction(txid)))?;

This library is essential for dynamic protocol execution and timeout-sensitive on-chain actions.


Bitcoin Indexer

Fast, Persistent Indexing of Bitcoin Blocks and Transactions

The Bitcoin Indexer connects to Bitcoin Core and stores block and tx IDs into RocksDB for efficient access. It operates in a controlled, tick-based sync model, ensuring deterministic indexing state.

Key Features

  • 🏷️ Block and tx ID extraction from Bitcoin Core
  • 📏 Configurable start height for partial syncs
  • 💾 RocksDB-backed state persistence
  • ⏱️ Deterministic, block-by-block processing

🛠 Basic Usage


let config = ...;
let bitcoin_client = BitcoinClient::new_from_config(&config.bitcoin)?;
let store = Rc::new(IndexerStore::new(&config.storage)?);
let indexer = Indexer::new(bitcoin_client, store.clone(), config.settings)?;

// Check readiness
if indexer.is_ready()? {
    println!("Indexer is at tip.");
}

// Process the next block
indexer.tick()?;

// Query current state
let best_block = indexer.get_best_block()?;
let best_height = indexer.get_best_height()?;
let chain_tip = indexer.get_blockchain_best_height()?;
let to_sync = indexer.get_height_to_sync()?;

// Retrieve tx info
let tx_info = indexer.get_tx(&txid.parse()?)?;

This module is the foundation for any component needing structured access to blockchain history.


Why We’re Open-Sourcing These Tools

We believe that open infrastructure benefits the entire ecosystem. By sharing the tools we’ve built internally, we aim to:

  • Lower the barrier to experimentation
  • Enable others to build composable Bitcoin-native systems
  • Support collaboration and research on secure, scalable protocols

These components are still under development, not yet audited, and subject to change—but we’re committed to maintaining and improving them in the open.


Community & Contributions

All three libraries are licensed under MIT and hosted on GitHub. We welcome contributions, forks, and feedback of all kinds. Let’s build modular, secure, and decentralized Bitcoin infrastructure—together.


Repositories

GitHub FairgateLabs

🔗 BitVMX Transaction Monitor

🔗 Bitcoin Coordinator

🔗 Bitcoin Indexer

Join our community

BitVMX's Open Source Journey Continues: Bitcoin Monitoring, Coordination and Indexing components now available

Introducing BitVMX New Open Source Components: Key Management, Storage, and Configuration

Building Secure and Watchtower-efficient Bitcoin Payment Channels with BitVMX

From Blueprint to Backend

Introducing the BitVMX 2025 Roadmap

Why RISC-V is the Optimal Architecture for the BitVMX Proving System

Improving BitVMX with Bitcoin Soft-forks

ESSPI: ECDSA / Schnorr Signed Program Input for BitVMX

BitVMX off-chain communication system: Multi-Exchange Handler

PKMN_BTTL: A Pokemon Battle Game, Written in Zig and Executed with BitVMX

Zero Knowledge Proof Verification On Bitcoin

BitVMX off-chain communication system: Key Components and Secure Strategies

Unlocking Trustless Bridges: BitVMX Goes Open Source

Union Bridge: A Trustless Gateway Between Bitcoin and Rootstock Powered by BitVMX

BitVMX: a practical exploration

First Release of BitVMX Implementation: Union Bridge by Rootstock

Optimizing Algorithms for Bitcoin Script (part 3)

BitVMX off-chain communication system: Protocol Implementation and Practical Applications

Optimizing Algorithms for Bitcoin Script (part 2)

Optimizing Algorithms for Bitcoin Script

Interactive SNARK Verification on Bitcoin using BitVMX!

A New Era for Bitcoin: Successful SNARK Proof Verification with BitVMX

We bitcoiners have a card under our sleeve: unpredictable innovation

Latest Innovations in BitVMX

The near future of bitcoin CPU: BitVMX

How BitVMX Differs from BitVM

BitVMX: A CPU for Universal Computation on Bitcoin

Keynote at Bitcoin++ ATX24 Script Edition for the BitVMX Presentation