Skip to main content

Inter-chain Messaging Facility (ICMF)

The Inter-chain Messaging Facility (ICMF) facilitates communication between blockchains within a single dapp cluster. It serves as an event-based service that enables blockchains to read data from each other and act accordingly.

Overview

By default, blockchains running in a single dapp cluster cannot communicate with each other. The ICMF protocol solves this limitation by providing a structured way for blockchains to exchange information and coordinate their operations.

How ICMF works

ICMF operates as an event-based messaging system:

  1. Event emission: Source blockchain (blockchain_#1) emits events
  2. Event subscription: Target blockchain (blockchain_#2) subscribes to these events
  3. Event processing: Target blockchain reads events and triggers corresponding functions
  4. Action execution: Functions execute based on the event content

Event-driven architecture

┌─────────────────┐        Events        ┌─────────────────┐
│ Blockchain A │ ──────────────────→ │ Blockchain B │
│ │ │ │
│ • Emits events │ │ • Subscribes │
│ • Triggers ICMF │ │ • Processes │
│ • Continues │ │ • Executes │
└─────────────────┘ └─────────────────┘

Use cases

Asset transfers within a cluster

  • Transfer tokens between different blockchains in the same dapp cluster
  • Maintain balance consistency across chains
  • Enable complex multi-chain transactions

State synchronization

  • Keep related data synchronized across blockchains
  • Trigger updates when state changes occur
  • Maintain consistency in distributed applications

Workflow coordination

  • Orchestrate multi-step processes across blockchains
  • Implement business logic that spans multiple chains
  • Enable complex dapp architectures

Event notifications

  • Notify other blockchains of important events
  • Trigger automated responses to specific conditions
  • Implement reactive patterns in multi-chain dapps

Learn more

For detailed implementation examples and step-by-step guides, see the ICMF use case documentation.

For hands-on learning, check out the Build an event-driven multi-blockchain dapp course on Chromia Learning.