How the IBC Protocol Works
Learn how the Inter-Blockchain Communication Protocol (IBC) enables secure, permissionless data transfer between blockchains.
The Inter-Blockchain Communication Protocol (IBC) is a blockchain interoperability solution that allows blockchains to transfer any kind of data encoded in bytes — including tokens, messages, and arbitrary application logic. IBC is secure, permissionless, and designed to connect sovereign blockchains into a single interoperable network.
The first IBC transaction was sent on April 2, 2021. It has since been adopted by 115+ sovereign chains. The development of IBC is open-source. The main protocol development and maintenance is funded by the Interchain Foundation. Hundreds of independent developers contribute to the protocol on a volunteer basis.
The protocol is built on a set of modular abstractions that separate concerns cleanly across three layers: IBC Clients, IBC Core, and IBC Applications (Apps). These layers work together to ensure that any two chains — regardless of their consensus mechanism or architecture — can communicate safely and reliably.
This page explains the architecture of IBC v2. For IBC Classic, see this page.

IBC Clients: Verifying Remote Consensus
IBC clients identify and verify the state of the counterparty ledger it is connected to. An IBC client provides:
- Consensus tracking: It stores compact snapshots of a counterparty chain’s state at specific heights.
- State verification: It exposes verification functions that confirm whether a key/value pair exists (or does not exist) in the counterparty’s state at a given height.
- Security guarantees: If the counterparty violates its own consensus rules, the client can be frozen to halt further updates — protecting against continued misuse.
Light clients are used for trust-minimized communication, the gold standard in cross-chain interoperability. A light client is a lightweight representation of a destination chain that lives within the state machine of a source chain.
The IBC client layer is flexible enough to enable different levels of security and different attestation methods. When a chain does not have a light client, a multi-signature-based client could be used, or multiple attestation methods can be combined to form the basis of a single client. It is up to users and relayers to decide what trust assumptions are acceptable.
How IBC Core Works
IBC Core provides the logic for transporting authenticated data packets between chains. It ensures that packets are cryptographically proven to originate from a verified source, routed to the correct destination, and delivered only once.
The packet flow system enables packets to be sent, received, acknowledged and timed out. Each packet is routed through IBC Core for verification with the appropriate client. Before packet processing can begin, a pair of clients must register each other as counterparties to create a secure association between two IBC clients - one representing each chain on the other - to provide IBC Core with the context it needs to validate and route packets.How IBC Apps Work
The application layer is where all of the business logic is implemented for different IBC use cases. IBC enables a diverse range of cross-chain workflows as long as an application implements logic for the application interface and a pair of chains have the same application implemented. For example, chains can use applications like token transfers, contract calls, NFT transfers, cross-chain queries and much more.
As the IBC packet workflow gives a notification of receipt of a packet to the sending chain, expressive workflows can be built out that rely on callbacks and proof that remote computation was successful.

Using the IBC Protocol as a Developer: What You Need to Know
The development of IBC is open-source. Anyone can contribute to the protocol, and the code repositories are provided for open-source usage on the IBC Github. IBC is open source and free to integrate.
A global community of development teams and contributors build and maintain the protocol, and its development is funded primarily by the Interchain Foundation. You can read more about IBC's development philosophy on the About Us page or head to the Technical Resource Catalog for information on which team developed a specific part of the code.
If you're interested in getting support, the Interchain Builders Program is an incubator for early-stage Interchain projects that offers technical support & guidance for Interchain founders & their teams. Finally, the Interchain Foundation offers a free developer portal with educational resources and technical walkthroughs.
Happy building!