# Generic Message Passing

## About Celer Generic Message Passing

Celer uses smart contracts that are deployed on each chain paired with the State Guardian Network, a Tendermint-based blockchain, in order to enable seamless multi-blockchain interoperability. To send a message or invoke a smart contract function cross-chain, a user or a dApp will first send their intention as a message with a structured header and arbitrary binary payload to a Message Bus smart contract on the source chain. Then the validator, the State Guardian Network, will first reach a consensus on the existence of such a message and concurrently generate a stake-weighed multi-signature attestation. This attestation then is relayed to the destination via an Executor subscribing to the message. On the destination chain, the same Message Bus contract exists to check the validity of the message and triggers the corresponding logic associated with the message either immediately or after a timeout.

Celer IM is able to help build and enhance the multi-chain defi/game/marketplace experience with [message/token/NFT passing](https://im-docs.celer.network/developer/end-to-end-flow) across different chains instead of deploying multiple isolated copies of smart contracts on those different chains. It is very easy-to-use and allows a “ [plug’n’play](https://im-docs.celer.network/developer/celer-im-design-patterns)” (<https://im-docs.celer.network/developer/celer-im-design-patterns>) upgrade that often requires no modification to be compatible with already deployed code.

A lot of our partners have been using the Celer Inter-chain Message SDK for their specific [use cases](https://im-docs.celer.network/developer/inter-chain-app-use-cases) to build inter-chain native dApps. This includes cross-chain governance, cross-chain yield aggregators, cross-chain synthetic asset trading, and cross-chain privacy. You can easily give Celer IM a try yourself by going through the [documentation](https://github.com/celer-network/sgn-v2-contracts/tree/main/contracts/message), [smart contract framework](https://github.com/celer-network/sgn-v2-contracts/tree/main/contracts/message/framework), [sample application code](https://im-docs.celer.network/developer/integration-guide#implement-simplebatchtransfer.sol), and [video tutorial](https://www.youtube.com/watch?v=ZAdOayugpXY).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.altlayer.io/altlayer-documentation/external-integrations/cross-chain-interoperability-using-celer/generic-message-passing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
