ibc.cosmos.network
Open in
urlscan Pro
2606:50c0:8000::153
Public Scan
Submitted URL: http://ibc.cosmos.network/
Effective URL: https://ibc.cosmos.network/main
Submission: On February 09 via api from US — Scanned from DE
Effective URL: https://ibc.cosmos.network/main
Submission: On February 09 via api from US — Scanned from DE
Form analysis
0 forms found in the DOMText Content
Skip to main content DocumentationArchitecture Decision RecordsTutorials Next * Next * v8.1.x * v8.0.x * v7.3.x * v6.2.x * v5.3.x * v4.5.x ctrlK * IBC-Go Documentation * Using IBC-Go * IBC Application Modules * IBC Light Clients * IBC Middleware Modules * Migrations * Resources * IBC Specification * Protobuf Documentation * Developer Portal * Awesome Cosmos * ibc-rs This is unreleased documentation for IBC-Go Next version. For up-to-date documentation, see the latest version (v8.0.x). * IBC-Go Documentation Version: Next On this page IBC-GO DOCUMENTATION Welcome to the documentation for IBC-Go, the Golang implementation of the Inter-Blockchain Communication Protocol! Looking for information on ibc-rs? Click here to go to the ibc-rs github repo. The Inter-Blockchain Communication Protocol (IBC) is an end-to-end, connection-oriented, stateful protocol for reliable, ordered, and authenticated communication between heterogeneous blockchains arranged in an unknown and dynamic topology. IBC is a protocol that allows blockchains to talk to each other. Chains that speak IBC can share any type of data as long as it's encoded in bytes, enabling the industry’s most feature-rich cross-chain interactions. IBC is secure and permissionless. The protocol realizes this interoperability by specifying a set of data structures, abstractions, and semantics that can be implemented by any distributed ledger that satisfies a small set of requirements. IBC can be used to build a wide range of cross-chain applications that include token transfers, atomic swaps, multi-chain smart contracts (with or without mutually comprehensible VMs), cross-chain account control, and data and code sharding of various kinds. HIGH-LEVEL OVERVIEW OF IBC The following diagram shows how IBC works at a high level: The transport layer (TAO) provides the necessary infrastructure to establish secure connections and authenticate data packets between chains. The application layer builds on top of the transport layer and defines exactly how data packets should be packaged and interpreted by the sending and receiving chains. IBC provides a reliable, permissionless, and generic base layer (allowing for the secure relaying of data packets), while allowing for composability and modularity with separation of concerns by moving application designs (interpreting and acting upon the packet data) to a higher-level layer. This separation is reflected in the categories: * IBC/TAO comprises the Transport, Authentication, and Ordering of packets, i.e. the infrastructure layer. * IBC/APP consists of the application handlers for the data packets being passed over the transport layer. These include but are not limited to fungible token transfers (ICS-20), NFT transfers (ICS-721), and interchain accounts (ICS-27). * Application module: groups any application, middleware or smart contract that may wrap downsteam application handlers to provide enhanced functionality. Note three crucial elements in the diagram: * The chains depend on relayers to communicate. Relayers are the "physical" connection layer of IBC: off-chain processes responsible for relaying data between two chains running the IBC protocol by scanning the state of each chain, constructing appropriate datagrams, and executing them on the opposite chain as is allowed by the protocol. * Many relayers can serve one or more channels to send messages between the chains. * Each side of the connection uses the light client of the other chain to quickly verify incoming messages. Next Overview * High-level overview of IBC * Documentation * Hermes Relayer * Cosmos Hub * CometBFT Community * Discord * Twitter * YouTube Other Tools * Go Relayer * ibc-rs * interchaintest * CosmWasm More * GitHub * IBC Protocol Website * Privacy Policy The development of IBC-Go is led primarily by Interchain GmbH. Funding for this development comes primarily from the Interchain Foundation, a Swiss non-profit.