The Inter-Blockchain Communication protocol

Securely exchange data, value and tokens across the interchain.

Creating interoperability on the Internet of Blockchains

The Inter-Blockchain Communication Protocol (IBC) is an open-source protocol to handle authentication and transport of data between blockchains. IBC allows heterogeneous chains to trustlessly communicate with each other to exchange data, messages, and tokens.

Scalable

Cross-chain communication enables increased and seamless scalability

Proven

Billions of transactions executed using IBC

Efficient

IBC reduces transaction costs and transaction confirmation finality issues between app-specific chains

Interoperable

Enables inter appchain communication, creating create greater utility than the sum of its parts.

Out of the box

Natively integrate with chains built on Cosmos SDK

Sovereign

Built to your specs, while being able to connect with a wide range of chains & state machines.

IBC Eureka
One Connection
to Anywhere

IBC Eureka is the main implementation of IBC v2. Eureka offers seamless bridging and interoperability to hundreds of chains, with one IBC connection to the Cosmos Hub.

Access 120+ chains from Cosmos to Ethereum and beyond, with faster-than-finality transfers, low fees, and native asset issuance.

Fast & Affordable

Using Skip Go Fast, users get their assets in seconds — paying as little as $1 for transfers from Ethereum.

Secure Interoperability

IBC Eureka uses the v2 of the Inter-Blockchain Communication Protocol. IBC v1 has never been exploited since its launch in 2021.

Easy 1-Click Transfers

The go.cosmos.network widget delivers easy 1-click transfers across 50+ of your users' favorite wallets and front-ends across Cosmos and Ethereum.

Natively bridge tokens, messages, and accounts
    
      
        
function sendFungibleTokens(
  denomination: string,
  amount: uint256,
  sender: string,
  receiver: string,
  sourcePort: string,
  sourceChannel: string,
  timeoutHeight: Height,
  timeoutTimestamp: uint64): uint64 {
    prefix = "{sourcePort}/{sourceChannel}/"
    // we are the source if the denomination is not prefixed
    source = denomination.slice(0, len(prefix)) !== prefix
    if source {
      // determine escrow account
      escrowAccount = channelEscrowAddresses[sourceChannel]
      // escrow source tokens (assumed to fail if balance insufficient)
      bank.TransferCoins(sender, escrowAccount, denomination, amount)
    } else {
      // receiver is source chain, burn vouchers
      bank.BurnCoins(sender, denomination, amount)
    }

    // create FungibleTokenPacket data
    data = FungibleTokenPacketData{denomination, amount, sender, receiver}

    // send packet using the interface defined in ICS4
    sequence = handler.sendPacket(
      getCapability("port"),
      sourcePort,
      sourceChannel,
      timeoutHeight,
      timeoutTimestamp,
      data
    )

    return sequence
}
      
    
  
Trust the chains,
not a bridge

With IBC, trust the chains you already use instead of a vulnerable third party. Easy, direct implementation with IBC is secure even in Byzantine environments where relayers can be faulty or malicious.

Unsubscribe at any time. Privacy policy

OSZAR »