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
Tendermint
Interchain Foundation
Interchain Foundation
Agoric Systems
Agoric Systems
Informal Systems
Informal Systems
Ecosystem

Frameworks commited to IBC support

Cosmos SDK
Cosmos SDK
IOV Weave
IOV Weave
Nomic Lotion
Nomic Lotion
Agoric
Agoric
Kadenamint
Kadenamint
Resources

Learn more about IBC

Get started
Get started
Source code
Source code
Specification
Specification
Video content
Video content
Developer chat
Developer chat