π¦ Packet Flow: Send & Receive Messages
Discover how data flows between IBC-enabled chains
Enable inter-blockchain communication protocols
Your Progress
0 / 5 completedPacket Flow
**IBC packets** are the fundamental unit of cross-chain communication. When an application wants to send data to another chain, it calls `SendPacket` which creates a commitment proof. Relayers then carry these packets between chains, submitting cryptographic proofs that the packet was committed on the source chain.
Packets can timeout if not delivered within specified height/timestamp, enabling rollback of state changes. This guarantees **exactly-once delivery** or timeoutβpackets are never lost or duplicated.
Interactive: Packet Flow Simulator
Watch a token transfer packet flow from source to destination chain.
SendPacket
Source ChainApplication calls SendPacket, packet commitment stored in state
RelayPacket
RelayerRelayer monitors source chain, fetches merkle proof of commitment
RecvPacket
Dest ChainDestination chain verifies proof, calls application onRecvPacket
Acknowledgement
Source ChainDestination writes ack, relayer submits to source, calls onAcknowledgePacket
Performance Analysis
Adjust transfer amount to see how it affects gas costs and relay time.
β±οΈ Packet Timeouts
Every packet has a timeout height or timestamp. If not delivered before timeout, the packet can be proven as timed out and state rolled back on the source chain.
Relayer Economics
π° ICS-29 Fee Middleware
Optional fees incentivize relayers to submit packets. Users pay recvFee, ackFee, and timeoutFee.
β‘ Permissionless Relay
Anyone can run a relayerβno special permissions needed. Competitive relayer market ensures fast delivery.
Packet Ordering
Channels can be **ORDERED** (packets must be received in order) or **UNORDERED** (any order accepted).
| Property | ORDERED | UNORDERED |
|---|---|---|
| Delivery | Sequential (1, 2, 3...) | Any order |
| Use Case | Stateful protocols | Token transfers (ICS-20) |
| Timeout Handling | Channel closes on timeout | Skip and continue |
| Performance | Slower (blocking) | Faster (parallel) |