The Inter-Blockchain Communication protocol (IBC) allows blockchains to talk to each other. This end-to-end, connection-oriented, stateful protocol provides reliable, ordered, and authenticated communication between heterogeneous blockchains.
This IBC implementation in Golang is built as a Cosmos SDK module. To understand more about how to use the ibc-go
module as well as about the IBC protocol, please check out the Interchain Developer Academy section on IBC, or our docs.
For an overview of upcoming changes to ibc-go take a look at the roadmap.
This roadmap is also available as a project board.
For the latest expected release timelines, please check here.
For the latest information on the progress of the work or the decisions made that might influence the roadmap, please follow our engineering updates.
The release lines currently supported are v4, v5, v6 and v7.
Please refer to the Stable Release Policy section of RELEASES.md for more details.
Please refer to our versioning guide for more information on how to understand our release versioning.
Discover the applications, middleware and light clients developed by other awesome teams in the ecosystem:
In the table below
app
refers to IBC application modules for custom use cases and
middleware
refers to modules that wrap an IBC application enabling custom logic to be executed.
Description | Repository | Type |
---|---|---|
An application that enables on chain querying of another IBC enabled chain utilizing baseapp.Query . Both chains must have implemented the query application and ICA (for queries requiring consensus). |
async-icq | app |
An application that enables on chain querying of another IBC enabled chains state without the need for the chain being queried to implement the application. | interchain-queries | app |
An application that enables on chain querying of another IBC enabled chains state without the need for the chain being queried to implement the application. Similar to the interchain-queries application in the row above but without callbacks. | query | app |
An application that enables cross chain NFT transfer. | NFT Transfer (ICS 721) | app |
Middleware enabling a packet to be sent to a destination chain via an intermediate chain, e.g. going from Juno to Osmosis via the Hub. | packet-forward-middleware | middleware |
Middleware enabling the recovery of tokens sent to unsupported addresses. | recovery | middleware |
Middleware that limits the in or out flow of an asset in a certain time period to minimise the risks of cross chain token transfers. This is implemented as a middleware wrapping ICS20 with the rate limiting logic implemented by cosmwasm contracts | ibc-rate-limit | middleware |
We have active, helpful communities on Discord and Telegram.
For questions and support please use the developers
channel in the Cosmos Network Discord server or join the IBC Gang Discord server. The issue list of this repo is exclusively for bug reports and feature requests.
To receive announcements of new releases or other technical updates, please join the Telegram group that we administer.
If you're interested in contributing to ibc-go, please take a look at the contributing guidelines. We welcome and appreciate community contributions!
This project adheres to ibc-go's code of conduct. By participating, you are expected to uphold this code.
To help contributors understand which issues are good to pick up, we have the following two categories:
- Issues with the label
good first issue
should be pretty well defined and are best suited for developers new to ibc-go. - Issues with the label
help wanted
are a bit more involved and they usually require some familiarity already with the codebase.
If you are interested in working on an issue, please comment on it; then we will be able to assign it to you. We will be happy to answer any questions you may have and help you out while you work on the issue.
If you have any general questions or feedback, please reach out to us in the IBC Gang Discord server.
We have a document that describes the process for submitting a feature for maintainership in the ibc-go codebase.
To report a security vulnerability, see our bug bounty program.
The following audits have been performed on the ibc-go
source code:
- ICS27 Interchain Accounts by Trail of Bits
-
1.1 ICS 02 Client
1.3 ICS 04 Channel
1.4 ICS 05 Port
1.6 ICS 24 Host
-
Applications
-
Middleware
-
Light Clients