# What are adapters?

Different providers' AMB endpoints require different function signatures for sending and receiving messages between different chains. These functions are specific to each AMB.

To bridge ~~(no pun intended)~~ this gap, adapters act as an intermediary between the core MMA contracts and individual bridge endpoints. Their main purpose is to establish a standardized communication protocol between the core MMA contracts and each individual bridge endpoint.

**In order to include an AMB solution in the MMA design, two adapters are required**: the [Sender Adapter](message-sender-adapters), which handles outbound messages from Ethereum to other chains, and the [Receiver Adapter](message-receiver-adapters), which handles inbound messages from non-destination chains. These adapters follow the [EIP-5164 standard](https://eips.ethereum.org/EIPS/eip-5164) as implemented [here](https://github.com/pooltogether/ERC5164).

A diagram is available below that illustrates the interactions between the core MMA contracts and an AMB infrastructure. Contracts that live on the source chain (Ethereum) are represented in light grey, while those that live on the destination chain are represented in dark grey.

<div align="center"><figure><img src="https://3660652649-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FyWOfgotvwuIBhzylK0ud%2Fuploads%2FdQnpbx3FiPmbU1gvSQQn%2FMMA_Adapters.png?alt=media&#x26;token=e9e74a8d-6e46-4c7c-bf71-1ee8bef896a1" alt=""><figcaption></figcaption></figure></div>
