Skip to content

Repository files navigation

Inter-Blockchain Communication Protocol (IBC)

banner

Synopsis

This repository is the canonical home of the inter-blockchain communication protocol (IBC): the specifications that define it, and the implementations that run it.

It consolidates 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), alongside the software that deploys IBC onto a chain and relays packets across it.

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

Repository layout

Path What it is
spec/ The Interchain Standards: the specifications for the protocol itself.
cli/ IBC CLI: deploys IBC onto a chain, and runs the relayer and attestor processes that carry packets across it.
docs/ How IBC works, the contracts, and the CLI: tutorials and reference.
e2e/ Repository-wide black-box acceptance tests.
proto/ Canonical protobuf source files used across the services and implementations.
gen/ Committed code generated from canonical schemas and contract artifacts.
examples/ Runnable local chain setups to develop against.
scripts/ Repository-level scripts.

Documentation

  • What is IBC is a high level overview of what IBC does and what it is for.
  • How IBC works covers the components that carry one packet between two chains.
  • IBC CLI covers deploying IBC and running the processes that operate it.

For a high-level explanation of IBC, you can also 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 Number Standard Title Stage Implementations Maintainer
2 Client Semantics Draft ibc-go Protocol team
4 Packet Semantics Draft ibc-go Protocol team
5 Port Allocation Draft ibc-go Protocol team
24 Host Requirements Draft ibc-go Protocol team
26 IBC Application Callbacks Draft ibc-go Protocol team

App

Interchain Standard Number Version Standard Title Stage Implementations Maintainer
27 v2 General Message Passing Draft ibc-go Protocol 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 Number Standard Title Stage Maintainer
1 ICS Specification Standard N/A Protocol team

Core Transport

Interchain Standard Number Standard Title Stage Implementations Maintainer
2 Client Semantics Candidate ibc-go, ibc-rs Protocol team
3 Connection Semantics Candidate ibc-go, ibc-rs Protocol team
4 Channel & Packet Semantics Candidate ibc-go, ibc-rs Protocol team
5 Port Allocation Candidate ibc-go Protocol team
23 Vector Commitments Candidate ibc-go, ibc-rs Protocol team
24 Host Requirements Candidate ibc-go, ibc-rs Protocol team
25 Handler Interface Candidate ibc-go, ibc-rs Protocol team
26 Routing Module Candidate ibc-go, ibc-rs Protocol team
33 Multi-hop Messaging Candidate ibc-go Protocol team

Light Clients

Interchain Standard Number Standard Title Stage Implementations Maintainer
6 Solo Machine Client Candidate ibc-go Protocol team
7 Tendermint Client Candidate ibc-go, ibc-rs Protocol team
8 Wasm Client Candidate ibc-go, ibc-rs Protocol team / Composable Finance
9 Loopback Client Draft ibc-go Protocol team
10 GRANDPA Client Draft Octopus Network

Relayer

Interchain Standard Number Standard Title Stage Implementations Maintainer
18 Relayer Algorithms Finalized go-relayer, rust-relayer, ts-relayer Protocol team

App

Interchain Standard Number Version Standard Title Stage Implementations Maintainer
20 v1 Fungible Token Transfer Candidate ibc-go, ibc-rs Protocol team
20 v2 Fungible Token Transfer DEPRECATED Protocol team
27 v1 Interchain Accounts Candidate ibc-go Protocol team
28 v1 Cross-Chain Validation Candidate interchain-security Cosmos Hub team
29 v1 General Relayer Incentivization Mechanism DEPRECATED Protocol team
30 v1 IBC Application Middleware N/A N/A Protocol team
31 v1 Cross-Chain Queries Draft N/A Protocol team
32 v1 Interchain Queries Candidate async-icq Strangelove Ventures
100 v1 Interchain Atomic Swap Candidate ibcswap Side Labs
721 v1 Non-Fungible Token Transfer Candidate nft-transfer IRIS Network

Translations

The Interchain Standards are also translated into the following languages:

Archive Papers

About

Interchain Standards (ICS) for the Cosmos network & interchain ecosystem.

Topics

Resources

Stars

1.0k stars

Watchers

63 watching

Forks

Releases

Packages

Used by

Contributors

Languages