The headline feature of Cosmos is IBC — Inter-Blockchain Communication. It's the bridge model most other chains are trying to imitate, and the one with the cleanest security story. When you click "Queue IBC transfer" in the wallet, here's what happens.
The mental model
Forget for a moment everything you know about bridges. IBC is not a multisig holding wrapped assets. There is no "bridge contract" that gets hacked for $600M. IBC works because both chains are running BFT consensus, both chains can verify the other's block headers, and both chains can prove a transaction happened.
The flow looks like this:
- You submit a
MsgTransferon the source chain (say, Cosmos Hub). - The source chain locks your tokens in escrow and emits an IBC packet.
- A relayer (an off-chain process anyone can run) reads the packet from the Hub and submits it to the destination chain (Osmosis), along with a Merkle proof that the packet was committed on the Hub.
- Osmosis verifies the proof against its local copy of the Hub's headers (it runs a Hub light client) and mints the equivalent IBC denom to your destination address.
- An acknowledgement packet flows back to the Hub the same way.
Crucially: the relayer holds no keys, signs no transfers, and can be replaced by anyone at any time. The relayer is bandwidth, not trust.
Channels
Each IBC connection between two chains has one or more channels. The wallet hardcodes the canonical ones:
- Hub → Osmosis: source channel
channel-141, porttransfer - Osmosis → Hub: source channel
channel-0, porttransfer
The channel ID matters because the same denom relayed through a different channel becomes a different IBC denom on the destination. ATOM relayed via channel-141 ≠ ATOM relayed via channel-999. This is why the wallet refuses to send to a "wrong" channel — your tokens would end up unrecoverable on the receiving side.
IBC denoms
When you receive 10 ATOM on Osmosis via IBC, your balance doesn't say "ATOM". It says something like ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2. That long hash is a denom trace — Osmosis hashes the path transfer/channel-0/uatom to keep the on-chain representation short.
The wallet's balance display unhashes these to their canonical symbol. ibc/27394… → ATOM. You should never see the hash in the UI; if you do, please file a bug.
Why IBC is atomic
A misbehaving Cosmos chain can't steal your IBC transfer. If the destination chain rejects the packet (because of a timeout, a failed receive, or a malicious validator set), the source chain receives a negative acknowledgement and refunds the escrowed tokens. The transfer either completes on both sides or aborts on both sides. There's no in-between state where your tokens are locked on one side and missing on the other.
The closest comparable property in EVM bridges is "optimistic withdrawal" — but those require multi-day challenge windows. IBC delivers the same guarantee in under a minute.
What can go wrong
Three failure modes, in decreasing severity:
Frozen counterparty. If the destination chain halts (Tendermint liveness halt), your transfer can't complete until the chain recovers. The wallet's IbcBridgeJob state machine retries on a backoff; the admin alert fires after 6 retry attempts so an operator can intervene.
Relayer downtime. All Cosmos relayers are off-chain processes. If every relayer for a route is down, packets sit unrelayed. In practice multiple commercial relayers run all major channels — outages last minutes, not days. The wallet uses the Skip API as the relayer of record, with a fallback to two community relayers.
Channel close. A governance proposal on either chain can close a channel. Funds sitting in escrow get refunded; in-flight packets timeout. Channel closures are extremely rare (only 3 in IBC's history) and broadcast weeks in advance.
Cost
The IBC fee is dust — the wallet's quote module returns €0.005 per packet, the cost of the source-chain gas plus a small relayer tip. There's no liquidity cost (no AMM curve to slip on, no bridge LP to drain). This is the cheapest way to move value between any two chains in the wallet.
Next lesson: how Cosmos gas works and why IBC denoms make balance pages interesting.