cosmos/ibc-go
Inter-Blockchain Communication protocol (IBC) implementation in Go.
ibc-go
The Inter-Blockchain Communication protocol (IBC) is a blockchain interoperability solution that allows blockchains to talk to each other. Blockchains that speak IBC can transfer any kind of data encoded in bytes — including tokens, messages, and arbitrary application logic. IBC is secure, permissionless, and designed to connect sovereign blockchains into a single interoperable network. For a high-level explanation of what IBC is and how it works, please read this article.
The IBC implementation in Golang ibc-go has been used in production by the majority of the 200+ chains that have utilized IBC. It is built as a Cosmos SDK module. To understand more about how to use the ibc-go module as well as learn more about the IBC Protocol, please check out our docs.
Releases
The release lines currently supported are v8, v10, and v11. Please note that v9 has been retracted and has been replaced by v10.
Please refer to our versioning guide for more information on how to understand our release versioning.
Applications, Middleware, and Tools
IBC has an extensive list of applications, middleware, and tools, including relayers. View the list on the IBC technical resource catalogue on our website.
Developer Community and Support
The issue list of this repo is exclusively for bug reports and feature requests. We have active, helpful communities on Discord, Telegram, and Slack.
| Need Help? | Support & Community: Discord - Telegram - Talk to an Expert - Join the #Cosmos-tech Slack Channel |
Security
To report a security vulnerability, see our Coordinated Vulnerability Disclosure Policy.
Audits
The following audits have been performed on the ibc-go source code:
- ICS20 Fungible Token Transfer by Informal Systems.
- ICS20 Fungible Token Transfer V2 by Atredis Partners.
- ICS27 Interchain Accounts by Trail of Bits and Informal Systems.
- ICS08 Wasm Clients by Ethan Frey/Confio.
- ICS04 Channel upgradability by Atredis Partners.
Maintainers
Cosmos Labs maintains the core components of the stack: Cosmos SDK, CometBFT, IBC, Cosmos EVM, and various developer tools and frameworks. The detailed maintenance policy can be found here. In addition to developing and maintaining the Cosmos Stack, Cosmos Labs provides advisory and engineering services for blockchain solutions. Get in touch with Cosmos Labs.
Cosmos Labs is a wholly-owned subsidiary of the Interchain Foundation, the Swiss nonprofit responsible for treasury management, funding public goods, and supporting governance for Cosmos.
The Cosmos Stack is supported by a robust community of open-source contributors.
Contributing to ibc-go
If you're interested in contributing to ibc-go, please take a look at the contributing guidelines. We welcome and appreciate community contributions!
To help contributors understand which issues are good to pick up, we have the following two categories:
- Issues with the label
good first issueshould be pretty well defined and are best suited for developers new to ibc-go. - Issues with the label
help wantedare 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. We will be happy to answer any questions you may have and help you out while you work on the issue.
Quick Navigation
-
1.1 ICS 02 Client
1.3 ICS 04 Channel
1.4 ICS 05 Port
1.6 ICS 24 Host
Applications
Middleware
Light Clients
4.3 ICS 09 Localhost
Documentation and Resources
IBC Information
Cosmos Stack Libraries
- Cosmos SDK - A framework for building applications in Golang
- CometBFT - High-performance, 10k+ TPS configurable BFT consensus engine.
- Cosmos EVM - Native EVM layer for Cosmos SDK chains.