> For the complete documentation index, see [llms.txt](https://multi-message-aggregation.gitbook.io/multi-message-aggregation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://multi-message-aggregation.gitbook.io/multi-message-aggregation/start-here/life-cycle-of-a-transaction.md).

# Life-cycle of a Transaction

The diagram below illustrates a typical scenario for the MMA protocol (*click on the image to see an enlarged version*). The Uniswap DAO wants to send a governance action message to a remote chain for execution. An example of such a message could be changing fee parameters on the Uniswap deployment on the destination chain.&#x20;

<figure><img src="/files/NaF2sjKht9pWqNU2XqLp" alt=""><figcaption><p>High-level Architecture for MMA</p></figcaption></figure>

The life cycle of a cross-chain governance transaction proceeds as follows, once it has passed the standard process of on-chain voting and time-lock queue on the governance chain (Ethereum):

1. The governance message is sent from the Uniswap V2 Timelock contract to the `MultiBridgeMessageSender` contract
2. The `MultiBridgeMessageSender` sends the message to all available AMB sender adapters (a caller could choose to exclude one or more AMBs in this process)
3. The AMB sender adapters (`IMessageSenderAdapter`) send the message to AMB-specific components to relay the message to the intended destination
4. AMB receiver adapters receive the message from off-chain components (e.g. bridge validators or relayers) and forward them to the `MultiBridgeMessageReceiver`
5. Once enough AMBs have relayed a specific message (i.e. a quorum has been achieved), anyone can call `scheduleMessageExecution()` on the `MultiBridgeMessageReceiver`which then queues the message for execution on the governance timelock.
6. Once a configured delay period has elapsed on the governance timelock, anyone can execute a time-locked message, which performs the intended execution on the target contract on the destination chain.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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://multi-message-aggregation.gitbook.io/multi-message-aggregation/start-here/life-cycle-of-a-transaction.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.
