Skip to main content

Overview

By default, blockchains in the Chromia ecosystem cannot transact directly with one another. Chromia provides two facilities for communication between blockchains.

Inter-Chain Messaging Facility (ICMF)

ICMF operates as an event-based service. In this model, dapp_#1 subscribes to a set of topics and waits for dapp_#2 to emit events. Events represent transactions, while topics contain the embedded data in those transactions. dapp_#1 constantly queries dapp_#2 for events, while dapp_#2 generates the events.

For instance, when a user in dapp_#2 wants to transfer assets to an account in dapp_#1, the process unfolds as follows:

  1. A user submits an asset transfer request in dapp_#2.
  2. The system validates the transaction in dapp_#2 and records it in the ledger.
  3. The account balance in dapp_#2 updates accordingly.
  4. dapp_#1 queries dapp_#2 to find the asset transfer event directed to dapp_#1.
  5. dapp_#1 verifies the authenticity of the asset transfer that occurred in dapp_#2.
  6. With the verified asset transfer data, dapp_#1 submits a transaction to update the account balance in its blockchain.
  7. The account balance in dapp_#1 updates.

Inter-Chain Confirmation Facility (ICCF)

ICCF acts as a client application that serves as an intermediary between two blockchains. The client submits a transaction on the source_chain and provides proof of the validated transaction to the destination_chain.

In a simplified scenario where a user wants to transfer assets from the source_chain to the destination_chain, the process looks like this:

  1. The client application submits a transaction on the source_chain for asset transfer.
  2. The source_chain validates the transaction.
  3. The client submits a transaction to the destination_chain, including proof of the validated transaction.
  4. The destination_chain validates the transaction and updates the account balance.