# IBC Types
This crate serves as a central hub for re-exporting the implemented
Inter-Blockchain Communication (IBC) data structures. It simplifies the
integration of various IBC domain types into your project. IBC is a distributed
protocol facilitating communication between independent sovereign blockchains
and The IBC data structures within this crate abstract various IBC
specifications, offering a convenient means to encode and decode IBC messages to
and from proto types exposed by
[`ibc-proto`](https://github.com/cosmos/ibc-proto-rs) crate. Additionally, it
supports parsing events to and from ABCI event types.
## Sub-Crates
This crate organizes data structures into three main modules: `core`, `clients`,
and `apps`. Each category further re-exports its respective sub data structures,
providing a clear and modular path for easy navigation and usage:
### Core
|
Specification
| Crate |
| -------------------------------------------- | ------ |
| ICS-02: Client Semantics | [ibc-core-client-types](./../ibc-core/ics02-client/types) |
| ICS-03: Connection Semantics | [ibc-core-connection-types](./../ibc-core/ics03-connection/types) |
| ICS-04: Channel and Packet Semantics | [ibc-core-channel-types](./../ibc-core/ics04-channel/types) |
| ICS-24: Host Requirements | [ibc-core-host-types](./../ibc-core/ics24-host/types) |
| ICS-25: Handler Interface | [ibc-core-handler-types](./../ibc-core/ics25-handler/types) |
| ICS-26: Routing Module | [ibc-core-routing-types](./../ibc-core/ics26-routing/types) |
### Clients
| Specification
| Crate |
| -------------------------------------------- | ------ |
| ICS-07: Tendermint Client | [ibc-client-tendermint-types](./../ibc-clients/ics07-tendermint/types) |
### Apps
| Specification
| Crate |
| -------------------------------------------- | ------ |
| ICS-20: Fungible Token Transfer | [ibc-app-transfer-types](./../ibc-apps/ics20-transfer/types) |
## Contributing
IBC is specified in English in the [cosmos/ibc
repo](https://github.com/cosmos/ibc). Any protocol changes or clarifications
should be contributed there.
If you're interested in contributing, please take a look at the
[CONTRIBUTING](./../CONTRIBUTING.md) guidelines. We welcome and appreciate
community contributions!