Git Product home page Git Product logo

ibc-apps's Introduction

ibc-apps

IBC-APPS Header

IBC applications and middleware for Cosmos SDK blockchains

๐ŸŒŒ Why have an ibc-apps repo?

Early IBC work started in the ibc-go repo. As the repo grew, the need arose to parallelize the work among many teams.

The ibc-apps repo is meant to be an easily discoverable, navigable, central place for modules and middleware.

๐ŸŒŒ๐ŸŒŒ Who's it for?

IBC-Apps is for:

  • Core ibc-go contributors; it frees them from having to maintain IBC Apps,

  • Publishers of ibc apps, so their apps can be easily found, and

  • Everyone who uses IBC and wants to benefit from the full range of its capabilities.

๐ŸŒŒ๐ŸŒŒ๐ŸŒŒ What is it?

What is IBC?

The Inter-Blockchain Communication Protocol (IBC) is a protocol to handle the authentication and transport of data between two blockchains. IBC requires a minimal set of functions, specified in the Interchain Standards (ICS). These specifications do not limit the network topology or consensus algorithm, so IBC can be used with a wide range of blockchains or state machines. The IBC protocol provides a permissionless way for relaying data packets between blockchains, unlike most trusted bridging technologies. The security of IBC reduces to the security of the participating chains.

IBC solves a widespread problem: cross-chain communication. This problem exists on public blockchains when exchanges wish to perform swaps. The problem arises early in the case of application-specific blockchains, where every asset is likely to emerge from its own purpose-built chain. Cross-chain communication is also a challenge in the world of private blockchains, in cases where communication with a public chain or other private chains is desirable.

Cross-chain communication between application-specific blockchains in Cosmos creates the potential for high horizontal scalability with transaction finality. These design features provide convincing solutions to well-known problems that plague other platforms, such as transaction costs, network capacity, and transaction confirmation finality.

What is an IBC App?

IBC apps can be split into two categories - modules and middleware.

IBC Modules are self-contained applications that enable packets to be sent to and received from other IBC-enabled chains. IBC application developers do not need to concern themselves with the low-level details of clients, connections, and proof verification.

IBC Middleware are self-contained modules that sit between core IBC and an underlying IBC application. This allows developers to customize lower-level packet handling. Multiple middleware modules can be chained together.

๐ŸŒŒ๐ŸŒŒ๐ŸŒŒ๐ŸŒŒ How to Use this repo

If you'd like to include software in this repo, please see contributing.

๐ŸŒŒ๐ŸŒŒ๐ŸŒŒ๐ŸŒŒ๐ŸŒŒ Bonus Content

Maintained Branches

Branch Name IBC-Go
main v8
release/v7 v7
release/v6 v6
release/v5 v5
release/v4 v4

List of Apps

Name Type Example Stakeholders Description
Async Interchain Query Module Link Strangelove Interchain Queries enable blockchains to query the state of an account on another chain without the need for ICA auth.
IBC Hooks Module Link Osmosis The IBC hooks module is an IBC middleware that enables ICS-20 token transfers to initiate contract calls.
Packet Forward Middleware Middleware Link Strangelove Middleware for forwarding IBC packets.

Ecosystem Apps

Modules and middleware developed by other awesome teams in the ecosystem:

Name Type Stakeholders Description
Interchain KV Queries Module Ingenuity 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.
query Module Defund Labs 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.
NFT Transfer (ICS 721) Module Bianjieai An application that enables cross chain NFT transfer.

| CosmWasm NFT Transfer (ICS 721) | WASM Contract | Public Awesome (Stargaze), Ark Protocol | An application that enables cross chain NFT transfer. CosmWasm implementation of the above, written in Rust. | | recovery | Middleware | Evmos | Middleware enabling the recovery of tokens sent to unsupported addresses. | | ibc-rate-limit | Middleware | Osmosis Labs | 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. | | Interchain Atomic Swap | WASM Contract | Side Labs | An application that facilitates inter-blockchain peer-to-peer asset swaps. | | Interchain Liquidity | WASM Contract | Side Labs | An application that splits the state of a weighted liquidity pool between two chains, enabling inter-blockchain automated asset swaps. |

ibc-apps's People

Contributors

reecepbcups avatar jtieri avatar agouin avatar boojamya avatar jonathanpberger avatar crodriguezvega avatar faddat avatar taztingo avatar nicolaslara avatar rootulp avatar bd21 avatar shanev avatar liangping avatar emidev98 avatar dzmitry-lahoda avatar beer-1 avatar vitalyv1337 avatar pr0n00gler avatar xlab avatar assafmo avatar alexanderbez avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.