IBC Protocol

The standard for interchain communication

IBC is a reliable, ordered, and authenticated protocol for relaying arbitrary messages between independent distributed ledgers.

Get Started

Versatile

IBC can be implemented by any consensus algorithm that supports cheaply verifiable finality with any state machine that supports vector commitments.

Composable

IBC defines a set of low-level primitives for authentication, transport, and ordering, and a set of application-level standards for asset & data semantics. Ledgers which support compatible standards can be connected together without any special permissions.

Layered

IBC is built as a stack of components with explicit interfaces and security properties. Implementations of a component at a particular layer can vary as long as they provide the requisite properties. State machines need only understand compatible subsets of IBC to safely interact.

Topologically agnostic

IBC makes no assumptions, and relies upon no characteristics, of the topological structure of the network of blockchains in which it is operating. Security and correctness can be reasoned about at the level of a single connection and channel between two modules on two chains.

Contributors

Members of the IBC working group

Tendermint

Interchain Foundation

Agoric Systems

Informal Systems

Ecosystem

Frameworks committed to IBC support

Cosmos SDK

IOV Weave

Nomic Lotion

Agoric

Kadenamint

Resources

Learn more about IBC

Get started

Source code

Specification

Video content

Developer chat