IBC Interchain Standards

June 24, 2026 ยท View on GitHub

banner

Synopsis

This repository is the canonical location for development and documentation of the inter-blockchain communication protocol (IBC).

It shall be used to consolidate design rationale, protocol semantics, and encoding descriptions for IBC, including both the core transport, authentication, & ordering layer (IBC/TAO) and the application layers describing packet encoding & processing semantics (IBC/APP).

Contributions are welcome. See CONTRIBUTING.md for contribution guidelines.

What is IBC?

For a high-level explanation of what IBC is and how it works, please read this blog post.

Interchain Standards

All standards at or past the "Draft" stage are listed here in order of their ICS numbers, sorted by category.

IBC v2 Specifications

IBC v2 is the latest iteration of the IBC protocol. It streamlines the integration of IBC by removing the connection and channel handshake layers in favor of direct client-to-client packet flow. For an overview, see the IBC v2 introduction.

Core Transport

Interchain Standard NumberStandard TitleStageImplementationsMaintainer
2Client SemanticsDraftibc-goProtocol team
4Packet SemanticsDraftibc-goProtocol team
5Port AllocationDraftibc-goProtocol team
24Host RequirementsDraftibc-goProtocol team
26IBC Application CallbacksDraftibc-goProtocol team

App

Interchain Standard NumberVersionStandard TitleStageImplementationsMaintainer
27v2General Message PassingDraftibc-goProtocol team

IBC v1 Specifications

IBC v1 is the original version of the protocol. It establishes cross-chain communication through connection and channel handshakes before applications can exchange packets.

Meta

Interchain Standard NumberStandard TitleStageMaintainer
1ICS Specification StandardN/AProtocol team

Core Transport

Interchain Standard NumberStandard TitleStageImplementationsMaintainer
2Client SemanticsCandidateibc-go, ibc-rsProtocol team
3Connection SemanticsCandidateibc-go, ibc-rsProtocol team
4Channel & Packet SemanticsCandidateibc-go, ibc-rsProtocol team
5Port AllocationCandidateibc-goProtocol team
23Vector CommitmentsCandidateibc-go, ibc-rsProtocol team
24Host RequirementsCandidateibc-go, ibc-rsProtocol team
25Handler InterfaceCandidateibc-go, ibc-rsProtocol team
26Routing ModuleCandidateibc-go, ibc-rsProtocol team
33Multi-hop MessagingCandidateibc-goProtocol team

Light Clients

Interchain Standard NumberStandard TitleStageImplementationsMaintainer
6Solo Machine ClientCandidateibc-goProtocol team
7Tendermint ClientCandidateibc-go, ibc-rsProtocol team
8Wasm ClientCandidateibc-go, ibc-rsProtocol team / Composable Finance
9Loopback ClientDraftibc-goProtocol team
10GRANDPA ClientDraftOctopus Network

Relayer

Interchain Standard NumberStandard TitleStageImplementationsMaintainer
18Relayer AlgorithmsFinalizedgo-relayer, rust-relayer, ts-relayerProtocol team

App

Interchain Standard NumberVersionStandard TitleStageImplementationsMaintainer
20v1Fungible Token TransferCandidateibc-go, ibc-rsProtocol team
20v2Fungible Token TransferDEPRECATEDProtocol team
27v1Interchain AccountsCandidateibc-goProtocol team
28v1Cross-Chain ValidationCandidateinterchain-securityCosmos Hub team
29v1General Relayer Incentivization MechanismDEPRECATEDProtocol team
30v1IBC Application MiddlewareN/AN/AProtocol team
31v1Cross-Chain QueriesDraftN/AProtocol team
32v1Interchain QueriesCandidateasync-icqStrangelove Ventures
100v1Interchain Atomic SwapCandidateibcswapSide Labs
721v1Non-Fungible Token TransferCandidatenft-transferIRIS Network

Translations

The Interchain Standards are also translated into the following languages: